Documentation ¶
Index ¶
- type Controller
- type ControllerConfig
- type FakeInstanceGroups
- func (f *FakeInstanceGroups) AddInstancesToInstanceGroup(name, zone string, instanceRefs []*compute.InstanceReference) error
- func (f *FakeInstanceGroups) CreateInstanceGroup(ig *compute.InstanceGroup, zone string) error
- func (f *FakeInstanceGroups) DeleteInstanceGroup(name, zone string) error
- func (f *FakeInstanceGroups) GetInstanceGroup(name, zone string) (*compute.InstanceGroup, error)
- func (f *FakeInstanceGroups) ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error)
- func (f *FakeInstanceGroups) ListInstancesInInstanceGroup(name, zone string, state string) ([]*compute.InstanceWithNamedPorts, error)
- func (f *FakeInstanceGroups) RemoveInstancesFromInstanceGroup(name, zone string, instanceRefs []*compute.InstanceReference) error
- func (f *FakeInstanceGroups) SetNamedPortsOfInstanceGroup(igName, zone string, namedPorts []*compute.NamedPort) error
- func (f *FakeInstanceGroups) ToInstanceReferences(zone string, instanceNames []string) (refs []*compute.InstanceReference)
- type FakeZoneLister
- type IGsToInstances
- type Manager
- type ManagerConfig
- type Provider
- type ZoneLister
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
Controller synchronizes the state of the nodes to the unmanaged instance groups.
func NewController ¶
func NewController(config *ControllerConfig) *Controller
NewController returns a new node update controller.
func (*Controller) Run ¶
func (c *Controller) Run()
Run the queue to process updates for the controller. This must be run in a separate goroutine (method will block until queue shutdown).
func (*Controller) Shutdown ¶
func (c *Controller) Shutdown()
Shutdown shuts down the goroutine that processes node updates.
type ControllerConfig ¶
type ControllerConfig struct { NodeInformer cache.SharedIndexInformer IGManager Manager HasSynced func() bool StopCh chan struct{} }
type FakeInstanceGroups ¶
type FakeInstanceGroups struct {
// contains filtered or unexported fields
}
FakeInstanceGroups fakes out the instance groups api.
func NewEmptyFakeInstanceGroups ¶
func NewEmptyFakeInstanceGroups() *FakeInstanceGroups
NewEmptyFakeInstanceGroups creates a new FakeInstanceGroups without zones, igs or instances.
func NewFakeInstanceGroups ¶
func NewFakeInstanceGroups(zonesToIGsToInstances map[string]IGsToInstances, maxIGSize int) *FakeInstanceGroups
NewFakeInstanceGroups creates a new FakeInstanceGroups.
func (*FakeInstanceGroups) AddInstancesToInstanceGroup ¶
func (f *FakeInstanceGroups) AddInstancesToInstanceGroup(name, zone string, instanceRefs []*compute.InstanceReference) error
AddInstancesToInstanceGroup fakes adding instances to an instance group.
func (*FakeInstanceGroups) CreateInstanceGroup ¶
func (f *FakeInstanceGroups) CreateInstanceGroup(ig *compute.InstanceGroup, zone string) 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) ListInstanceGroups ¶
func (f *FakeInstanceGroups) ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error)
ListInstanceGroups fakes listing instance groups in a zone
func (*FakeInstanceGroups) ListInstancesInInstanceGroup ¶
func (f *FakeInstanceGroups) ListInstancesInInstanceGroup(name, zone string, state string) ([]*compute.InstanceWithNamedPorts, error)
ListInstancesInInstanceGroup fakes listing instances in an instance group.
func (*FakeInstanceGroups) RemoveInstancesFromInstanceGroup ¶
func (f *FakeInstanceGroups) RemoveInstancesFromInstanceGroup(name, zone string, instanceRefs []*compute.InstanceReference) error
RemoveInstancesFromInstanceGroup fakes removing instances from an instance group.
func (*FakeInstanceGroups) SetNamedPortsOfInstanceGroup ¶
func (f *FakeInstanceGroups) SetNamedPortsOfInstanceGroup(igName, zone string, namedPorts []*compute.NamedPort) error
func (*FakeInstanceGroups) ToInstanceReferences ¶
func (f *FakeInstanceGroups) ToInstanceReferences(zone string, instanceNames []string) (refs []*compute.InstanceReference)
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(_ utils.NodeConditionPredicate) ([]string, error)
ListZones returns the list of zones.
type IGsToInstances ¶
type Manager ¶
type Manager interface { EnsureInstanceGroupsAndPorts(name string, ports []int64) ([]*compute.InstanceGroup, error) DeleteInstanceGroup(name string) error Get(name, zone string) (*compute.InstanceGroup, error) List() ([]string, error) Sync(nodeNames []string) error }
Manager is an interface to sync kubernetes nodes to google cloud instance groups through the Provider interface. It handles zones opaquely using the zoneLister.
func NewManager ¶
func NewManager(config *ManagerConfig) Manager
NewManager creates a new node pool using ManagerConfig.
type ManagerConfig ¶
type ManagerConfig struct { // Cloud implements Provider, used to sync Kubernetes nodes with members of the cloud InstanceGroup. Cloud Provider Namer namer.BackendNamer Recorders recorderSource BasePath string ZoneLister ZoneLister MaxIGSize int }
ManagerConfig is used for Manager constructor.
type Provider ¶
type Provider interface { GetInstanceGroup(name, zone string) (*compute.InstanceGroup, error) CreateInstanceGroup(ig *compute.InstanceGroup, zone string) error DeleteInstanceGroup(name, zone string) error ListInstanceGroups(zone string) ([]*compute.InstanceGroup, error) // TODO: Refactor for modularity. ListInstancesInInstanceGroup(name, zone string, state string) ([]*compute.InstanceWithNamedPorts, error) AddInstancesToInstanceGroup(name, zone string, instanceRefs []*compute.InstanceReference) error RemoveInstancesFromInstanceGroup(name, zone string, instanceRefs []*compute.InstanceReference) error ToInstanceReferences(zone string, instanceNames []string) (refs []*compute.InstanceReference) SetNamedPortsOfInstanceGroup(igName, zone string, namedPorts []*compute.NamedPort) error }
Provider is an interface for managing gce instances groups, and the instances therein.
type ZoneLister ¶
type ZoneLister interface { ListZones(predicate utils.NodeConditionPredicate) ([]string, error) GetZoneForNode(name string) (string, error) }
ZoneLister manages lookups for GCE instance groups/instances to zones.