shared

package
v1.93.0 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 74 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// TimeoutWaitForGardenerResourceManagerBootstrapping is the maximum time the bootstrap process for the
	// gardener-resource-manager may take.
	// Exposed for testing.
	TimeoutWaitForGardenerResourceManagerBootstrapping = 2 * time.Minute
	// IntervalWaitForGardenerResourceManagerBootstrapping is the interval how often it's checked whether the bootstrap
	// process for the gardener-resource-manager has completed.
	// Exposed for testing.
	IntervalWaitForGardenerResourceManagerBootstrapping = 5 * time.Second
)
View Source
var ImageVector = imagevector.ImageVector()

ImageVector is an alias for imagevector.ImageVector(). Exposed for testing.

Functions

func AddIstioIngressGateway

func AddIstioIngressGateway(
	ctx context.Context,
	cl client.Client,
	istioDeployer istio.Interface,
	namespace string,
	annotations map[string]string,
	labels map[string]string,
	externalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType,
	serviceExternalIP *string,
	zone *string,
	dualStack bool,
) error

AddIstioIngressGateway adds an Istio ingress gateway to the given deployer. It uses the first Ingress Gateway to fill out common chart values. Hence, it is assumed that at least one Ingress Gateway was added to the given `istioDeployer` before calling this function.

func DeployGardenerAPIServer added in v1.76.0

func DeployGardenerAPIServer(
	ctx context.Context,
	runtimeClient client.Client,
	runtimeNamespace string,
	gardenerAPIServer gardenerapiserver.Interface,
	resourcesToEncrypt []string,
	encryptedResources []string,
	etcdEncryptionKeyRotationPhase gardencorev1beta1.CredentialsRotationPhase,
) error

DeployGardenerAPIServer deploys the Gardener API server.

func DeployGardenerResourceManager

func DeployGardenerResourceManager(
	ctx context.Context,
	c client.Client,
	secretsManager secretsmanager.Interface,
	gardenerResourceManager resourcemanager.Interface,
	namespace string,
	determineReplicas func(ctx context.Context) (int32, error),
	getAPIServerAddress func() string,
) error

DeployGardenerResourceManager deploys the gardener-resource-manager

func DeployKubeAPIServer

func DeployKubeAPIServer(
	ctx context.Context,
	runtimeClient client.Client,
	runtimeNamespace string,
	kubeAPIServer kubeapiserver.Interface,
	serviceAccountConfig kubeapiserver.ServiceAccountConfig,
	serverCertificateConfig kubeapiserver.ServerCertificateConfig,
	sniConfig kubeapiserver.SNIConfig,
	externalHostname string,
	externalServer string,
	nodeNetworkCIDR *string,
	resourcesToEncrypt []string,
	encryptedResources []string,
	etcdEncryptionKeyRotationPhase gardencorev1beta1.CredentialsRotationPhase,
	wantScaleDown bool,
) error

DeployKubeAPIServer deploys the Kubernetes API server.

func GetIstioNamespaceForZone

func GetIstioNamespaceForZone(defaultNamespace string, zone string) string

GetIstioNamespaceForZone returns the namespace to use for a given zone. In case the zone name is too long the first five characters of the hash of the zone are used as zone identifiers.

func GetIstioZoneLabels

func GetIstioZoneLabels(labels map[string]string, zone *string) map[string]string

GetIstioZoneLabels returns the labels to be used for istio with the mandatory zone label set.

func GetResourcesForEncryptionFromConfig added in v1.86.0

func GetResourcesForEncryptionFromConfig(encryptionConfig *gardencorev1beta1.EncryptionConfig) []string

GetResourcesForEncryptionFromConfig returns the list of resources requiring encryption from the EncryptionConfig.

func IsZonalIstioExtension

func IsZonalIstioExtension(labels map[string]string) (bool, string)

IsZonalIstioExtension indicates whether the namespace related to the given labels is a zonal istio extension. It also returns the zone.

func NewAlertmanager added in v1.90.0

func NewAlertmanager(log logr.Logger, c client.Client, namespace string, values alertmanager.Values) (alertmanager.Interface, error)

NewAlertmanager creates a new alertmanager deployer.

func NewBlackboxExporter added in v1.93.0

func NewBlackboxExporter(c client.Client, secretsManager secretsmanager.Interface, namespace string, values blackboxexporter.Values) (blackboxexporter.Interface, error)

NewBlackboxExporter creates a new blackbox-exporter deployer.

func NewEtcdDruid

func NewEtcdDruid(
	c client.Client,
	gardenNamespaceName string,
	runtimeVersion *semver.Version,
	imageVectorOverwrites map[string]string,
	etcdConfig *config.ETCDConfig,
	priorityClassName string,
) (
	component.DeployWaiter,
	error,
)

NewEtcdDruid instantiates a new `etcd-druid` component.

func NewFluentBit added in v1.77.0

func NewFluentBit(
	c client.Client,
	gardenNamespaceName string,
	enabled bool,
	valiEnabled bool,
	priorityClassName string,
) (
	deployer component.DeployWaiter,
	err error,
)

NewFluentBit instantiates a new `Fluent-bit` component.

func NewFluentOperator

func NewFluentOperator(
	c client.Client,
	gardenNamespaceName string,
	enabled bool,
	priorityClassName string,
) (
	deployer component.DeployWaiter,
	err error,
)

NewFluentOperator instantiates a new `Fluent Operator` component.

func NewFluentOperatorCustomResources

func NewFluentOperatorCustomResources(
	c client.Client,
	gardenNamespaceName string,
	enabled bool,
	suffix string,
	centralLoggingConfigurations []component.CentralLoggingConfiguration,
	output *fluentbitv1alpha2.ClusterOutput,
) (
	deployer component.DeployWaiter,
	err error,
)

NewFluentOperatorCustomResources instantiates a new `Fluent Operator Custom Resources` component.

func NewGardenerAPIServer added in v1.76.0

func NewGardenerAPIServer(
	ctx context.Context,
	runtimeClient client.Client,
	runtimeNamespace string,
	objectMeta metav1.ObjectMeta,
	runtimeVersion *semver.Version,
	secretsManager secretsmanager.Interface,
	apiServerConfig *operatorv1alpha1.GardenerAPIServerConfig,
	autoscalingConfig apiserver.AutoscalingConfig,
	auditWebhookConfig *apiserver.AuditWebhook,
	topologyAwareRoutingEnabled bool,
	clusterIdentity string,
) (
	gardenerapiserver.Interface,
	error,
)

NewGardenerAPIServer returns a deployer for the gardener-apiserver.

func NewHVPA

func NewHVPA(
	c client.Client,
	gardenNamespaceName string,
	enabled bool,
	kubernetesVersion *semver.Version,
	priorityClassName string,
) (
	deployer component.DeployWaiter,
	err error,
)

NewHVPA instantiates a new `hvpa-controller` component.

func NewIstio

func NewIstio(
	ctx context.Context,
	cl client.Client,
	chartRenderer chartrenderer.Interface,
	namePrefix string,
	ingressNamespace string,
	priorityClassName string,
	istiodEnabled bool,
	labels map[string]string,
	toKubeAPIServerPolicyLabel string,
	lbAnnotations map[string]string,
	externalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType,
	serviceExternalIP *string,
	servicePorts []corev1.ServicePort,
	proxyProtocolEnabled bool,
	vpnEnabled bool,
	zones []string,
	dualStack bool,
) (
	istio.Interface,
	error,
)

NewIstio returns a deployer for Istio.

func NewKubeAPIServer

func NewKubeAPIServer(
	ctx context.Context,
	runtimeClientSet kubernetes.Interface,
	resourceConfigClient client.Client,
	runtimeNamespace string,
	objectMeta metav1.ObjectMeta,
	runtimeVersion *semver.Version,
	targetVersion *semver.Version,
	secretsManager secretsmanager.Interface,
	namePrefix string,
	apiServerConfig *gardencorev1beta1.KubeAPIServerConfig,
	autoscalingConfig apiserver.AutoscalingConfig,
	serviceNetworkCIDR string,
	vpnConfig kubeapiserver.VPNConfig,
	priorityClassName string,
	isWorkerless bool,
	staticTokenKubeconfigEnabled *bool,
	auditWebhookConfig *apiserver.AuditWebhook,
	authenticationWebhookConfig *kubeapiserver.AuthenticationWebhook,
	authorizationWebhookConfig *kubeapiserver.AuthorizationWebhook,
	resourcesToStoreInETCDEvents []schema.GroupResource,
) (
	kubeapiserver.Interface,
	error,
)

NewKubeAPIServer returns a deployer for the kube-apiserver.

func NewKubeControllerManager

func NewKubeControllerManager(
	log logr.Logger,
	runtimeClientSet kubernetes.Interface,
	runtimeNamespace string,
	runtimeVersion *semver.Version,
	targetVersion *semver.Version,
	secretsManager secretsmanager.Interface,
	namePrefix string,
	config *gardencorev1beta1.KubeControllerManagerConfig,
	priorityClassName string,
	isWorkerless bool,
	hvpaConfig *kubecontrollermanager.HVPAConfig,
	podNetwork *net.IPNet,
	serviceNetwork *net.IPNet,
	clusterSigningDuration *time.Duration,
	controllerWorkers kubecontrollermanager.ControllerWorkers,
	controllerSyncPeriods kubecontrollermanager.ControllerSyncPeriods,
	managedResourceLabels map[string]string,
) (
	kubecontrollermanager.Interface,
	error,
)

NewKubeControllerManager returns a deployer for the kube-controller-manager.

func NewKubeStateMetrics

func NewKubeStateMetrics(
	c client.Client,
	gardenNamespaceName string,
	runtimeVersion *semver.Version,
	priorityClassName string,
) (
	component.DeployWaiter,
	error,
)

NewKubeStateMetrics instantiates a new `kube-state-metrics` component.

func NewNginxIngress added in v1.75.0

func NewNginxIngress(
	c client.Client,
	namespaceName string,
	targetNamespace string,
	kubernetesVersion *semver.Version,
	config map[string]string,
	loadBalancerAnnotations map[string]string,
	loadBalancerSourceRanges []string,
	priorityClassName string,
	vpaEnabled bool,
	clusterType component.ClusterType,
	externalTrafficPolicy corev1.ServiceExternalTrafficPolicyType,
	ingressClass string,
	wildcardIngressDomains []string,
	istioIngressGatewayLabels map[string]string,
) (
	component.DeployWaiter,
	error,
)

NewNginxIngress returns a deployer for nginx-ingress-controller.

func NewPlutono added in v1.76.0

func NewPlutono(
	c client.Client,
	namespace string,
	secretsManager secretsmanager.Interface,
	clusterType component.ClusterType,
	replicas int32,
	authSecretName, ingressHost, priorityClassName string,
	includeIstioDashboards, isWorkerless bool,
	isGardenCluster, nodeLocalDNSEnabled, vpnHighAvailabilityEnabled, vpaEnabled bool,
	wildcardCertName *string,
) (
	plutono.Interface,
	error,
)

NewPlutono returns a deployer for the plutono.

func NewPrometheus added in v1.93.0

func NewPrometheus(log logr.Logger, c client.Client, namespace string, values prometheus.Values) (prometheus.Interface, error)

NewPrometheus creates a new prometheus deployer.

func NewPrometheusOperator added in v1.88.0

func NewPrometheusOperator(
	c client.Client,
	gardenNamespaceName string,
	priorityClassName string,
) (
	deployer component.DeployWaiter,
	err error,
)

NewPrometheusOperator instantiates a new prometheus-operator component.

func NewRuntimeGardenerResourceManager

func NewRuntimeGardenerResourceManager(
	c client.Client,
	gardenNamespaceName string,
	runtimeVersion *semver.Version,
	secretsManager secretsmanager.Interface,
	logLevel, logFormat string,
	secretNameServerCA string,
	priorityClassName string,
	defaultNotReadyToleration *int64,
	defaultUnreachableToleration *int64,
	defaultSeccompProfileEnabled bool,
	endpointSliceHintsEnabled bool,
	additionalNetworkPolicyNamespaceSelectors []metav1.LabelSelector,
	zones []string,
	managedResourceLabels map[string]string,
) (
	component.DeployWaiter,
	error,
)

NewRuntimeGardenerResourceManager instantiates a new `gardener-resource-manager` component configured to reconcile objects in the runtime (seed) cluster.

func NewTargetGardenerResourceManager

func NewTargetGardenerResourceManager(
	c client.Client,
	namespaceName string,
	secretsManager secretsmanager.Interface,
	clusterIdentity *string,
	defaultNotReadyTolerationSeconds *int64,
	defaultUnreachableTolerationSeconds *int64,
	kubernetesVersion *semver.Version,
	logLevel, logFormat string,
	namePrefix string,
	podTopologySpreadConstraintsEnabled bool,
	priorityClassName string,
	schedulingProfile *gardencorev1beta1.SchedulingProfile,
	secretNameServerCA string,
	systemComponentsToleration []corev1.Toleration,
	topologyAwareRoutingEnabled bool,
	kubernetesServiceHost *string,
	isWorkerless bool,
	targetNamespaces []string,
) (
	resourcemanager.Interface,
	error,
)

NewTargetGardenerResourceManager instantiates a new `gardener-resource-manager` component configured to reconcile object in a target (shoot) cluster.

func NewVali added in v1.74.0

func NewVali(
	c client.Client,
	namespace string,
	secretsManager secretsmanager.Interface,
	clusterType component.ClusterType,
	replicas int32,
	isShootNodeLoggingEnabled bool,
	priorityClassName string,
	storage *resource.Quantity,
	ingressHost string,
	hvpaEnabled bool,
	maintenanceTimeWindow *hvpav1alpha1.MaintenanceTimeWindow,
) (
	vali.Interface,
	error,
)

NewVali returns new Vali deployer

func NewVerticalPodAutoscaler

func NewVerticalPodAutoscaler(
	c client.Client,
	gardenNamespaceName string,
	runtimeVersion *semver.Version,
	secretsManager secretsmanager.Interface,
	enabled bool,
	secretNameServerCA string,
	priorityClassNameAdmissionController string,
	priorityClassNameRecommender string,
	priorityClassNameUpdater string,
) (
	component.DeployWaiter,
	error,
)

NewVerticalPodAutoscaler instantiates a new `vertical-pod-autoscaler` component.

func NormalizeResources added in v1.86.0

func NormalizeResources(resources []string) []string

NormalizeResources returns the list of resources after trimming the suffix '.' if present. This is needed for core resources which can be specified as '<resource>.' as well.

func ShouldEnforceSpreadAcrossHosts added in v1.87.0

func ShouldEnforceSpreadAcrossHosts(ctx context.Context, cl client.Client, zones []string) (bool, error)

ShouldEnforceSpreadAcrossHosts checks whether all given zones have at least two nodes so that Istio can be spread across hosts in each zone.

func SnapshotEtcd

func SnapshotEtcd(ctx context.Context, secretsManager secretsmanager.Interface, etcdMain etcd.Interface) error

SnapshotEtcd performs a full snapshot on ETCD main.

Types

This section is empty.

Jump to

Keyboard shortcuts

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