Documentation

Index

Constants

View Source
const (
	UserAgentName = "Cluster-Controller"

	// Following labels come from k8s.io/kubernetes/pkg/kubelet/apis
	LabelZoneFailureDomain = "failure-domain.beta.kubernetes.io/zone"
	LabelZoneRegion        = "failure-domain.beta.kubernetes.io/region"
)

Variables

This section is empty.

Functions

func StartClusterController

func StartClusterController(config *util.ControllerConfig, clusterHealthCheckConfig util.ClusterHealthCheckConfig, stopChan <-chan struct{}) error

    StartClusterController starts a new cluster controller.

    Types

    type ClusterClient

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

      ClusterClient provides methods for determining the status and zones of a particular FederatedCluster.

      func NewClusterClientSet

      func NewClusterClientSet(c *fedv1a1.FederatedCluster, client generic.Client, fedNamespace, clusterNamespace string) (*ClusterClient, error)

        NewClusterClientSet returns a ClusterClient for the given FederatedCluster. The kubeClient and crClient are used to configure the ClusterClient's internal client with information from a kubeconfig stored in a kubernetes secret and an API endpoint from the cluster-registry.

        func (*ClusterClient) GetClusterHealthStatus

        func (self *ClusterClient) GetClusterHealthStatus() *fedv1a1.FederatedClusterStatus

          GetClusterHealthStatus gets the kubernetes cluster health status by requesting "/healthz"

          func (*ClusterClient) GetClusterZones

          func (self *ClusterClient) GetClusterZones() ([]string, string, error)

            GetClusterZones gets the kubernetes cluster zones and region by inspecting labels on nodes in the cluster.

            type ClusterController

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

              ClusterController is responsible for maintaining the health status of each FederatedCluster in a particular namespace.

              func (*ClusterController) Run

              func (cc *ClusterController) Run(stopChan <-chan struct{})

                Run begins watching and syncing.

                type ClusterData

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

                  ClusterData stores cluster client and previous health check probe results of individual cluster.