botanist

package
v1.89.4 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	// Provider is the kubernetes provider label.
	Provider = "provider"
	// KubernetesProvider is the 'kubernetes' value of the Provider label.
	KubernetesProvider = "kubernetes"

	// KubeAggregatorAutoManaged is the label whether an APIService is automanaged by kube-aggregator.
	KubeAggregatorAutoManaged = autoregister.AutoRegisterManagedLabel

	// MetadataNameField ist the `metadata.name` field for a field selector.
	MetadataNameField = "metadata.name"
)
View Source
const CloudConfigExecutionManagedResourceName = "shoot-cloud-config-execution"

CloudConfigExecutionManagedResourceName is a constant for the name of a ManagedResource in the seed cluster in the shoot namespace which contains the cloud config user data execution script.

View Source
const (
	// DNSRecordSecretPrefix is a constant for prefixing secrets referenced by DNSRecords
	DNSRecordSecretPrefix = "dnsrecord"
)
View Source
const DefaultInterval = 5 * time.Second

DefaultInterval is the default interval for retry operations.

View Source
const GardenerNodeAgentManagedResourceName = "shoot-gardener-node-agent"

GardenerNodeAgentManagedResourceName is a constant for the name of a ManagedResource in the seed cluster in the shoot namespace which contains resources for gardener-node-agent.

View Source
const (
	// ManagedResourceName is the name of the managed resource used to deploy referenced resources to the Seed cluster.
	ManagedResourceName = "referenced-resources"
)
View Source
const SecretLabelKeyManagedResource = "managed-resource"

SecretLabelKeyManagedResource is a key for a label on a secret with the value 'managed-resource'.

Variables

View Source
var (
	// FinalizeAfterFiveMinutes is an option to finalize resources after five minutes.
	FinalizeAfterFiveMinutes = utilclient.FinalizeGracePeriodSeconds(5 * 60)
	// FinalizeAfterOneHour is an option to finalize resources after one hour.
	FinalizeAfterOneHour = utilclient.FinalizeGracePeriodSeconds(60 * 60)

	// ZeroGracePeriod can be used for deleting resources with no grace period.
	ZeroGracePeriod = client.GracePeriodSeconds(0)
	// GracePeriodFiveMinutes can be used for deleting resources with a grace period of five minutes.
	GracePeriodFiveMinutes = client.GracePeriodSeconds(5 * 60)

	// NotSystemComponent is a requirement that something doesn't have the GardenRole GardenRoleSystemComponent.
	NotSystemComponent = utils.MustNewRequirement(v1beta1constants.GardenRole, selection.NotEquals, v1beta1constants.GardenRoleSystemComponent)
	// NoCleanupPrevention is a requirement that the ShootNoCleanup label of something is not true.
	NoCleanupPrevention = utils.MustNewRequirement(v1beta1constants.ShootNoCleanup, selection.NotEquals, "true")
	// NotKubernetesProvider is a requirement that the Provider label of something is not KubernetesProvider.
	NotKubernetesProvider = utils.MustNewRequirement(Provider, selection.NotEquals, KubernetesProvider)
	// NotKubeAggregatorAutoManaged is a requirement that something is not auto-managed by Kube-Aggregator.
	NotKubeAggregatorAutoManaged = utils.MustNewRequirement(KubeAggregatorAutoManaged, selection.DoesNotExist)

	// CleanupSelector is a selector that excludes system components and all resources not considered for auto cleanup.
	CleanupSelector = labels.NewSelector().Add(NotSystemComponent).Add(NoCleanupPrevention)

	// NoCleanupPreventionListOption are CollectionMatching that exclude system components or non-auto cleaned up resource.
	NoCleanupPreventionListOption = client.MatchingLabelsSelector{Selector: CleanupSelector}

	// MutatingWebhookConfigurationCleanOption is the delete selector for MutatingWebhookConfigurations.
	MutatingWebhookConfigurationCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// ValidatingWebhookConfigurationCleanOption is the delete selector for ValidatingWebhookConfigurations.
	ValidatingWebhookConfigurationCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// CustomResourceDefinitionCleanOption is the delete selector for CustomResources.
	CustomResourceDefinitionCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// DaemonSetCleanOption is the delete selector for DaemonSets.
	DaemonSetCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// DeploymentCleanOption is the delete selector for Deployments.
	DeploymentCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// StatefulSetCleanOption is the delete selector for StatefulSets.
	StatefulSetCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// ServiceCleanOption is the delete selector for Services.
	ServiceCleanOption = utilclient.ListWith{
		client.MatchingLabelsSelector{
			Selector: labels.NewSelector().Add(NotKubernetesProvider, NotSystemComponent, NoCleanupPrevention),
		},
	}

	// APIServiceCleanOption is the delete selector for APIServices.
	APIServiceCleanOption = utilclient.ListWith{
		client.MatchingLabelsSelector{
			Selector: labels.NewSelector().Add(NotSystemComponent, NotKubeAggregatorAutoManaged),
		},
	}

	// CronJobCleanOption is the delete selector for CronJobs.
	CronJobCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// IngressCleanOption is the delete selector for Ingresses.
	IngressCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// JobCleanOption is the delete selector for Jobs.
	JobCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// PodCleanOption is the delete selector for Pods.
	PodCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// ReplicaSetCleanOption is the delete selector for ReplicaSets.
	ReplicaSetCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// ReplicationControllerCleanOption is the delete selector for ReplicationControllers.
	ReplicationControllerCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// PersistentVolumeClaimCleanOption is the delete selector for PersistentVolumeClaims.
	PersistentVolumeClaimCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// VolumeSnapshotCleanOption is the delete selector for VolumeSnapshots.
	VolumeSnapshotCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}

	// VolumeSnapshotContentCleanOption is the delete selector for VolumeSnapshotContents.
	VolumeSnapshotContentCleanOption = utilclient.ListWith{&NoCleanupPreventionListOption}
)
View Source
var (
	// ExecutorScriptFn is a function for computing the cloud config user data executor script.
	ExecutorScriptFn = executor.Script
	// DownloaderGenerateRBACResourcesDataFn is a function for generating the RBAC resources data map for the cloud
	// config user data executor scripts downloader.
	DownloaderGenerateRBACResourcesDataFn = downloader.GenerateRBACResourcesData

	// NodeAgentOSCSecretFn is a function for computing the operating system config secret for gardener-node-agent.
	NodeAgentOSCSecretFn = nodeagent.OperatingSystemConfigSecret
	// NodeAgentRBACResourcesDataFn is a function for generating the RBAC resources data map for the
	// gardener-node-agent.
	NodeAgentRBACResourcesDataFn = nodeagent.RBACResourcesData
)

exposed for testing

View Source
var (
	// IntervalWaitOperatingSystemConfigUpdated is the interval when waiting until the operating system config was
	// updated for all worker pools.
	IntervalWaitOperatingSystemConfigUpdated = 5 * time.Second
	// GetTimeoutWaitOperatingSystemConfigUpdated retrieves the timeout when waiting until the operating system config
	// was updated for all worker pools.
	GetTimeoutWaitOperatingSystemConfigUpdated = getTimeoutWaitOperatingSystemConfigUpdated
)

exposed for testing

View Source
var NewEtcd = etcd.New

NewEtcd is a function exposed for testing.

View Source
var NewEtcdCopyBackupsTask = etcdcopybackupstask.New

NewEtcdCopyBackupsTask is a function exposed for testing.

View Source
var NowFunc = time.Now

NowFunc is a function returning the current time. Exposed for testing.

View Source
var SetupPortForwarder = kubernetes.SetupPortForwarder

SetupPortForwarder is an alias for kubernetes.SetupPortForwarder, exposed for testing

Functions

func CheckTunnelConnection added in v1.25.0

func CheckTunnelConnection(ctx context.Context, log logr.Logger, shootClient kubernetes.Interface, tunnelName string) (bool, error)

CheckTunnelConnection checks if the tunnel connection between the control plane and the shoot networks is established.

func CleanVolumeAttachments added in v1.22.0

func CleanVolumeAttachments(ctx context.Context, c client.Client) error

CleanVolumeAttachments cleans up all VolumeAttachments in the cluster, waits for them to be gone and finalizes any remaining ones after five minutes.

func ExtractZonesFromNodeSelectorTerm added in v1.60.1

func ExtractZonesFromNodeSelectorTerm(term corev1.NodeSelectorTerm) []string

ExtractZonesFromNodeSelectorTerm extracts the zones from given term.

func OperatingSystemConfigUpdatedForAllWorkerPools added in v1.85.0

func OperatingSystemConfigUpdatedForAllWorkerPools(
	workers []gardencorev1beta1.Worker,
	workerPoolToNodes map[string][]corev1.Node,
	workerPoolToOperatingSystemConfigSecretMeta map[string]metav1.ObjectMeta,
) error

OperatingSystemConfigUpdatedForAllWorkerPools checks if all the nodes for all the provided worker pools have successfully applied the desired version of their cloud-config user data.

func WorkerPoolToNodesMap added in v1.16.0

func WorkerPoolToNodesMap(ctx context.Context, shootClient client.Client) (map[string][]corev1.Node, error)

WorkerPoolToNodesMap lists all the nodes with the given client in the shoot cluster. It returns a map whose key is the name of a worker pool and whose values are the corresponding nodes.

func WorkerPoolToOperatingSystemConfigSecretMetaMap added in v1.85.0

func WorkerPoolToOperatingSystemConfigSecretMetaMap(ctx context.Context, shootClient client.Client, roleValue string) (map[string]metav1.ObjectMeta, error)

WorkerPoolToOperatingSystemConfigSecretMetaMap lists all the cloud-config secrets with the given client in the shoot cluster. It returns a map whose key is the name of a worker pool and whose values are the corresponding metadata of the cloud-config script stored inside the secret's data.

Types

type Botanist

type Botanist struct {
	*operation.Operation
	DefaultDomainSecret *corev1.Secret
}

Botanist is a struct which has methods that perform cloud-independent operations for a Shoot cluster.

func New

New takes an operation object <o> and creates a new Botanist object. It checks whether the given Shoot DNS domain is covered by a default domain, and if so, it sets the <DefaultDomainSecret> attribute on the Botanist object.

func (*Botanist) CleanExtendedAPIs

func (b *Botanist) CleanExtendedAPIs(ctx context.Context) error

CleanExtendedAPIs removes API extensions like CRDs and API services from the Shoot cluster.

func (*Botanist) CleanKubernetesResources

func (b *Botanist) CleanKubernetesResources(ctx context.Context) error

CleanKubernetesResources deletes all the Kubernetes resources in the Shoot cluster other than those stored in the exceptions map. It will check whether all the Kubernetes resources in the Shoot cluster other than those stored in the exceptions map have been deleted. It will return an error in case it has not finished yet, and nil if all resources are gone.

func (*Botanist) CleanWebhooks

func (b *Botanist) CleanWebhooks(ctx context.Context) error

CleanWebhooks deletes all Webhooks in the Shoot cluster that are not being managed by the addon manager.

func (*Botanist) DefaultAPIServerProxy added in v1.66.0

func (b *Botanist) DefaultAPIServerProxy() (apiserverproxy.Interface, error)

DefaultAPIServerProxy returns a deployer for the apiserver-proxy.

func (*Botanist) DefaultBlackboxExporter added in v1.72.0

func (b *Botanist) DefaultBlackboxExporter() (blackboxexporter.Interface, error)

DefaultBlackboxExporter returns a deployer for the blackbox-exporter.

func (*Botanist) DefaultClusterAutoscaler added in v1.11.0

func (b *Botanist) DefaultClusterAutoscaler() (clusterautoscaler.Interface, error)

DefaultClusterAutoscaler returns a deployer for the cluster-autoscaler.

func (*Botanist) DefaultClusterIdentity added in v1.24.0

func (b *Botanist) DefaultClusterIdentity() clusteridentity.Interface

DefaultClusterIdentity returns a deployer for the shoot's cluster-identity.

func (*Botanist) DefaultContainerRuntime added in v1.10.0

func (b *Botanist) DefaultContainerRuntime() containerruntime.Interface

DefaultContainerRuntime creates the default deployer for the ContainerRuntime custom resource.

func (*Botanist) DefaultControlPlane added in v1.14.0

func (b *Botanist) DefaultControlPlane(purpose extensionsv1alpha1.Purpose) extensionscontrolplane.Interface

DefaultControlPlane creates the default deployer for the ControlPlane custom resource with the given purpose.

func (*Botanist) DefaultCoreBackupEntry added in v1.16.0

func (b *Botanist) DefaultCoreBackupEntry() corebackupentry.Interface

DefaultCoreBackupEntry creates the default deployer for the core.gardener.cloud/v1beta1.BackupEntry resource.

func (*Botanist) DefaultCoreDNS added in v1.32.0

func (b *Botanist) DefaultCoreDNS() (coredns.Interface, error)

DefaultCoreDNS returns a deployer for the CoreDNS.

func (*Botanist) DefaultDependencyWatchdogAccess added in v1.38.0

func (b *Botanist) DefaultDependencyWatchdogAccess() component.Deployer

DefaultDependencyWatchdogAccess returns an instance of the Deployer which reconciles the resources so that DependencyWatchdogAccess can access a shoot cluster.

func (*Botanist) DefaultEtcd added in v1.13.0

func (b *Botanist) DefaultEtcd(role string, class etcd.Class) (etcd.Interface, error)

DefaultEtcd returns a deployer for the etcd.

func (*Botanist) DefaultEtcdCopyBackupsTask added in v1.37.0

func (b *Botanist) DefaultEtcdCopyBackupsTask() etcdcopybackupstask.Interface

DefaultEtcdCopyBackupsTask creates the default deployer for the EtcdCopyBackupsTask resource.

func (*Botanist) DefaultEventLogger added in v1.53.0

func (b *Botanist) DefaultEventLogger() (component.Deployer, error)

DefaultEventLogger returns a deployer for the shoot-event-logger.

func (*Botanist) DefaultExtension added in v1.16.0

func (b *Botanist) DefaultExtension(ctx context.Context) (extension.Interface, error)

DefaultExtension creates the default deployer for the Extension custom resources.

func (*Botanist) DefaultExternalDNSRecord added in v1.27.0

func (b *Botanist) DefaultExternalDNSRecord() extensionsdnsrecord.Interface

DefaultExternalDNSRecord creates the default deployer for the external DNSRecord resource.

func (*Botanist) DefaultGardenerAccess added in v1.38.0

func (b *Botanist) DefaultGardenerAccess() component.Deployer

DefaultGardenerAccess returns an instance of the Deployer which reconciles the resources so that GardenerAccess can access a shoot cluster.

func (*Botanist) DefaultInfrastructure added in v1.8.0

func (b *Botanist) DefaultInfrastructure() infrastructure.Interface

DefaultInfrastructure creates the default deployer for the Infrastructure custom resource.

func (*Botanist) DefaultIngressDNSRecord added in v1.27.0

func (b *Botanist) DefaultIngressDNSRecord() extensionsdnsrecord.Interface

DefaultIngressDNSRecord creates the default deployer for the ingress DNSRecord resource.

func (*Botanist) DefaultInternalDNSRecord added in v1.27.0

func (b *Botanist) DefaultInternalDNSRecord() extensionsdnsrecord.Interface

DefaultInternalDNSRecord creates the default deployer for the internal DNSRecord resource.

func (*Botanist) DefaultKubeAPIServer added in v1.28.0

func (b *Botanist) DefaultKubeAPIServer(ctx context.Context) (kubeapiserver.Interface, error)

DefaultKubeAPIServer returns a deployer for the kube-apiserver.

func (*Botanist) DefaultKubeAPIServerIngress added in v1.68.0

func (b *Botanist) DefaultKubeAPIServerIngress() component.Deployer

DefaultKubeAPIServerIngress returns a deployer for the kube-apiserver ingress.

func (*Botanist) DefaultKubeAPIServerSNI added in v1.7.0

func (b *Botanist) DefaultKubeAPIServerSNI() component.DeployWaiter

DefaultKubeAPIServerSNI returns a deployer for the kube-apiserver SNI.

func (*Botanist) DefaultKubeAPIServerService added in v1.7.0

func (b *Botanist) DefaultKubeAPIServerService() component.DeployWaiter

DefaultKubeAPIServerService returns a deployer for the kube-apiserver service.

func (*Botanist) DefaultKubeControllerManager added in v1.12.0

func (b *Botanist) DefaultKubeControllerManager() (kubecontrollermanager.Interface, error)

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

func (*Botanist) DefaultKubeProxy added in v1.41.0

func (b *Botanist) DefaultKubeProxy() (kubeproxy.Interface, error)

DefaultKubeProxy returns a deployer for the kube-proxy.

func (*Botanist) DefaultKubeScheduler added in v1.10.0

func (b *Botanist) DefaultKubeScheduler() (kubescheduler.Interface, error)

DefaultKubeScheduler returns a deployer for the kube-scheduler.

func (*Botanist) DefaultKubeStateMetrics added in v1.51.0

func (b *Botanist) DefaultKubeStateMetrics() (kubestatemetrics.Interface, error)

DefaultKubeStateMetrics returns a deployer for the kube-state-metrics.

func (*Botanist) DefaultKubernetesDashboard added in v1.63.0

func (b *Botanist) DefaultKubernetesDashboard() (kubernetesdashboard.Interface, error)

DefaultKubernetesDashboard returns a deployer for kubernetes-dashboard.

func (*Botanist) DefaultMachineControllerManager added in v1.73.0

func (b *Botanist) DefaultMachineControllerManager(ctx context.Context) (machinecontrollermanager.Interface, error)

DefaultMachineControllerManager returns a deployer for the machine-controller-manager.

func (*Botanist) DefaultMetricsServer added in v1.13.0

func (b *Botanist) DefaultMetricsServer() (component.DeployWaiter, error)

DefaultMetricsServer returns a deployer for the metrics-server.

func (*Botanist) DefaultMonitoring added in v1.76.0

func (b *Botanist) DefaultMonitoring() (monitoring.Interface, error)

DefaultMonitoring creates a new monitoring component.

func (*Botanist) DefaultNetwork added in v1.7.0

func (b *Botanist) DefaultNetwork() component.DeployMigrateWaiter

DefaultNetwork creates the default deployer for the Network custom resource.

func (*Botanist) DefaultNginxIngress added in v1.63.0

func (b *Botanist) DefaultNginxIngress() (component.DeployWaiter, error)

DefaultNginxIngress returns a deployer for the nginxingress.

func (*Botanist) DefaultNodeExporter added in v1.72.0

func (b *Botanist) DefaultNodeExporter() (nodeexporter.Interface, error)

DefaultNodeExporter returns a deployer for the NodeExporter.

func (*Botanist) DefaultNodeLocalDNS added in v1.39.0

func (b *Botanist) DefaultNodeLocalDNS() (nodelocaldns.Interface, error)

DefaultNodeLocalDNS returns a deployer for the node-local-dns.

func (*Botanist) DefaultNodeProblemDetector added in v1.39.0

func (b *Botanist) DefaultNodeProblemDetector() (component.DeployWaiter, error)

DefaultNodeProblemDetector returns a deployer for the NodeProblemDetector.

func (*Botanist) DefaultOperatingSystemConfig added in v1.17.0

func (b *Botanist) DefaultOperatingSystemConfig() (operatingsystemconfig.Interface, error)

DefaultOperatingSystemConfig creates the default deployer for the OperatingSystemConfig custom resource.

func (*Botanist) DefaultPlutono added in v1.76.0

func (b *Botanist) DefaultPlutono() (plutono.Interface, error)

DefaultPlutono returns a deployer for Plutono.

func (*Botanist) DefaultResourceManager added in v1.17.0

func (b *Botanist) DefaultResourceManager() (resourcemanager.Interface, error)

DefaultResourceManager returns an instance of Gardener Resource Manager with defaults configured for being deployed in a Shoot namespace

func (*Botanist) DefaultShootNamespaces added in v1.14.0

func (b *Botanist) DefaultShootNamespaces() component.DeployWaiter

DefaultShootNamespaces returns a deployer for the shoot namespaces.

func (*Botanist) DefaultShootSystem added in v1.41.0

func (b *Botanist) DefaultShootSystem() shootsystem.Interface

DefaultShootSystem returns a deployer for the shoot system resources.

func (*Botanist) DefaultVPNSeedServer added in v1.22.0

func (b *Botanist) DefaultVPNSeedServer() (vpnseedserver.Interface, error)

DefaultVPNSeedServer returns a deployer for the vpn-seed-server.

func (*Botanist) DefaultVPNShoot added in v1.38.0

func (b *Botanist) DefaultVPNShoot() (vpnshoot.Interface, error)

DefaultVPNShoot returns a deployer for the VPNShoot

func (*Botanist) DefaultVali added in v1.74.0

func (b *Botanist) DefaultVali() (vali.Interface, error)

DefaultVali returns a deployer for Vali.

func (*Botanist) DefaultVerticalPodAutoscaler added in v1.45.0

func (b *Botanist) DefaultVerticalPodAutoscaler() (vpa.Interface, error)

DefaultVerticalPodAutoscaler returns a deployer for the Kubernetes Vertical Pod Autoscaler.

func (*Botanist) DefaultWorker added in v1.16.0

func (b *Botanist) DefaultWorker() worker.Interface

DefaultWorker creates the default deployer for the Worker custom resource.

func (*Botanist) DeleteBastions added in v1.63.0

func (b *Botanist) DeleteBastions(ctx context.Context) error

DeleteBastions deletes all bastions from the Shoot namespace in the Seed.

func (*Botanist) DeleteKubeAPIServer

func (b *Botanist) DeleteKubeAPIServer(ctx context.Context) error

DeleteKubeAPIServer deletes the kube-apiserver deployment in the Seed cluster which holds the Shoot's control plane.

func (*Botanist) DeleteManagedResources

func (b *Botanist) DeleteManagedResources(ctx context.Context) error

DeleteManagedResources deletes all managed resources labeled with `origin=gardener` from the Shoot namespace in the Seed.

func (*Botanist) DeleteSeedNamespace added in v1.14.0

func (b *Botanist) DeleteSeedNamespace(ctx context.Context) error

DeleteSeedNamespace deletes the namespace in the Seed cluster which holds the control plane components. The built-in garbage collection in Kubernetes will automatically delete all resources which belong to this namespace. This comprises volumes and load balancers as well.

func (*Botanist) DeployAPIServerProxy added in v1.66.0

func (b *Botanist) DeployAPIServerProxy(ctx context.Context) error

DeployAPIServerProxy deploys the apiserver-proxy.

func (*Botanist) DeployBackupEntry added in v1.22.0

func (b *Botanist) DeployBackupEntry(ctx context.Context) error

DeployBackupEntry deploys the BackupEntry resource in the Garden cluster and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration.

func (*Botanist) DeployCloudProviderSecret

func (b *Botanist) DeployCloudProviderSecret(ctx context.Context) error

DeployCloudProviderSecret creates or updates the cloud provider secret in the Shoot namespace in the Seed cluster.

func (*Botanist) DeployClusterAutoscaler

func (b *Botanist) DeployClusterAutoscaler(ctx context.Context) error

DeployClusterAutoscaler deploys the Kubernetes cluster-autoscaler.

func (*Botanist) DeployClusterIdentity added in v1.24.0

func (b *Botanist) DeployClusterIdentity(ctx context.Context) error

DeployClusterIdentity deploys the shoot's cluster-identity.

func (*Botanist) DeployContainerRuntime added in v1.10.0

func (b *Botanist) DeployContainerRuntime(ctx context.Context) error

DeployContainerRuntime deploys the ContainerRuntime custom resources and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration

func (*Botanist) DeployControlPlane

func (b *Botanist) DeployControlPlane(ctx context.Context) error

DeployControlPlane deploys or restores the ControlPlane custom resource (purpose normal).

func (*Botanist) DeployControlPlaneExposure

func (b *Botanist) DeployControlPlaneExposure(ctx context.Context) error

DeployControlPlaneExposure deploys or restores the ControlPlane custom resource (purpose exposure).

func (*Botanist) DeployCoreDNS added in v1.32.0

func (b *Botanist) DeployCoreDNS(ctx context.Context) error

DeployCoreDNS deploys the CoreDNS system component.

func (*Botanist) DeployDependencyWatchdogAccess added in v1.38.0

func (b *Botanist) DeployDependencyWatchdogAccess(ctx context.Context) error

DeployDependencyWatchdogAccess deploys the DependencyWatchdogAccess resources.

func (*Botanist) DeployEtcd added in v1.13.0

func (b *Botanist) DeployEtcd(ctx context.Context) error

DeployEtcd deploys the etcd main and events.

func (*Botanist) DeployEtcdCopyBackupsTask added in v1.37.0

func (b *Botanist) DeployEtcdCopyBackupsTask(ctx context.Context) error

DeployEtcdCopyBackupsTask sets the target and destination object stores of the EtcdCopyBackupsTask resource and deploys it.

func (*Botanist) DeployExtensionsAfterKubeAPIServer added in v1.62.0

func (b *Botanist) DeployExtensionsAfterKubeAPIServer(ctx context.Context) error

DeployExtensionsAfterKubeAPIServer deploys the Extension custom resources and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration.

func (*Botanist) DeployExtensionsBeforeKubeAPIServer added in v1.62.0

func (b *Botanist) DeployExtensionsBeforeKubeAPIServer(ctx context.Context) error

DeployExtensionsBeforeKubeAPIServer deploys the Extension custom resources and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration.

func (*Botanist) DeployGardenerResourceManager

func (b *Botanist) DeployGardenerResourceManager(ctx context.Context) error

DeployGardenerResourceManager deploys the gardener-resource-manager

func (*Botanist) DeployInfrastructure

func (b *Botanist) DeployInfrastructure(ctx context.Context) error

DeployInfrastructure deploys the Infrastructure custom resource and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration.

func (*Botanist) DeployKubeAPIServer

func (b *Botanist) DeployKubeAPIServer(ctx context.Context) error

DeployKubeAPIServer deploys the Kubernetes API server.

func (*Botanist) DeployKubeAPIServerIngress added in v1.68.0

func (b *Botanist) DeployKubeAPIServerIngress(ctx context.Context) error

DeployKubeAPIServerIngress deploys the ingress for the kube-apiserver.

func (*Botanist) DeployKubeAPIServerSNI added in v1.7.0

func (b *Botanist) DeployKubeAPIServerSNI(ctx context.Context) error

DeployKubeAPIServerSNI deploys the kube-apiserver SNI resources.

func (*Botanist) DeployKubeControllerManager

func (b *Botanist) DeployKubeControllerManager(ctx context.Context) error

DeployKubeControllerManager deploys the Kubernetes Controller Manager.

func (*Botanist) DeployKubeProxy added in v1.41.0

func (b *Botanist) DeployKubeProxy(ctx context.Context) error

DeployKubeProxy deploys the kube-proxy.

func (*Botanist) DeployKubeStateMetrics added in v1.51.0

func (b *Botanist) DeployKubeStateMetrics(ctx context.Context) error

DeployKubeStateMetrics deploys or destroys the kube-state-metrics to the shoot namespace in the seed.

func (*Botanist) DeployKubernetesDashboard added in v1.63.0

func (b *Botanist) DeployKubernetesDashboard(ctx context.Context) error

DeployKubernetesDashboard deploys the Kubernetes Dashboard component.

func (*Botanist) DeployLogging added in v1.76.0

func (b *Botanist) DeployLogging(ctx context.Context) error

DeployLogging will install the logging stack for the Shoot in the Seed clusters.

func (*Botanist) DeployMachineControllerManager added in v1.73.0

func (b *Botanist) DeployMachineControllerManager(ctx context.Context) error

DeployMachineControllerManager deploys the machine-controller-manager.

func (*Botanist) DeployManagedResourceForAddons added in v1.17.0

func (b *Botanist) DeployManagedResourceForAddons(ctx context.Context) error

DeployManagedResourceForAddons deploys all the ManagedResource CRDs for the gardener-resource-manager.

func (*Botanist) DeployManagedResourceForCloudConfigExecutor added in v1.17.0

func (b *Botanist) DeployManagedResourceForCloudConfigExecutor(ctx context.Context) error

DeployManagedResourceForCloudConfigExecutor creates the cloud config managed resource that contains: 1. A secret containing the dedicated cloud config execution script for each worker group 2. A secret containing some shared RBAC policies for downloading the cloud config execution script

func (*Botanist) DeployManagedResourceForGardenerNodeAgent added in v1.85.0

func (b *Botanist) DeployManagedResourceForGardenerNodeAgent(ctx context.Context) error

DeployManagedResourceForGardenerNodeAgent creates the ManagedResource that contains: - A secret containing the raw original OperatingSystemConfig for each worker pool. - A secret containing some shared RBAC resources for downloading the OSC secrets + bootstrapping the node.

func (*Botanist) DeployMonitoring added in v1.76.0

func (b *Botanist) DeployMonitoring(ctx context.Context) error

DeployMonitoring installs the Helm release "seed-monitoring" in the Seed clusters. It comprises components to monitor the Shoot cluster whose control plane runs in the Seed cluster.

func (*Botanist) DeployNetwork

func (b *Botanist) DeployNetwork(ctx context.Context) error

DeployNetwork deploys the Network custom resource and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration

func (*Botanist) DeployNginxIngressAddon added in v1.63.0

func (b *Botanist) DeployNginxIngressAddon(ctx context.Context) error

DeployNginxIngressAddon deploys the NginxIngress Addon component.

func (*Botanist) DeployOperatingSystemConfig added in v1.17.0

func (b *Botanist) DeployOperatingSystemConfig(ctx context.Context) error

DeployOperatingSystemConfig deploys the OperatingSystemConfig custom resource and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration.

func (*Botanist) DeployOrDestroyExternalDNSRecord added in v1.27.0

func (b *Botanist) DeployOrDestroyExternalDNSRecord(ctx context.Context) error

DeployOrDestroyExternalDNSRecord deploys, restores, or destroys the external DNSRecord and waits for the operation to complete.

func (*Botanist) DeployOrDestroyIngressDNSRecord added in v1.27.0

func (b *Botanist) DeployOrDestroyIngressDNSRecord(ctx context.Context) error

DeployOrDestroyIngressDNSRecord deploys, restores, or destroys the ingress DNSRecord and waits for the operation to complete.

func (*Botanist) DeployOrDestroyInternalDNSRecord added in v1.27.0

func (b *Botanist) DeployOrDestroyInternalDNSRecord(ctx context.Context) error

DeployOrDestroyInternalDNSRecord deploys, restores, or destroys the internal DNSRecord and waits for the operation to complete.

func (*Botanist) DeployPlutono added in v1.76.0

func (b *Botanist) DeployPlutono(ctx context.Context) error

DeployPlutono deploys the plutono in the Seed cluster.

func (*Botanist) DeployReferencedResources added in v1.6.0

func (b *Botanist) DeployReferencedResources(ctx context.Context) error

DeployReferencedResources reads all referenced resources from the Garden cluster and writes a managed resource to the Seed cluster.

func (*Botanist) DeploySeedNamespace added in v1.14.0

func (b *Botanist) DeploySeedNamespace(ctx context.Context) error

DeploySeedNamespace creates a namespace in the Seed cluster which is used to deploy all the control plane components for the Shoot cluster. Moreover, the cloud provider configuration and all the secrets will be stored as ConfigMaps/Secrets.

func (*Botanist) DeployShootSystem added in v1.86.0

func (b *Botanist) DeployShootSystem(ctx context.Context) error

DeployShootSystem deploys the shoot system resources.

func (*Botanist) DeploySourceBackupEntry added in v1.37.0

func (b *Botanist) DeploySourceBackupEntry(ctx context.Context) error

DeploySourceBackupEntry deploys the source BackupEntry and sets its bucketName to be equal to the bucketName of the shoot's original BackupEntry if the source BackupEntry doesn't already exist.

func (*Botanist) DeployVPNServer added in v1.22.0

func (b *Botanist) DeployVPNServer(ctx context.Context) error

DeployVPNServer deploys the vpn-seed-server.

func (*Botanist) DeployVerticalPodAutoscaler added in v1.7.0

func (b *Botanist) DeployVerticalPodAutoscaler(ctx context.Context) error

DeployVerticalPodAutoscaler deploys or destroys the VPA to the shoot namespace in the seed.

func (*Botanist) DeployWorker

func (b *Botanist) DeployWorker(ctx context.Context) error

DeployWorker deploys the Worker custom resource and triggers the restore operation in case the Shoot is in the restore phase of the control plane migration

func (*Botanist) DestroyDNSRecords added in v1.29.0

func (b *Botanist) DestroyDNSRecords(ctx context.Context) error

DestroyDNSRecords deletes all DNSRecord resources from the Shoot namespace.

func (*Botanist) DestroyEtcd added in v1.35.0

func (b *Botanist) DestroyEtcd(ctx context.Context) error

DestroyEtcd destroys the etcd main and events.

func (*Botanist) DestroyExtensionResourcesInParallel added in v1.40.0

func (b *Botanist) DestroyExtensionResourcesInParallel(ctx context.Context) error

DestroyExtensionResourcesInParallel deletes extension CRs from the Shoot namespace. CRs with kind "Extension" are handled separately and are not deleted by this function.

func (*Botanist) DestroyExternalDNSRecord added in v1.27.0

func (b *Botanist) DestroyExternalDNSRecord(ctx context.Context) error

DestroyExternalDNSRecord destroys the external DNSRecord and waits for the operation to complete.

func (*Botanist) DestroyIngressDNSRecord

func (b *Botanist) DestroyIngressDNSRecord(ctx context.Context) error

DestroyIngressDNSRecord destroys the ingress DNSRecord and waits for the operation to complete.

func (*Botanist) DestroyInternalDNSRecord added in v1.27.0

func (b *Botanist) DestroyInternalDNSRecord(ctx context.Context) error

DestroyInternalDNSRecord destroys the internal DNSRecord and waits for the operation to complete.

func (*Botanist) DestroyReferencedResources added in v1.6.0

func (b *Botanist) DestroyReferencedResources(ctx context.Context) error

DestroyReferencedResources deletes the managed resource containing referenced resources from the Seed cluster.

func (*Botanist) DestroySeedLogging added in v1.74.0

func (b *Botanist) DestroySeedLogging(ctx context.Context) error

DestroySeedLogging will uninstall the logging stack for the Shoot in the Seed clusters.

func (*Botanist) DestroySourceBackupEntry added in v1.37.0

func (b *Botanist) DestroySourceBackupEntry(ctx context.Context) error

DestroySourceBackupEntry destroys the source BackupEntry. It returns nil if the Seed backup is not enabled or the Shoot is not in restore phase.

func (*Botanist) EnsureShootClusterIdentity added in v1.24.0

func (b *Botanist) EnsureShootClusterIdentity(ctx context.Context) error

EnsureShootClusterIdentity ensures that Shoot's `status.clusterIdentity` field is set and updates the Cluster resource in the seed if necessary.

func (*Botanist) HibernateControlPlane

func (b *Botanist) HibernateControlPlane(ctx context.Context) error

HibernateControlPlane hibernates the entire control plane if the shoot shall be hibernated.

func (*Botanist) InitializeSecretsManagement added in v1.43.0

func (b *Botanist) InitializeSecretsManagement(ctx context.Context) error

InitializeSecretsManagement initializes the secrets management and deploys the required secrets to the shoot namespace in the seed.

func (*Botanist) IsCopyOfBackupsRequired added in v1.37.0

func (b *Botanist) IsCopyOfBackupsRequired(ctx context.Context) (bool, error)

IsCopyOfBackupsRequired check if etcd backups need to be copied between seeds.

func (*Botanist) IsRestorePhase added in v1.74.0

func (b *Botanist) IsRestorePhase() bool

IsRestorePhase returns true when the shoot is in phase 'restore'.

func (*Botanist) KeepObjectsForManagedResources added in v1.40.0

func (b *Botanist) KeepObjectsForManagedResources(ctx context.Context) error

KeepObjectsForManagedResources sets ManagedResource.Spec.KeepObjects to true.

func (*Botanist) MigrateExtensionResourcesInParallel added in v1.40.0

func (b *Botanist) MigrateExtensionResourcesInParallel(ctx context.Context) (err error)

MigrateExtensionResourcesInParallel migrates extension CRs. CRs with kind "Extension" are handled separately and are not migrated by this function.

func (*Botanist) MigrateExternalDNSRecord added in v1.27.0

func (b *Botanist) MigrateExternalDNSRecord(ctx context.Context) error

MigrateExternalDNSRecord migrates the external DNSRecord and waits for the operation to complete.

func (*Botanist) MigrateIngressDNSRecord added in v1.8.0

func (b *Botanist) MigrateIngressDNSRecord(ctx context.Context) error

MigrateIngressDNSRecord migrates the ingress DNSRecord and waits for the operation to complete.

func (*Botanist) MigrateInternalDNSRecord added in v1.27.0

func (b *Botanist) MigrateInternalDNSRecord(ctx context.Context) error

MigrateInternalDNSRecord migrates the internal DNSRecord and waits for the operation to complete.

func (*Botanist) NeedsExternalDNS added in v1.5.0

func (b *Botanist) NeedsExternalDNS() bool

NeedsExternalDNS returns true if the Shoot cluster needs external DNS.

func (*Botanist) NeedsIngressDNS added in v1.27.0

func (b *Botanist) NeedsIngressDNS() bool

NeedsIngressDNS returns true if the Shoot cluster needs ingress DNS.

func (*Botanist) NeedsInternalDNS added in v1.5.0

func (b *Botanist) NeedsInternalDNS() bool

NeedsInternalDNS returns true if the Shoot cluster needs internal DNS.

func (*Botanist) ReconcileBlackboxExporter added in v1.72.0

func (b *Botanist) ReconcileBlackboxExporter(ctx context.Context) error

ReconcileBlackboxExporter deploys or destroys the blackbox-exporter component depending on whether shoot monitoring is enabled or not.

func (*Botanist) ReconcileNodeExporter added in v1.72.0

func (b *Botanist) ReconcileNodeExporter(ctx context.Context) error

ReconcileNodeExporter deploys or destroys the node-exporter component depending on whether shoot monitoring is enabled or not.

func (*Botanist) ReconcileNodeLocalDNS added in v1.39.0

func (b *Botanist) ReconcileNodeLocalDNS(ctx context.Context) error

ReconcileNodeLocalDNS deploys or destroys the node-local-dns component depending on whether it is enabled for the Shoot.

func (*Botanist) RequiredExtensionsReady added in v1.3.0

func (b *Botanist) RequiredExtensionsReady(ctx context.Context) error

RequiredExtensionsReady checks whether all required extensions needed for a shoot operation exist and are ready.

func (*Botanist) RestartControlPlanePods added in v1.2.0

func (b *Botanist) RestartControlPlanePods(ctx context.Context) error

RestartControlPlanePods restarts (deletes) pods of the shoot control plane.

func (*Botanist) RestoreControlPlane added in v1.40.0

func (b *Botanist) RestoreControlPlane(ctx context.Context) error

RestoreControlPlane restores the ControlPlane custom resource (purpose normal)

func (*Botanist) ScaleClusterAutoscalerToZero added in v1.73.0

func (b *Botanist) ScaleClusterAutoscalerToZero(ctx context.Context) error

ScaleClusterAutoscalerToZero scales cluster-autoscaler replicas to zero.

func (*Botanist) ScaleETCDToZero added in v1.5.0

func (b *Botanist) ScaleETCDToZero(ctx context.Context) error

ScaleETCDToZero scales ETCD main and events replicas to zero.

func (*Botanist) ScaleGardenerResourceManagerToOne added in v1.5.0

func (b *Botanist) ScaleGardenerResourceManagerToOne(ctx context.Context) error

ScaleGardenerResourceManagerToOne scales the gardener-resource-manager deployment

func (*Botanist) ScaleKubeAPIServerToOne added in v1.12.0

func (b *Botanist) ScaleKubeAPIServerToOne(ctx context.Context) error

ScaleKubeAPIServerToOne scales kube-apiserver replicas to one.

func (*Botanist) ScaleKubeControllerManagerToOne added in v1.12.0

func (b *Botanist) ScaleKubeControllerManagerToOne(ctx context.Context) error

ScaleKubeControllerManagerToOne scales kube-controller-manager replicas to one.

func (*Botanist) ScaleMachineControllerManagerToZero added in v1.73.0

func (b *Botanist) ScaleMachineControllerManagerToZero(ctx context.Context) error

ScaleMachineControllerManagerToZero scales machine-controller-manager replicas to zero.

func (*Botanist) ScaleUpETCD added in v1.49.0

func (b *Botanist) ScaleUpETCD(ctx context.Context) error

ScaleUpETCD scales ETCD main and events replicas to the configured replica count.

func (*Botanist) SetNginxIngressAddress added in v1.5.0

func (b *Botanist) SetNginxIngressAddress(address string)

SetNginxIngressAddress sets the IP address of the API server's LoadBalancer.

func (*Botanist) ShallowDeleteMachineResources added in v1.82.0

func (b *Botanist) ShallowDeleteMachineResources(ctx context.Context) error

ShallowDeleteMachineResources deletes all machine-related resources by forcefully removing their finalizers.

func (*Botanist) ShootUsesDNS added in v1.73.0

func (b *Botanist) ShootUsesDNS() bool

ShootUsesDNS returns true if the shoot uses internal and external DNS.

func (*Botanist) SnapshotEtcd added in v1.13.0

func (b *Botanist) SnapshotEtcd(ctx context.Context) error

SnapshotEtcd executes into the etcd-main pod and triggers a full snapshot.

func (*Botanist) SourceBackupEntry added in v1.37.0

func (b *Botanist) SourceBackupEntry() corebackupentry.Interface

SourceBackupEntry creates a deployer for a core.gardener.cloud/v1beta1.BackupEntry resource which will be used as source when copying etcd backups.

func (*Botanist) WaitForInfrastructure added in v1.8.0

func (b *Botanist) WaitForInfrastructure(ctx context.Context) error

WaitForInfrastructure waits until the infrastructure reconciliation has finished and extracts the provider status out of it.

func (*Botanist) WaitForKubeControllerManagerToBeActive added in v1.12.0

func (b *Botanist) WaitForKubeControllerManagerToBeActive(ctx context.Context) error

WaitForKubeControllerManagerToBeActive waits for the kube controller manager of a Shoot cluster has acquired leader election, thus is active.

func (*Botanist) WaitUntilEndpointsDoNotContainPodIPs

func (b *Botanist) WaitUntilEndpointsDoNotContainPodIPs(ctx context.Context) error

WaitUntilEndpointsDoNotContainPodIPs waits until all endpoints in the shoot cluster to not contain any IPs from the Shoot's PodCIDR.

func (*Botanist) WaitUntilEtcdsDeleted added in v1.35.0

func (b *Botanist) WaitUntilEtcdsDeleted(ctx context.Context) error

WaitUntilEtcdsDeleted waits until both etcd-main and etcd-events are deleted.

func (*Botanist) WaitUntilEtcdsReady added in v1.13.0

func (b *Botanist) WaitUntilEtcdsReady(ctx context.Context) error

WaitUntilEtcdsReady waits until both etcd-main and etcd-events are ready.

func (*Botanist) WaitUntilExtensionResourcesDeleted

func (b *Botanist) WaitUntilExtensionResourcesDeleted(ctx context.Context) error

WaitUntilExtensionResourcesDeleted waits until extension CRs have been deleted from the Shoot namespace. CRs with kind "Extension" are handled separately and are not waited by this function.

func (*Botanist) WaitUntilExtensionResourcesMigrated added in v1.40.0

func (b *Botanist) WaitUntilExtensionResourcesMigrated(ctx context.Context) error

WaitUntilExtensionResourcesMigrated waits until extension CRs have been successfully migrated. CRs with kind "Extension" are handled separately and are not waited by this function.

func (*Botanist) WaitUntilManagedResourcesDeleted

func (b *Botanist) WaitUntilManagedResourcesDeleted(ctx context.Context) error

WaitUntilManagedResourcesDeleted waits until all managed resources labeled with `origin=gardener` are gone or the context is cancelled.

func (*Botanist) WaitUntilNginxIngressServiceIsReady added in v1.5.0

func (b *Botanist) WaitUntilNginxIngressServiceIsReady(ctx context.Context) error

WaitUntilNginxIngressServiceIsReady waits until the external load balancer of the nginx ingress controller has been created.

func (*Botanist) WaitUntilNoPodRunning

func (b *Botanist) WaitUntilNoPodRunning(ctx context.Context) error

WaitUntilNoPodRunning waits until there is no running Pod in the shoot cluster.

func (*Botanist) WaitUntilNodesDeleted

func (b *Botanist) WaitUntilNodesDeleted(ctx context.Context) error

WaitUntilNodesDeleted waits until no nodes exist in the shoot cluster anymore.

func (*Botanist) WaitUntilOperatingSystemConfigUpdatedForAllWorkerPools added in v1.85.0

func (b *Botanist) WaitUntilOperatingSystemConfigUpdatedForAllWorkerPools(ctx context.Context) error

WaitUntilOperatingSystemConfigUpdatedForAllWorkerPools waits for a maximum of 6 minutes until all the nodes for all the worker pools in the Shoot have successfully applied the desired version of their operating system config.

func (*Botanist) WaitUntilRequiredExtensionsReady added in v1.3.0

func (b *Botanist) WaitUntilRequiredExtensionsReady(ctx context.Context) error

WaitUntilRequiredExtensionsReady waits until all the extensions required for a shoot reconciliation are ready

func (*Botanist) WaitUntilSeedNamespaceDeleted

func (b *Botanist) WaitUntilSeedNamespaceDeleted(ctx context.Context) error

WaitUntilSeedNamespaceDeleted waits until the namespace of the Shoot cluster within the Seed cluster is deleted.

func (*Botanist) WaitUntilShootManagedResourcesDeleted added in v1.59.0

func (b *Botanist) WaitUntilShootManagedResourcesDeleted(ctx context.Context) error

WaitUntilShootManagedResourcesDeleted waits until all managed resources that are describing shoot resources are deleted or the context is cancelled.

func (*Botanist) WaitUntilTunnelConnectionExists added in v1.6.0

func (b *Botanist) WaitUntilTunnelConnectionExists(ctx context.Context) error

WaitUntilTunnelConnectionExists waits until a port forward connection to the tunnel pod (vpn-shoot) in the kube-system namespace of the Shoot cluster can be established.

func (*Botanist) WakeUpKubeAPIServer added in v1.6.0

func (b *Botanist) WakeUpKubeAPIServer(ctx context.Context) error

WakeUpKubeAPIServer creates a service and ensures API Server is scaled up

Directories

Path Synopsis
this file is copy of https://github.com/kubernetes/kubernetes/blob/f247e75980061d7cf83c63c0fb1f12c7060c599f/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go with some modifications for the webhook matching use-case.
this file is copy of https://github.com/kubernetes/kubernetes/blob/f247e75980061d7cf83c63c0fb1f12c7060c599f/staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/rules/rules.go with some modifications for the webhook matching use-case.

Jump to

Keyboard shortcuts

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