instances

package
v0.0.0-...-fa18c62 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2016 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FakeInstanceGroups

type FakeInstanceGroups struct {
	Ports []int64
	// contains filtered or unexported fields
}

FakeInstanceGroups fakes out the instance groups api.

func NewFakeInstanceGroups

func NewFakeInstanceGroups(nodes sets.String) *FakeInstanceGroups

NewFakeInstanceGroups creates a new FakeInstanceGroups.

func (*FakeInstanceGroups) AddInstancesToInstanceGroup

func (f *FakeInstanceGroups) AddInstancesToInstanceGroup(name, zone string, instanceNames []string) error

AddInstancesToInstanceGroup fakes adding instances to an instance group.

func (*FakeInstanceGroups) AddPortToInstanceGroup

func (f *FakeInstanceGroups) AddPortToInstanceGroup(ig *compute.InstanceGroup, port int64) (*compute.NamedPort, error)

AddPortToInstanceGroup fakes adding ports to an Instance Group.

func (*FakeInstanceGroups) CreateInstanceGroup

func (f *FakeInstanceGroups) CreateInstanceGroup(name, zone string) (*compute.InstanceGroup, error)

CreateInstanceGroup fakes instance group creation.

func (*FakeInstanceGroups) DeleteInstanceGroup

func (f *FakeInstanceGroups) DeleteInstanceGroup(name, zone string) error

DeleteInstanceGroup fakes instance group deletion.

func (*FakeInstanceGroups) GetInstanceGroup

func (f *FakeInstanceGroups) GetInstanceGroup(name, zone string) (*compute.InstanceGroup, error)

GetInstanceGroup fakes getting an instance group from the cloud.

func (*FakeInstanceGroups) ListInstancesInInstanceGroup

func (f *FakeInstanceGroups) ListInstancesInInstanceGroup(name, zone string, state string) (*compute.InstanceGroupsListInstances, error)

ListInstancesInInstanceGroup fakes listing instances in an instance group.

func (*FakeInstanceGroups) RemoveInstancesFromInstanceGroup

func (f *FakeInstanceGroups) RemoveInstancesFromInstanceGroup(name, zone string, instanceNames []string) error

RemoveInstancesFromInstanceGroup fakes removing instances from an instance group.

type InstanceGroups

type InstanceGroups interface {
	GetInstanceGroup(name, zone string) (*compute.InstanceGroup, error)
	CreateInstanceGroup(name, zone string) (*compute.InstanceGroup, error)
	DeleteInstanceGroup(name, zone string) error

	// TODO: Refactor for modulatiry.
	ListInstancesInInstanceGroup(name, zone string, state string) (*compute.InstanceGroupsListInstances, error)
	AddInstancesToInstanceGroup(name, zone string, instanceNames []string) error
	RemoveInstancesFromInstanceGroup(name, zone string, instanceName []string) error
	AddPortToInstanceGroup(ig *compute.InstanceGroup, port int64) (*compute.NamedPort, error)
}

InstanceGroups is an interface for managing gce instances groups, and the instances therein.

type Instances

type Instances struct {
	// contains filtered or unexported fields
}

Instances implements NodePool.

func (*Instances) Add

func (i *Instances) Add(groupName string, names []string) error

Add adds the given instances to the Instance Group.

func (*Instances) AddInstanceGroup

func (i *Instances) AddInstanceGroup(name string, port int64) (*compute.InstanceGroup, *compute.NamedPort, error)

AddInstanceGroup creates or gets an instance group if it doesn't exist and adds the given port to it.

func (*Instances) DeleteInstanceGroup

func (i *Instances) DeleteInstanceGroup(name string) error

DeleteInstanceGroup deletes the given IG by name.

func (*Instances) Get

func (i *Instances) Get(name string) (*compute.InstanceGroup, error)

Get returns the Instance Group by name.

func (*Instances) Remove

func (i *Instances) Remove(groupName string, names []string) error

Remove removes the given instances from the Instance Group.

func (*Instances) Sync

func (i *Instances) Sync(nodes []string) (err error)

Sync syncs kubernetes instances with the instances in the instance group.

type NodePool

type NodePool interface {
	AddInstanceGroup(name string, port int64) (*compute.InstanceGroup, *compute.NamedPort, error)
	DeleteInstanceGroup(name string) error

	// TODO: Refactor for modularity
	Add(groupName string, nodeNames []string) error
	Remove(groupName string, nodeNames []string) error
	Sync(nodeNames []string) error
	Get(name string) (*compute.InstanceGroup, error)
}

NodePool is an interface to manage a pool of kubernetes nodes synced with vm instances in the cloud through the InstanceGroups interface.

func NewNodePool

func NewNodePool(cloud InstanceGroups, zone string) NodePool

NewNodePool creates a new node pool.

  • cloud: implements InstanceGroups, used to sync Kubernetes nodes with members of the cloud InstanceGroup.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL