Documentation ¶
Index ¶
- func ComputeTechnicalID(projectName string, shoot *gardencorev1beta1.Shoot) string
- type Addons
- type Builder
- func (b *Builder) Build(ctx context.Context, c client.Reader) (*Shoot, error)
- func (b *Builder) WithCloudProfileObject(cloudProfileObject *gardencorev1beta1.CloudProfile) *Builder
- func (b *Builder) WithCloudProfileObjectFrom(reader client.Reader) *Builder
- func (b *Builder) WithCloudProfileObjectFromCluster(seedClient kubernetes.Interface, shootNamespace string) *Builder
- func (b *Builder) WithDefaultDomains(defaultDomains []*gardenerutils.Domain) *Builder
- func (b *Builder) WithInternalDomain(internalDomain *gardenerutils.Domain) *Builder
- func (b *Builder) WithProjectName(projectName string) *Builder
- func (b *Builder) WithSeedObject(seed *gardencorev1beta1.Seed) *Builder
- func (b *Builder) WithShootObject(shootObject *gardencorev1beta1.Shoot) *Builder
- func (b *Builder) WithShootObjectFromCluster(seedClient kubernetes.Interface, shootNamespace string) *Builder
- func (b *Builder) WithShootSecret(secret *corev1.Secret) *Builder
- func (b *Builder) WithShootSecretFrom(c client.Reader) *Builder
- type Components
- type ControlPlane
- type Extensions
- type Logging
- type Networks
- type Shoot
- func (s *Shoot) ComputeInClusterAPIServerAddress(runsInShootNamespace bool) string
- func (s *Shoot) ComputeOutOfClusterAPIServerAddress(apiServerAddress string, useInternalClusterDomain bool) string
- func (s *Shoot) GetDNSRecordComponentsForMigration() []component.DeployMigrateWaiter
- func (s *Shoot) GetExtensionComponentsForParallelMigration() []component.DeployMigrateWaiter
- func (s *Shoot) GetInfo() *gardencorev1beta1.Shoot
- func (s *Shoot) GetIngressFQDN(subDomain string) string
- func (s *Shoot) GetMaxNodeCount() int32
- func (s *Shoot) GetMinNodeCount() int32
- func (s *Shoot) GetReplicas(wokenUp int32) int32
- func (s *Shoot) GetWorkerNames() []string
- func (s *Shoot) IPVSEnabled() bool
- func (s *Shoot) IsShootControlPlaneLoggingEnabled(c *config.GardenletConfiguration) bool
- func (s *Shoot) SetInfo(shoot *gardencorev1beta1.Shoot)
- func (s *Shoot) UpdateInfo(ctx context.Context, c client.Client, useStrategicMerge bool, ...) error
- func (s *Shoot) UpdateInfoStatus(ctx context.Context, c client.Client, useStrategicMerge bool, ...) error
- type SystemComponents
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ComputeTechnicalID ¶
func ComputeTechnicalID(projectName string, shoot *gardencorev1beta1.Shoot) string
ComputeTechnicalID determines the technical id of that Shoot which is later used for the name of the namespace and for tagging all the resources created in the infrastructure.
Types ¶
type Addons ¶ added in v1.63.0
type Addons struct { KubernetesDashboard kubernetesdashboard.Interface NginxIngress component.Deployer }
Addons contains references for the addons.
type Builder ¶ added in v1.4.0
type Builder struct {
// contains filtered or unexported fields
}
Builder is an object that builds Shoot objects.
func (*Builder) WithCloudProfileObject ¶ added in v1.4.0
func (b *Builder) WithCloudProfileObject(cloudProfileObject *gardencorev1beta1.CloudProfile) *Builder
WithCloudProfileObject sets the cloudProfileFunc attribute at the Builder.
func (*Builder) WithCloudProfileObjectFrom ¶ added in v1.30.0
WithCloudProfileObjectFrom sets the cloudProfileFunc attribute at the Builder after fetching it from the given reader.
func (*Builder) WithCloudProfileObjectFromCluster ¶ added in v1.19.0
func (b *Builder) WithCloudProfileObjectFromCluster(seedClient kubernetes.Interface, shootNamespace string) *Builder
WithCloudProfileObjectFromCluster sets the cloudProfileFunc attribute at the Builder.
func (*Builder) WithDefaultDomains ¶ added in v1.4.0
func (b *Builder) WithDefaultDomains(defaultDomains []*gardenerutils.Domain) *Builder
WithDefaultDomains sets the defaultDomains attribute at the Builder.
func (*Builder) WithInternalDomain ¶ added in v1.4.0
func (b *Builder) WithInternalDomain(internalDomain *gardenerutils.Domain) *Builder
WithInternalDomain sets the internalDomain attribute at the Builder.
func (*Builder) WithProjectName ¶ added in v1.4.0
WithProjectName sets the projectName attribute at the Builder.
func (*Builder) WithSeedObject ¶ added in v1.66.0
func (b *Builder) WithSeedObject(seed *gardencorev1beta1.Seed) *Builder
WithSeedObject sets the seed attribute at the Builder.
func (*Builder) WithShootObject ¶ added in v1.4.0
func (b *Builder) WithShootObject(shootObject *gardencorev1beta1.Shoot) *Builder
WithShootObject sets the shootObjectFunc attribute at the Builder.
func (*Builder) WithShootObjectFromCluster ¶ added in v1.16.0
func (b *Builder) WithShootObjectFromCluster(seedClient kubernetes.Interface, shootNamespace string) *Builder
WithShootObjectFromCluster sets the shootObjectFunc attribute at the Builder.
func (*Builder) WithShootSecret ¶ added in v1.4.0
WithShootSecret sets the shootSecretFunc attribute at the Builder.
type Components ¶ added in v1.5.0
type Components struct { BackupEntry backupentry.Interface SourceBackupEntry backupentry.Interface ControlPlane *ControlPlane Extensions *Extensions SystemComponents *SystemComponents Logging *Logging GardenerAccess component.Deployer DependencyWatchdogAccess component.Deployer Addons *Addons }
Components contains different components deployed in the Shoot cluster.
type ControlPlane ¶ added in v1.7.0
type ControlPlane struct { ClusterAutoscaler clusterautoscaler.Interface EtcdMain etcd.Interface EtcdEvents etcd.Interface EtcdCopyBackupsTask etcdcopybackupstask.Interface KubeAPIServerIngress component.Deployer KubeAPIServerService component.DeployWaiter KubeAPIServerSNI component.DeployWaiter KubeAPIServerSNIPhase component.Phase KubeAPIServer kubeapiserver.Interface KubeScheduler kubescheduler.Interface KubeControllerManager kubecontrollermanager.Interface KubeStateMetrics kubestatemetrics.Interface ResourceManager resourcemanager.Interface VerticalPodAutoscaler vpa.Interface VPNSeedServer vpnseedserver.Interface }
ControlPlane contains references to K8S control plane components.
type Extensions ¶ added in v1.8.0
type Extensions struct { ContainerRuntime containerruntime.Interface ControlPlane controlplane.Interface ControlPlaneExposure controlplane.Interface ExternalDNSRecord dnsrecord.Interface InternalDNSRecord dnsrecord.Interface IngressDNSRecord dnsrecord.Interface OwnerDNSRecord dnsrecord.Interface Extension extension.Interface Infrastructure infrastructure.Interface Network component.DeployMigrateWaiter OperatingSystemConfig operatingsystemconfig.Interface Worker worker.Interface }
Extensions contains references to extension resources.
type Networks ¶ added in v1.1.0
type Networks struct { // Pods subnet Pods *net.IPNet // Services subnet Services *net.IPNet // APIServer is the ClusterIP of default/kubernetes Service APIServer net.IP // CoreDNS is the ClusterIP of kube-system/coredns Service CoreDNS net.IP }
Networks contains pre-calculated subnets and IP address for various components.
func ToNetworks ¶ added in v1.1.0
func ToNetworks(s *gardencorev1beta1.Shoot, workerless bool) (*Networks, error)
ToNetworks return a network with computed cidrs and ClusterIPs for a Shoot
type Shoot ¶
type Shoot struct { Secret *corev1.Secret CloudProfile *gardencorev1beta1.CloudProfile SeedNamespace string KubernetesVersion *semver.Version GardenerVersion *semver.Version InternalClusterDomain string ExternalClusterDomain *string ExternalDomain *gardenerutils.Domain Purpose gardencorev1beta1.ShootPurpose IsWorkerless bool WantsClusterAutoscaler bool WantsVerticalPodAutoscaler bool WantsAlertmanager bool IgnoreAlerts bool HibernationEnabled bool VPNHighAvailabilityEnabled bool VPNHighAvailabilityNumberOfSeedServers int VPNHighAvailabilityNumberOfShootClients int NodeLocalDNSEnabled bool PSPDisabled bool TopologyAwareRoutingEnabled bool Networks *Networks BackupEntryName string CloudConfigExecutionMaxDelaySeconds int Components *Components // contains filtered or unexported fields }
Shoot is an object containing information about a Shoot cluster.
func (*Shoot) ComputeInClusterAPIServerAddress ¶ added in v1.1.0
ComputeInClusterAPIServerAddress returns the internal address for the shoot API server depending on whether the caller runs in the shoot namespace or not.
func (*Shoot) ComputeOutOfClusterAPIServerAddress ¶ added in v1.1.0
func (s *Shoot) ComputeOutOfClusterAPIServerAddress(apiServerAddress string, useInternalClusterDomain bool) string
ComputeOutOfClusterAPIServerAddress returns the external address for the shoot API server depending on whether the caller wants to use the internal cluster domain and whether DNS is disabled on this seed.
func (*Shoot) GetDNSRecordComponentsForMigration ¶ added in v1.29.0
func (s *Shoot) GetDNSRecordComponentsForMigration() []component.DeployMigrateWaiter
GetDNSRecordComponentsForMigration returns a list of component.DeployMigrateWaiters of DNSRecord components that should be migrated by the shoot controller.
func (*Shoot) GetExtensionComponentsForParallelMigration ¶ added in v1.40.0
func (s *Shoot) GetExtensionComponentsForParallelMigration() []component.DeployMigrateWaiter
GetExtensionComponentsForParallelMigration returns a list of component.DeployMigrateWaiters of extension components that should be migrated by the shoot controller in parallel. Note that this method does not return ControlPlane and Infrastructure components as they require specific handling during migration.
func (*Shoot) GetInfo ¶ added in v1.29.0
func (s *Shoot) GetInfo() *gardencorev1beta1.Shoot
GetInfo returns the shoot resource of this Shoot in a concurrency safe way. This method should be used only for reading the data of the returned shoot resource. The returned shoot resource MUST NOT BE MODIFIED (except in test code) since this might interfere with other concurrent reads and writes. To properly update the shoot resource of this Shoot use UpdateInfo or UpdateInfoStatus.
func (*Shoot) GetIngressFQDN ¶
GetIngressFQDN returns the fully qualified domain name of ingress sub-resource for the Shoot cluster. The end result is '<subDomain>.<ingressPrefix>.<clusterDomain>'.
func (*Shoot) GetMaxNodeCount ¶ added in v1.1.0
GetMaxNodeCount returns the sum of all 'maximum' fields of all worker groups of the Shoot.
func (*Shoot) GetMinNodeCount ¶ added in v1.1.0
GetMinNodeCount returns the sum of all 'minimum' fields of all worker groups of the Shoot.
func (*Shoot) GetReplicas ¶
GetReplicas returns the given <wokenUp> number if the shoot is not hibernated, or zero otherwise.
func (*Shoot) GetWorkerNames ¶
GetWorkerNames returns a list of names of the worker groups in the Shoot manifest.
func (*Shoot) IPVSEnabled ¶
IPVSEnabled returns true if IPVS is enabled for the shoot.
func (*Shoot) IsShootControlPlaneLoggingEnabled ¶ added in v1.41.0
func (s *Shoot) IsShootControlPlaneLoggingEnabled(c *config.GardenletConfiguration) bool
IsShootControlPlaneLoggingEnabled return true if the Shoot controlplane logging is enabled
func (*Shoot) SetInfo ¶ added in v1.29.0
func (s *Shoot) SetInfo(shoot *gardencorev1beta1.Shoot)
SetInfo sets the shoot resource of this Shoot in a concurrency safe way. This method is not protected by a mutex and does not update the shoot resource in the cluster and so should be used only in exceptional situations, or as a convenience in test code. The shoot passed as a parameter MUST NOT BE MODIFIED after the call to SetInfo (except in test code) since this might interfere with other concurrent reads and writes. To properly update the shoot resource of this Shoot use UpdateInfo or UpdateInfoStatus.
func (*Shoot) UpdateInfo ¶ added in v1.29.0
func (s *Shoot) UpdateInfo(ctx context.Context, c client.Client, useStrategicMerge bool, f func(*gardencorev1beta1.Shoot) error) error
UpdateInfo updates the shoot resource of this Shoot in a concurrency safe way, using the given context, client, and mutate function. It copies the current shoot resource and then uses the copy to patch the resource in the cluster using either client.MergeFrom or client.StrategicMergeFrom depending on useStrategicMerge. This method is protected by a mutex, so only a single UpdateInfo or UpdateInfoStatus operation can be executed at any point in time.
func (*Shoot) UpdateInfoStatus ¶ added in v1.29.0
func (s *Shoot) UpdateInfoStatus(ctx context.Context, c client.Client, useStrategicMerge bool, f func(*gardencorev1beta1.Shoot) error) error
UpdateInfoStatus updates the status of the shoot resource of this Shoot in a concurrency safe way, using the given context, client, and mutate function. It copies the current shoot resource and then uses the copy to patch the resource in the cluster using either client.MergeFrom or client.StrategicMergeFrom depending on useStrategicMerge. This method is protected by a mutex, so only a single UpdateInfo or UpdateInfoStatus operation can be executed at any point in time.
type SystemComponents ¶ added in v1.13.0
type SystemComponents struct { APIServerProxy apiserverproxy.Interface BlackboxExporter blackboxexporter.Interface ClusterIdentity clusteridentity.Interface CoreDNS coredns.Interface KubeProxy kubeproxy.Interface MetricsServer component.DeployWaiter Namespaces component.DeployWaiter NodeLocalDNS nodelocaldns.Interface NodeProblemDetector component.DeployWaiter NodeExporter component.DeployWaiter Resources component.DeployWaiter VPNShoot vpnshoot.Interface }
SystemComponents contains references to system components.