context

package
v1.29.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 45 Imported by: 14

Documentation

Index

Constants

View Source
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

type HealthCheckResults map[string]error

HealthCheckResults contains a mapping of component -> health check results.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL