Documentation ¶
Index ¶
- Constants
- type ControllerContext
- func (ctx *ControllerContext) AddHealthCheck(id string, hc func() error)
- func (ctx *ControllerContext) BackendConfigs() *typed.BackendConfigStore
- func (ctx *ControllerContext) FrontendConfigs() *typed.FrontendConfigStore
- func (ctx *ControllerContext) HasSynced() bool
- func (ctx *ControllerContext) HealthCheck() HealthCheckResults
- func (ctx *ControllerContext) Ingresses() *typed.IngressStore
- func (ctx *ControllerContext) Init()
- func (ctx *ControllerContext) Recorder(ns string) record.EventRecorder
- func (ctx *ControllerContext) Services() *typed.ServiceStore
- func (ctx *ControllerContext) Start(stopCh <-chan struct{})
- type ControllerContextConfig
- type HealthCheckResults
Constants ¶
const ( // Frequency to poll on local stores to sync. StoreSyncPollPeriod = 5 * time.Second ClusterTypeZonal = "ZONAL" ClusterTypeRegional = "REGIONAL" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ControllerContext ¶
type ControllerContext struct { KubeConfig *rest.Config KubeClient kubernetes.Interface SvcNegClient svcnegclient.Interface SAClient serviceattachmentclient.Interface FirewallClient firewallclient.Interface Cloud *gce.Cloud ClusterNamer *namer.Namer KubeSystemUID types.UID L4Namer namer.L4ResourcesNamer ControllerContextConfig ASMConfigController *cmconfig.ConfigMapConfigController IngressInformer cache.SharedIndexInformer ServiceInformer cache.SharedIndexInformer BackendConfigInformer cache.SharedIndexInformer FrontendConfigInformer cache.SharedIndexInformer PodInformer cache.SharedIndexInformer NodeInformer cache.SharedIndexInformer EndpointSliceInformer cache.SharedIndexInformer ConfigMapInformer cache.SharedIndexInformer SvcNegInformer cache.SharedIndexInformer IngClassInformer cache.SharedIndexInformer IngParamsInformer cache.SharedIndexInformer SAInformer cache.SharedIndexInformer FirewallInformer cache.SharedIndexInformer NetworkInformer cache.SharedIndexInformer GKENetworkParamsInformer cache.SharedIndexInformer ControllerMetrics *metrics.ControllerMetrics // NOTE: If the flag GKEClusterType is empty, then cluster will default to zonal. This field should not be used for // controller logic and should only be used for providing additional information to the user. RegionalCluster bool InstancePool instancegroups.Manager Translator *translator.Translator ZoneGetter *zonegetter.ZoneGetter // contains filtered or unexported fields }
ControllerContext holds the state needed for the execution of the controller.
func NewControllerContext ¶
func NewControllerContext( kubeConfig *rest.Config, kubeClient kubernetes.Interface, backendConfigClient backendconfigclient.Interface, frontendConfigClient frontendconfigclient.Interface, firewallClient firewallclient.Interface, svcnegClient svcnegclient.Interface, ingParamsClient ingparamsclient.Interface, saClient serviceattachmentclient.Interface, networkClient networkclient.Interface, cloud *gce.Cloud, clusterNamer *namer.Namer, kubeSystemUID types.UID, config ControllerContextConfig, logger klog.Logger) *ControllerContext
NewControllerContext returns a new shared set of informers.
func (*ControllerContext) AddHealthCheck ¶ added in v1.2.2
func (ctx *ControllerContext) AddHealthCheck(id string, hc func() error)
AddHealthCheck registers function to be called for healthchecking.
func (*ControllerContext) BackendConfigs ¶ added in v1.5.0
func (ctx *ControllerContext) BackendConfigs() *typed.BackendConfigStore
BackendConfigs returns the store of BackendConfigs.
func (*ControllerContext) FrontendConfigs ¶ added in v1.6.0
func (ctx *ControllerContext) FrontendConfigs() *typed.FrontendConfigStore
FrontendConfigs returns the store of FrontendConfigs.
func (*ControllerContext) HasSynced ¶
func (ctx *ControllerContext) HasSynced() bool
HasSynced returns true if all relevant informers has been synced.
func (*ControllerContext) HealthCheck ¶ added in v1.2.2
func (ctx *ControllerContext) HealthCheck() HealthCheckResults
HealthCheck runs all registered healthcheck functions.
func (*ControllerContext) Ingresses ¶ added in v1.5.0
func (ctx *ControllerContext) Ingresses() *typed.IngressStore
Ingresses returns the store of Ingresses.
func (*ControllerContext) Init ¶ added in v1.8.0
func (ctx *ControllerContext) Init()
Init inits the Context, so that we can defers some config until the main thread enter actually get the leader hcLock.
func (*ControllerContext) Recorder ¶
func (ctx *ControllerContext) Recorder(ns string) record.EventRecorder
Recorder return the event recorder for the given namespace.
func (*ControllerContext) Services ¶ added in v1.5.0
func (ctx *ControllerContext) Services() *typed.ServiceStore
Services returns the store of Services.
func (*ControllerContext) Start ¶
func (ctx *ControllerContext) Start(stopCh <-chan struct{})
Start all of the informers.
type ControllerContextConfig ¶ added in v1.3.0
type ControllerContextConfig struct { Namespace string ResyncPeriod time.Duration NumL4Workers int NumL4NetLBWorkers int // DefaultBackendSvcPortID is the ServicePort for the system default backend. DefaultBackendSvcPort utils.ServicePort HealthCheckPath string FrontendConfigEnabled bool EnableASMConfigMap bool ASMConfigMapNamespace string ASMConfigMapName string MaxIGSize int EnableL4ILBDualStack bool EnableL4NetLBDualStack bool EnableL4StrongSessionAffinity bool // flag that enables strong session affinity feature EnableMultinetworking bool EnableIngressRegionalExternal bool }
ControllerContextConfig encapsulates some settings that are tunable via command line flags.
type HealthCheckResults ¶ added in v1.2.2
HealthCheckResults contains a mapping of component -> health check results.