context

package
v1.19.5 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2023 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
	DestinationRuleClient dynamic.NamespaceableResourceInterface
	SAClient              serviceattachmentclient.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
	EndpointInformer        cache.SharedIndexInformer
	EndpointSliceInformer   cache.SharedIndexInformer
	UseEndpointSlices       bool
	DestinationRuleInformer cache.SharedIndexInformer
	ConfigMapInformer       cache.SharedIndexInformer
	SvcNegInformer          cache.SharedIndexInformer
	IngClassInformer        cache.SharedIndexInformer
	IngParamsInformer       cache.SharedIndexInformer
	SAInformer              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 instances.NodePool
	Translator   *translator.Translator
	// 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,
	svcnegClient svcnegclient.Interface,
	ingParamsClient ingparamsclient.Interface,
	saClient serviceattachmentclient.Interface,
	cloud *gce.Cloud,
	clusterNamer *namer.Namer,
	kubeSystemUID types.UID,
	config ControllerContextConfig) *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
	// DefaultBackendSvcPortID is the ServicePort for the system default backend.
	DefaultBackendSvcPort utils.ServicePort
	HealthCheckPath       string
	FrontendConfigEnabled bool
	EnableASMConfigMap    bool
	ASMConfigMapNamespace string
	ASMConfigMapName      string
	EndpointSlicesEnabled 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