Shoot Spec Configuration Settings
The following contains a description of several specifications of the Shoot manifest, which are useful to know or may be necessary to modify manually.
extensions: Extensions contain type and provider information for Shoot extensions.
kubernetes: Kubernetes contains the version and configuration settings of the control plane components.
maintenance: Maintenance contains information about the time window for maintenance operations
and which operations should be performed.
monitoring: Monitoring contains information about custom monitoring configurations for
the shoot.
networking (Required): Networking contains information about cluster networking such as CNI Plugin
type, CIDRs, ...etc.
provider (Required): Provider contains all provider-specific and provider-relevant information.
provider.workers[].machineControllerManager: In this section it is possible to customize how the machine-controller-manager is behaving by setting some timeouts. Link to the Gardener documentation.
The settings has to be applied to each worker group separately.
provider.workers[].taints: This setting allows users to define taints.
See also Gardener documentation for taints and tolerations.
machineDrainTimeout: If a machine is deleted, and its pre-delete draining takes more time than the defined timeout,
the MCM forcefully deletes the machine (default: 2h).
machineHealthTimeout: If the connection to a cluster Node is lost,
the MCM will wait for the Node to return until this timeout expires.
If this does not happen, it will be declared as failed (default: 10m).
machineCreationTimeout: If a new machine is created and it is not ready to join the cluster
in the specified time, it would be declared as failed (default: 10m).
maxEvictRetries: Maximum number of times evicts would be attempted on a pod before
it is forcibly deleted during the draining of a machine (default: 10).
nodeConditions: List of case-sensitive node-conditions which will change a machine
to a Failed state if they persist longer
than the period defined in machineHealthTimeout.
(defaults: KernelDeadlock, ReadonlyFilesystem , DiskPressure).
purpose: Purpose is the purpose class for this cluster.
More detailed information about Shoot purpose class.
region(Required): Region is a name of a region. This field is immutable.
resources: Resources holds a list of named resource references
that can be referred to in extension configs by their names.
credentialsBindingName(Required): CredentialsBindingName is the name of the CredentialsBinding that has a reference to the IaaS provider credentials.
The credentials will be used to create the shoot in the respective account.
seedName, seedSelector: Both of them are used to specify seed or group of seeds where shoot could be scheduled.
SeedName is the name of the seed cluster that runs the control plane of the Shoot.
SeedSelector is an optional selector which must match a seed's labels for the shoot to be scheduled on that seed.
systemComponents: Can be used to enable nodeLocalDNS or coreDNS
which contains the settings of system components in the control or data plane of the Shoot cluster.
systemComponents.nodeLocalDNS: Is designed to solve issues such as cloud provider limits for DNS lookup,
unreliable UDP connections, inefficient load-balancing of services.
The enabled field should be set to true.
tolerations: Another option how to control shoot scheduling by tolerations for taints on seed clusters.
In same way as toleration is K8s.
kubeProxy: Contains configuration settings for the kube-proxy. The enabled field should be set to false,
otherwise it may conflict with various applications or components.
controlPlane: Contains configuration settings for the controlPlane high availability mode.
More detailed information about HA settings
kubeAPIServer: Contains configuration settings for the kube-apiserver.
kubeAPIServer.requests: Contains kube-apiserver in-flight request limit settings.
These settings are configured on the Shoot object:
maxMutatingInflight controls the maximum number of mutating requests that can be processed at the same time.
maxNonMutatingInflight controls the maximum number of non-mutating requests that can be processed at the same time.
The platform can enforce maximum allowed values for these fields. You may set lower values in the Shoot specification, but creating or updating a Shoot with values higher than the platform cap is rejected during admission. If your Shoot is rejected because of these request limits, reduce the configured values or contact OSC support.
kubeAPIServer.oidcConfig: OIDCConfig contains configuration settings for the OIDC provider.
This needs to be configured in case OIDC will be used. Click here for more detailed information about OIDC configuration.