context

package
v1.23.7 Latest Latest
Warning

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

Go to latest
Published: Dec 14, 2023 License: Apache-2.0 Imports: 40 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

	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
	// 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,
	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
	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
}

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