Documentation ¶
Index ¶
- Constants
- func NewFakeClusterManager(clusterName, firewallName string) *fakeClusterManager
- type ClusterManager
- func (c *ClusterManager) BackendServiceForPort(port int64) (*compute.BackendService, error)
- func (c *ClusterManager) Checkpoint(lbs []*loadbalancers.L7RuntimeInfo, nodeNames []string, ...) ([]*compute.InstanceGroup, error)
- func (c *ClusterManager) DefaultBackendNodePort() *backends.ServicePort
- func (c *ClusterManager) EnsureInstanceGroupsAndPorts(servicePorts []backends.ServicePort) ([]*compute.InstanceGroup, error)
- func (c *ClusterManager) GC(lbNames []string, nodePorts []backends.ServicePort) error
- func (c *ClusterManager) Init(zl instances.ZoneLister, pp backends.ProbeProvider)
- func (c *ClusterManager) IsHealthy() (err error)
- type ErrNodePortNotFound
- type ErrSvcAppProtosParsing
- type LoadBalancerController
- type NodeController
- type StoreToEndpointLister
- type StoreToIngressLister
Constants ¶
const (
// DefaultFirewallName is the default firewall name.
DefaultFirewallName = ""
)
Variables ¶
This section is empty.
Functions ¶
func NewFakeClusterManager ¶
func NewFakeClusterManager(clusterName, firewallName string) *fakeClusterManager
NewFakeClusterManager creates a new fake ClusterManager.
Types ¶
type ClusterManager ¶
ClusterManager manages cluster resource pools.
func NewClusterManager ¶
func NewClusterManager( cloud *gce.GCECloud, namer *utils.Namer, defaultBackendNodePort backends.ServicePort, defaultHealthCheckPath string) (*ClusterManager, error)
NewClusterManager creates a cluster manager for shared resources.
- namer: is the namer used to tag cluster wide shared resources.
- defaultBackendNodePort: is the node port of glbc's default backend. This is the kubernetes Service that serves the 404 page if no urls match.
- defaultHealthCheckPath: is the default path used for L7 health checks, eg: "/healthz".
func (*ClusterManager) BackendServiceForPort ¶
func (c *ClusterManager) BackendServiceForPort(port int64) (*compute.BackendService, error)
func (*ClusterManager) Checkpoint ¶
func (c *ClusterManager) Checkpoint(lbs []*loadbalancers.L7RuntimeInfo, nodeNames []string, backendServicePorts []backends.ServicePort, namedPorts []backends.ServicePort, endpointPorts []string) ([]*compute.InstanceGroup, error)
Checkpoint performs a checkpoint with the cloud.
- lbs are the single cluster L7 loadbalancers we wish to exist. If they already exist, they should not have any broken links between say, a UrlMap and TargetHttpProxy.
- nodeNames are the names of nodes we wish to add to all loadbalancer instance groups.
- backendServicePorts are the ports for which we require BackendServices.
- namedPorts are the ports which must be opened on instance groups.
- firewallPorts are the ports which must be opened in the firewall rule.
Returns the list of all instance groups corresponding to the given loadbalancers. If in performing the checkpoint the cluster manager runs out of quota, a googleapi 403 is returned.
func (*ClusterManager) DefaultBackendNodePort ¶
func (c *ClusterManager) DefaultBackendNodePort() *backends.ServicePort
func (*ClusterManager) EnsureInstanceGroupsAndPorts ¶
func (c *ClusterManager) EnsureInstanceGroupsAndPorts(servicePorts []backends.ServicePort) ([]*compute.InstanceGroup, error)
func (*ClusterManager) GC ¶
func (c *ClusterManager) GC(lbNames []string, nodePorts []backends.ServicePort) error
GC garbage collects unused resources.
- lbNames are the names of L7 loadbalancers we wish to exist. Those not in this list are removed from the cloud.
- nodePorts are the ports for which we want BackendServies. BackendServices for ports not in this list are deleted.
This method ignores googleapi 404 errors (StatusNotFound).
func (*ClusterManager) Init ¶
func (c *ClusterManager) Init(zl instances.ZoneLister, pp backends.ProbeProvider)
Init initializes the cluster manager.
func (*ClusterManager) IsHealthy ¶
func (c *ClusterManager) IsHealthy() (err error)
IsHealthy returns an error if the cluster manager is unhealthy.
type ErrNodePortNotFound ¶
type ErrNodePortNotFound struct {
// contains filtered or unexported fields
}
ErrNodePortNotFound is an implementation of error.
func (ErrNodePortNotFound) Error ¶
func (e ErrNodePortNotFound) Error() string
type ErrSvcAppProtosParsing ¶
type ErrSvcAppProtosParsing struct {
// contains filtered or unexported fields
}
func (ErrSvcAppProtosParsing) Error ¶
func (e ErrSvcAppProtosParsing) Error() string
type LoadBalancerController ¶
type LoadBalancerController struct { // TODO: Watch secrets CloudClusterManager *ClusterManager Translator *translator.GCE // contains filtered or unexported fields }
LoadBalancerController watches the kubernetes api and adds/removes services from the loadbalancer, via loadBalancerConfig.
func NewLoadBalancerController ¶
func NewLoadBalancerController(kubeClient kubernetes.Interface, stopCh chan struct{}, ctx *context.ControllerContext, clusterManager *ClusterManager, negEnabled bool) (*LoadBalancerController, error)
NewLoadBalancerController creates a controller for gce loadbalancers.
- kubeClient: A kubernetes REST client.
- clusterManager: A ClusterManager capable of creating all cloud resources required for L7 loadbalancing.
- resyncPeriod: Watchers relist from the Kubernetes API server this often.
func (*LoadBalancerController) Run ¶
func (lbc *LoadBalancerController) Run()
Run starts the loadbalancer controller.
func (*LoadBalancerController) Stop ¶
func (lbc *LoadBalancerController) Stop(deleteAll bool) error
Stop stops the loadbalancer controller. It also deletes cluster resources if deleteAll is true.
type NodeController ¶
type NodeController struct {
// contains filtered or unexported fields
}
NodeController synchronizes the state of the nodes to the unmanaged instance groups.
func NewNodeController ¶
func NewNodeController(ctx *context.ControllerContext, cm *ClusterManager) *NodeController
NewNodeController returns a new node update controller.
func (*NodeController) Run ¶
func (c *NodeController) Run(stopCh chan struct{})
Run a go routine to process updates for the controller.
func (*NodeController) Shutdown ¶
func (c *NodeController) Shutdown()
Run a go routine to process updates for the controller.
type StoreToEndpointLister ¶
StoreToEndpointLister makes a Store that lists Endpoints.
func (*StoreToEndpointLister) ListEndpointTargetPorts ¶
func (s *StoreToEndpointLister) ListEndpointTargetPorts(namespace, name, targetPort string) []int
type StoreToIngressLister ¶
StoreToIngressLister makes a Store that lists Ingress. TODO: Move this to cache/listers post 1.1.
func (*StoreToIngressLister) GetServiceIngress ¶
func (s *StoreToIngressLister) GetServiceIngress(svc *api_v1.Service) (ings []extensions.Ingress, err error)
GetServiceIngress gets all the Ingress' that have rules pointing to a service. Note that this ignores services without the right nodePorts.
func (*StoreToIngressLister) ListAll ¶
func (s *StoreToIngressLister) ListAll() (ing extensions.IngressList, err error)
List lists all Ingress' in the store (both single and multi cluster ingresses).
func (*StoreToIngressLister) ListGCEIngresses ¶
func (s *StoreToIngressLister) ListGCEIngresses() (ing extensions.IngressList, err error)
ListGCEIngresses lists all GCE Ingress' in the store.