controllermanager

package
v1.99.4 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2024 License: Apache-2.0 Imports: 48 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ManagedResourceName is the name of the ManagedResource containing the resource specifications.
	ManagedResourceName = "shoot-core-kube-controller-manager"

	// NodeMonitorGraceDurationK8sGreaterEqual127 is the default node monitoring grace duration used with k8s versions >= 1.27
	NodeMonitorGraceDurationK8sGreaterEqual127 = 40 * time.Second
)

Variables

View Source
var (
	// IntervalWaitForDeployment is the interval used while waiting for the Deployments to become healthy or deleted.
	IntervalWaitForDeployment = 5 * time.Second
	// TimeoutWaitForDeployment is the timeout used while waiting for the Deployments to become healthy or deleted.
	TimeoutWaitForDeployment = 3 * time.Minute
	// Until is an alias for retry.Until. Exposed for tests.
	Until = retry.Until
)

Functions

func CentralLoggingConfiguration

func CentralLoggingConfiguration() (component.CentralLoggingConfig, error)

CentralLoggingConfiguration returns a fluent-bit parser and filter for the kube-controller-manager logs.

Types

type ControllerSyncPeriods

type ControllerSyncPeriods struct {
	// ResourceQuota is the sync period for the ResourceQuota controller.
	ResourceQuota *time.Duration
}

ControllerSyncPeriods is used for configuring the sync periods for controllers.

type ControllerWorkers

type ControllerWorkers struct {
	// StatefulSet is the number of workers for the StatefulSet controller.
	StatefulSet *int
	// Deployment is the number of workers for the Deployment controller.
	Deployment *int
	// ReplicaSet is the number of workers for the ReplicaSet controller.
	ReplicaSet *int
	// Endpoint is the number of workers for the Endpoint controller.
	Endpoint *int
	// GarbageCollector is the number of workers for the GarbageCollector controller.
	GarbageCollector *int
	// Namespace is the number of workers for the Namespace controller. Set it to '0' in order to disable the controller
	// (only works when cluster is workerless).
	Namespace *int
	// ResourceQuota is the number of workers for the ResourceQuota controller. Set it to '0' in order to disable the
	// controller (only works when cluster is workerless).
	ResourceQuota *int
	// ServiceEndpoint is the number of workers for the ServiceEndpoint controller.
	ServiceEndpoint *int
	// ServiceAccountToken is the number of workers for the ServiceAccountToken controller. Set it to '0' in order to
	// disable the controller (only works when cluster is workerless).
	ServiceAccountToken *int
}

ControllerWorkers is used for configuring the workers for controllers.

type Interface

type Interface interface {
	component.DeployWaiter
	// SetReplicaCount sets the replica count for the kube-controller-manager.
	SetReplicaCount(replicas int32)
	// SetRuntimeConfig sets the runtime config for the kube-controller-manager.
	SetRuntimeConfig(runtimeConfig map[string]bool)
	// WaitForControllerToBeActive checks whether kube-controller-manager has
	// recently written to the Endpoint object holding the leader information. If yes, it is active.
	WaitForControllerToBeActive(ctx context.Context) error
	// SetShootClient sets the shoot client used to deploy resources into the Shoot API server.
	SetShootClient(c client.Client)
	// SetServiceNetworks sets the service CIDRs of the shoot network.
	SetServiceNetworks([]net.IPNet)
	// SetPodNetworks sets the pod CIDRs of the shoot network.
	SetPodNetworks([]net.IPNet)
}

Interface contains functions for a kube-controller-manager deployer.

func New

func New(
	log logr.Logger,
	seedClient kubernetes.Interface,
	namespace string,
	secretsManager secretsmanager.Interface,
	values Values,
) Interface

New creates a new instance of DeployWaiter for the kube-controller-manager.

type Values

type Values struct {
	// RuntimeVersion is the Kubernetes version of the runtime cluster.
	RuntimeVersion *semver.Version
	// TargetVersion is the Kubernetes version of the target cluster.
	TargetVersion *semver.Version
	// Image is the image of the kube-controller-manager.
	Image string
	// Replicas is the number of replicas for the kube-controller-manager deployment.
	Replicas int32
	// PriorityClassName is the name of the priority class.
	PriorityClassName string
	// Config is the configuration of the kube-controller-manager.
	Config *gardencorev1beta1.KubeControllerManagerConfig
	// NamePrefix is the prefix for the resource names.
	NamePrefix string
	// IsScaleDownDisabled - if true, pod requests can be scaled up, but never down
	IsScaleDownDisabled bool
	// IsWorkerless specifies whether the cluster has worker nodes.
	IsWorkerless bool
	// PodNetworks are the pod CIDRs of the target cluster.
	PodNetworks []net.IPNet
	// ServiceNetworks are the service CIDRs of the target cluster.
	ServiceNetworks []net.IPNet
	// ClusterSigningDuration is the value for the `--cluster-signing-duration` flag.
	ClusterSigningDuration *time.Duration
	// ControllerWorkers is used for configuring the workers for controllers.
	ControllerWorkers ControllerWorkers
	// ControllerSyncPeriods is used for configuring the sync periods for controllers.
	ControllerSyncPeriods ControllerSyncPeriods
	// RuntimeConfig contains information about enabled or disabled APIs.
	RuntimeConfig map[string]bool
	// ManagedResourceLabels are labels added to the ManagedResource.
	ManagedResourceLabels map[string]string
}

Values are the values for the kube-controller-manager deployment.

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

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