Documentation ¶
Index ¶
- type FakeInstanceGroups
- func (f *FakeInstanceGroups) AddInstancesToInstanceGroup(name, zone string, instanceNames []string) error
- func (f *FakeInstanceGroups) AddPortToInstanceGroup(ig *compute.InstanceGroup, port int64) (*compute.NamedPort, error)
- func (f *FakeInstanceGroups) CreateInstanceGroup(name, zone string) (*compute.InstanceGroup, error)
- func (f *FakeInstanceGroups) DeleteInstanceGroup(name, zone string) error
- func (f *FakeInstanceGroups) GetInstanceGroup(name, zone string) (*compute.InstanceGroup, error)
- func (f *FakeInstanceGroups) GetInstancesByZone() map[string][]string
- func (f *FakeInstanceGroups) ListInstancesInInstanceGroup(name, zone string, state string) (*compute.InstanceGroupsListInstances, error)
- func (f *FakeInstanceGroups) RemoveInstancesFromInstanceGroup(name, zone string, instanceNames []string) error
- type FakeZoneLister
- type InstanceGroups
- type Instances
- func (i *Instances) Add(groupName string, names []string) error
- func (i *Instances) AddInstanceGroup(name string, port int64) ([]*compute.InstanceGroup, *compute.NamedPort, error)
- func (i *Instances) DeleteInstanceGroup(name string) error
- func (i *Instances) Get(name, zone string) (*compute.InstanceGroup, error)
- func (i *Instances) Init(zl zoneLister)
- func (i *Instances) Remove(groupName string, names []string) error
- func (i *Instances) Sync(nodes []string) (err error)
- type NodePool
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) GetInstancesByZone ¶
func (f *FakeInstanceGroups) GetInstancesByZone() map[string][]string
GetInstancesByZone returns the zone to instances map.
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 FakeZoneLister ¶
type FakeZoneLister struct {
Zones []string
}
FakeZoneLister records zones for nodes.
func (*FakeZoneLister) GetZoneForNode ¶
func (z *FakeZoneLister) GetZoneForNode(name string) (string, error)
GetZoneForNode returns the only zone stored in the fake zone lister.
func (*FakeZoneLister) ListZones ¶
func (z *FakeZoneLister) ListZones() ([]string, error)
ListZones returns the list of zones.
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) 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. Returns a list of one instance group per zone, all of which have the exact same named port.
func (*Instances) DeleteInstanceGroup ¶
DeleteInstanceGroup deletes the given IG by name, from all zones.
func (*Instances) Get ¶
func (i *Instances) Get(name, zone string) (*compute.InstanceGroup, error)
Get returns the Instance Group by name.
func (*Instances) Init ¶
func (i *Instances) Init(zl zoneLister)
Init initializes the instance pool. The given zoneLister is used to list all zones that require an instance group, and to lookup which zone a given Kubernetes node is in so we can add it to the right instance group.
type NodePool ¶
type NodePool interface { Init(zl zoneLister) // The following 2 methods operate on instance groups. 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, zone 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. It handles zones opaquely using the zoneLister.
func NewNodePool ¶
func NewNodePool(cloud InstanceGroups) NodePool
NewNodePool creates a new node pool.
- cloud: implements InstanceGroups, used to sync Kubernetes nodes with members of the cloud InstanceGroup.