
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: sheet.core.gardener.cloud
spec:
  group: core.gardener.cloud
  names:
    kind: Shoot
    listKind: ShootList
    plural: sheet
    singular: shoot
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: Specification of the Shoot cluster.
            properties:
              addons:
                description: Addons contains information about enabled/disabled addons
                  and their configuration.
                properties:
                  kubernetesDashboard:
                    description: KubernetesDashboard holds configuration settings
                      for the kubernetes dashboard addon.
                    properties:
                      authenticationMode:
                        description: AuthenticationMode defines the authentication
                          mode for the kubernetes-dashboard.
                        type: string
                      enabled:
                        description: Enabled indicates whether the addon is enabled
                          or not.
                        type: boolean
                    required:
                    - enabled
                    type: object
                  nginxIngress:
                    description: NginxIngress holds configuration settings for the
                      nginx-ingress addon.
                    properties:
                      config:
                        additionalProperties:
                          type: string
                        description: Config contains custom configuration for the
                          nginx-ingress-controller configuration. See https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md#configuration-options
                        type: object
                      enabled:
                        description: Enabled indicates whether the addon is enabled
                          or not.
                        type: boolean
                      externalTrafficPolicy:
                        description: ExternalTrafficPolicy controls the `.spec.externalTrafficPolicy`
                          value of the load balancer `Service` exposing the nginx-ingress.
                          Defaults to `Cluster`.
                        type: string
                      loadBalancerSourceRanges:
                        description: LoadBalancerSourceRanges is list of whitelist
                          IP sources for NginxIngress
                        items:
                          type: string
                        type: array
                    required:
                    - enabled
                    type: object
                type: object
              cloudProfileName:
                description: CloudProfileName is a name of a CloudProfile object.
                type: string
              dns:
                description: DNS contains information about the DNS settings of the
                  Shoot.
                properties:
                  domain:
                    description: Domain is the external available domain of the Shoot
                      cluster. This domain will be written into the kubeconfig that
                      is handed out to end-users.
                    type: string
                  providers:
                    description: Providers is a list of DNS providers that shall be
                      enabled for this shoot cluster. Only relevant if not a default
                      domain is used.
                    items:
                      description: DNSProvider contains information about a DNS provider.
                      properties:
                        domains:
                          description: Domains contains information about which domains
                            shall be included/excluded for this provider.
                          properties:
                            exclude:
                              description: Exclude is a list of resources that shall
                                be excluded.
                              items:
                                type: string
                              type: array
                            include:
                              description: Include is a list of resources that shall
                                be included.
                              items:
                                type: string
                              type: array
                          type: object
                        primary:
                          description: Primary indicates that this DNSProvider is
                            used for shoot related domains.
                          type: boolean
                        secretName:
                          description: SecretName is a name of a secret containing
                            credentials for the stated domain and the provider. When
                            not specified, the Gardener will use the cloud provider
                            credentials referenced by the Shoot and try to find respective
                            credentials there (primary provider only). Specifying
                            this field may override this behavior, i.e. forcing the
                            Gardener to only look into the given secret.
                          type: string
                        type:
                          description: Type is the DNS provider type.
                          type: string
                        zones:
                          description: Zones contains information about which hosted
                            zones shall be included/excluded for this provider.
                          properties:
                            exclude:
                              description: Exclude is a list of resources that shall
                                be excluded.
                              items:
                                type: string
                              type: array
                            include:
                              description: Include is a list of resources that shall
                                be included.
                              items:
                                type: string
                              type: array
                          type: object
                      type: object
                    type: array
                type: object
              extensions:
                description: Extensions contain type and provider information for
                  Shoot extensions.
                items:
                  description: Extension contains type and provider information for
                    Shoot extensions.
                  properties:
                    providerConfig:
                      description: ProviderConfig is the configuration passed to extension
                        resource.
                      type: object
                    type:
                      description: Type is the type of the extension resource.
                      type: string
                  required:
                  - type
                  type: object
                type: array
              hibernation:
                description: Hibernation contains information whether the Shoot is
                  suspended or not.
                properties:
                  enabled:
                    description: Enabled specifies whether the Shoot needs to be hibernated
                      or not. If it is true, the Shoot's desired state is to be hibernated.
                      If it is false or nil, the Shoot's desired state is to be awaken.
                    type: boolean
                  schedules:
                    description: Schedules determine the hibernation schedules.
                    items:
                      description: HibernationSchedule determines the hibernation
                        schedule of a Shoot. A Shoot will be regularly hibernated
                        at each start time and will be woken up at each end time.
                        Start or End can be omitted, though at least one of each has
                        to be specified.
                      properties:
                        end:
                          description: End is a Cron spec at which time a Shoot will
                            be woken up.
                          type: string
                        location:
                          description: Location is the time location in which both
                            start and and shall be evaluated.
                          type: string
                        start:
                          description: Start is a Cron spec at which time a Shoot
                            will be hibernated.
                          type: string
                      type: object
                    type: array
                type: object
              kubernetes:
                description: Kubernetes contains the version and configuration settings
                  of the control plane components.
                properties:
                  allowPrivilegedContainers:
                    description: 'AllowPrivilegedContainers indicates whether privileged
                      containers are allowed in the Shoot (default: true).'
                    type: boolean
                  clusterAutoscaler:
                    description: ClusterAutoscaler contains the configration flags
                      for the Kubernetes cluster autoscaler.
                    properties:
                      scaleDownDelayAfterAdd:
                        description: 'ScaleDownDelayAfterAdd defines how long after
                          scale up that scale down evaluation resumes (default: 1
                          hour).'
                        type: string
                      scaleDownDelayAfterDelete:
                        description: ScaleDownDelayAfterDelete how long after node
                          deletion that scale down evaluation resumes, defaults to
                          scanInterval (defaults to ScanInterval).
                        type: string
                      scaleDownDelayAfterFailure:
                        description: 'ScaleDownDelayAfterFailure how long after scale
                          down failure that scale down evaluation resumes (default:
                          3 mins).'
                        type: string
                      scaleDownUnneededTime:
                        description: 'ScaleDownUnneededTime defines how long a node
                          should be unneeded before it is eligible for scale down
                          (default: 30 mins).'
                        type: string
                      scaleDownUtilizationThreshold:
                        anyOf:
                        - type: integer
                        - type: string
                        description: ScaleDownUtilizationThreshold defines the threshold
                          in % under which a node is being removed
                        pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                        x-kubernetes-int-or-string: true
                      scanInterval:
                        description: 'ScanInterval how often cluster is reevaluated
                          for scale up or down (default: 10 secs).'
                        type: string
                    type: object
                  kubeAPIServer:
                    description: KubeAPIServer contains configuration settings for
                      the kube-apiserver.
                    properties:
                      admissionPlugins:
                        description: AdmissionPlugins contains the list of user-defined
                          admission plugins (additional to those managed by Gardener),
                          and, if desired, the corresponding configuration.
                        items:
                          description: AdmissionPlugin contains information about
                            a specific admission plugin and its corresponding configuration.
                          properties:
                            config:
                              description: Config is the configuration of the plugin.
                              type: object
                            name:
                              description: Name is the name of the plugin.
                              type: string
                          required:
                          - name
                          type: object
                        type: array
                      apiAudiences:
                        description: APIAudiences are the identifiers of the API.
                          The service account token authenticator will validate that
                          tokens used against the API are bound to at least one of
                          these audiences. Defaults to ["kubernetes"].
                        items:
                          type: string
                        type: array
                      auditConfig:
                        description: AuditConfig contains configuration settings for
                          the audit of the kube-apiserver.
                        properties:
                          auditPolicy:
                            description: AuditPolicy contains configuration settings
                              for audit policy of the kube-apiserver.
                            properties:
                              configMapRef:
                                description: ConfigMapRef is a reference to a ConfigMap
                                  object in the same namespace, which contains the
                                  audit policy for the kube-apiserver.
                                properties:
                                  apiVersion:
                                    description: API version of the referent.
                                    type: string
                                  fieldPath:
                                    description: 'If referring to a piece of an object
                                      instead of an entire object, this string should
                                      contain a valid JSON/Go field access statement,
                                      such as desiredState.manifest.containers[2].
                                      For example, if the object reference is to a
                                      container within a pod, this would take on a
                                      value like: "spec.containers{name}" (where "name"
                                      refers to the name of the container that triggered
                                      the event) or if no container name is specified
                                      "spec.containers[2]" (container with index 2
                                      in this pod). This syntax is chosen only to
                                      have some well-defined way of referencing a
                                      part of an object. TODO: this design is not
                                      final and this field is subject to change in
                                      the future.'
                                    type: string
                                  kind:
                                    description: 'Kind of the referent. More info:
                                      https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                                    type: string
                                  name:
                                    description: 'Name of the referent. More info:
                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                                    type: string
                                  namespace:
                                    description: 'Namespace of the referent. More
                                      info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                                    type: string
                                  resourceVersion:
                                    description: 'Specific resourceVersion to which
                                      this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                                    type: string
                                  uid:
                                    description: 'UID of the referent. More info:
                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                                    type: string
                                type: object
                            type: object
                        type: object
                      enableBasicAuthentication:
                        description: EnableBasicAuthentication defines whether basic
                          authentication should be enabled for this cluster or not.
                        type: boolean
                      featureGates:
                        additionalProperties:
                          type: boolean
                        description: FeatureGates contains information about enabled
                          feature gates.
                        type: object
                      oidcConfig:
                        description: OIDCConfig contains configuration settings for
                          the OIDC provider.
                        properties:
                          caBundle:
                            description: If set, the OpenID server's certificate will
                              be verified by one of the authorities in the oidc-ca-file,
                              otherwise the host's root CA set will be used.
                            type: string
                          clientAuthentication:
                            description: ClientAuthentication can optionally contain
                              client configuration used for kubeconfig generation.
                            properties:
                              extraConfig:
                                additionalProperties:
                                  type: string
                                description: Extra configuration added to kubeconfig's
                                  auth-provider. Must not be any of idp-issuer-url,
                                  client-id, client-secret, idp-certificate-authority,
                                  idp-certificate-authority-data, id-token or refresh-token
                                type: object
                              secret:
                                description: The client Secret for the OpenID Connect
                                  client.
                                type: string
                            type: object
                          clientID:
                            description: The client ID for the OpenID Connect client,
                              must be set if oidc-issuer-url is set.
                            type: string
                          groupsClaim:
                            description: If provided, the name of a custom OpenID
                              Connect claim for specifying user groups. The claim
                              value is expected to be a string or array of strings.
                              This flag is experimental, please see the authentication
                              documentation for further details.
                            type: string
                          groupsPrefix:
                            description: If provided, all groups will be prefixed
                              with this value to prevent conflicts with other authentication
                              strategies.
                            type: string
                          issuerURL:
                            description: The URL of the OpenID issuer, only HTTPS
                              scheme will be accepted. If set, it will be used to
                              verify the OIDC JSON Web Token (JWT).
                            type: string
                          requiredClaims:
                            additionalProperties:
                              type: string
                            description: 'ATTENTION: Only meaningful for Kubernetes
                              >= 1.11 key=value pairs that describes a required claim
                              in the ID Token. If set, the claim is verified to be
                              present in the ID Token with a matching value.'
                            type: object
                          signingAlgs:
                            description: List of allowed JOSE asymmetric signing algorithms.
                              JWTs with a 'alg' header value not in this list will
                              be rejected. Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1
                            items:
                              type: string
                            type: array
                          usernameClaim:
                            description: The OpenID claim to use as the user name.
                              Note that claims other than the default ('sub') is not
                              guaranteed to be unique and immutable. This flag is
                              experimental, please see the authentication documentation
                              for further details. (default "sub")
                            type: string
                          usernamePrefix:
                            description: If provided, all usernames will be prefixed
                              with this value. If not provided, username claims other
                              than 'email' are prefixed by the issuer URL to avoid
                              clashes. To skip any prefixing, provide the value '-'.
                            type: string
                        type: object
                      runtimeConfig:
                        additionalProperties:
                          type: boolean
                        description: RuntimeConfig contains information about enabled
                          or disabled APIs.
                        type: object
                      serviceAccountConfig:
                        description: ServiceAccountConfig contains configuration settings
                          for the service account handling of the kube-apiserver.
                        properties:
                          issuer:
                            description: Issuer is the identifier of the service account
                              token issuer. The issuer will assert this identifier
                              in "iss" claim of issued tokens. This value is a string
                              or URI. Defaults to URI of the API server.
                            type: string
                          signingKeySecretName:
                            description: SigningKeySecret is a reference to a secret
                              that contains an optional private key of the service
                              account token issuer. The issuer will sign issued ID
                              tokens with this private key. Only useful if service
                              account tokens are also issued by another external system.
                            properties:
                              name:
                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                  TODO: Add other useful fields. apiVersion, kind,
                                  uid?'
                                type: string
                            type: object
                        type: object
                    type: object
                  kubeControllerManager:
                    description: KubeControllerManager contains configuration settings
                      for the kube-controller-manager.
                    properties:
                      featureGates:
                        additionalProperties:
                          type: boolean
                        description: FeatureGates contains information about enabled
                          feature gates.
                        type: object
                      horizontalPodAutoscaler:
                        description: HorizontalPodAutoscalerConfig contains horizontal
                          pod autoscaler configuration settings for the kube-controller-manager.
                        properties:
                          cpuInitializationPeriod:
                            description: The period after which a ready pod transition
                              is considered to be the first.
                            type: string
                          downscaleDelay:
                            description: The period since last downscale, before another
                              downscale can be performed in horizontal pod autoscaler.
                            type: string
                          downscaleStabilization:
                            description: The configurable window at which the controller
                              will choose the highest recommendation for autoscaling.
                            type: string
                          initialReadinessDelay:
                            description: The configurable period at which the horizontal
                              pod autoscaler considers a Pod “not yet ready” given
                              that it’s unready and it has  transitioned to unready
                              during that time.
                            type: string
                          syncPeriod:
                            description: The period for syncing the number of pods
                              in horizontal pod autoscaler.
                            type: string
                          tolerance:
                            anyOf:
                            - type: integer
                            - type: string
                            description: The minimum change (from 1.0) in the desired-to-actual
                              metrics ratio for the horizontal pod autoscaler to consider
                              scaling.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          upscaleDelay:
                            description: The period since last upscale, before another
                              upscale can be performed in horizontal pod autoscaler.
                            type: string
                        type: object
                      nodeCIDRMaskSize:
                        description: NodeCIDRMaskSize defines the mask size for node
                          cidr in cluster (default is 24)
                        format: int32
                        type: integer
                    type: object
                  kubeProxy:
                    description: KubeProxy contains configuration settings for the
                      kube-proxy.
                    properties:
                      featureGates:
                        additionalProperties:
                          type: boolean
                        description: FeatureGates contains information about enabled
                          feature gates.
                        type: object
                      mode:
                        description: Mode specifies which proxy mode to use. defaults
                          to IPTables.
                        type: string
                    type: object
                  kubeScheduler:
                    description: KubeScheduler contains configuration settings for
                      the kube-scheduler.
                    properties:
                      featureGates:
                        additionalProperties:
                          type: boolean
                        description: FeatureGates contains information about enabled
                          feature gates.
                        type: object
                    type: object
                  kubelet:
                    description: Kubelet contains configuration settings for the kubelet.
                    properties:
                      cpuCFSQuota:
                        description: CPUCFSQuota allows you to disable/enable CPU
                          throttling for Pods.
                        type: boolean
                      cpuManagerPolicy:
                        description: 'CPUManagerPolicy allows to set alternative CPU
                          management policies (default: none).'
                        type: string
                      evictionHard:
                        description: 'EvictionHard describes a set of eviction thresholds
                          (e.g. memory.available<1Gi) that if met would trigger a
                          Pod eviction. Default:   memory.available:   "100Mi/1Gi/5%"   nodefs.available:   "5%"   nodefs.inodesFree:  "5%"   imagefs.available:  "5%"   imagefs.inodesFree:
                          "5%"'
                        properties:
                          imageFSAvailable:
                            description: ImageFSAvailable is the threshold for the
                              free disk space in the imagefs filesystem (docker images
                              and container writable layers).
                            type: string
                          imageFSInodesFree:
                            description: ImageFSInodesFree is the threshold for the
                              available inodes in the imagefs filesystem.
                            type: string
                          memoryAvailable:
                            description: MemoryAvailable is the threshold for the
                              free memory on the host server.
                            type: string
                          nodeFSAvailable:
                            description: NodeFSAvailable is the threshold for the
                              free disk space in the nodefs filesystem (docker volumes,
                              logs, etc).
                            type: string
                          nodeFSInodesFree:
                            description: NodeFSInodesFree is the threshold for the
                              available inodes in the nodefs filesystem.
                            type: string
                        type: object
                      evictionMaxPodGracePeriod:
                        description: 'EvictionMaxPodGracePeriod describes the maximum
                          allowed grace period (in seconds) to use when terminating
                          pods in response to a soft eviction threshold being met.
                          Default: 90'
                        format: int32
                        type: integer
                      evictionMinimumReclaim:
                        description: 'EvictionMinimumReclaim configures the amount
                          of resources below the configured eviction threshold that
                          the kubelet attempts to reclaim whenever the kubelet observes
                          resource pressure. Default: 0 for each resource'
                        properties:
                          imageFSAvailable:
                            anyOf:
                            - type: integer
                            - type: string
                            description: ImageFSAvailable is the threshold for the
                              disk space reclaim in the imagefs filesystem (docker
                              images and container writable layers).
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          imageFSInodesFree:
                            anyOf:
                            - type: integer
                            - type: string
                            description: ImageFSInodesFree is the threshold for the
                              inodes reclaim in the imagefs filesystem.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          memoryAvailable:
                            anyOf:
                            - type: integer
                            - type: string
                            description: MemoryAvailable is the threshold for the
                              memory reclaim on the host server.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          nodeFSAvailable:
                            anyOf:
                            - type: integer
                            - type: string
                            description: NodeFSAvailable is the threshold for the
                              disk space reclaim in the nodefs filesystem (docker
                              volumes, logs, etc).
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                          nodeFSInodesFree:
                            anyOf:
                            - type: integer
                            - type: string
                            description: NodeFSInodesFree is the threshold for the
                              inodes reclaim in the nodefs filesystem.
                            pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                            x-kubernetes-int-or-string: true
                        type: object
                      evictionPressureTransitionPeriod:
                        description: 'EvictionPressureTransitionPeriod is the duration
                          for which the kubelet has to wait before transitioning out
                          of an eviction pressure condition. Default: 4m0s'
                        type: string
                      evictionSoft:
                        description: 'EvictionSoft describes a set of eviction thresholds
                          (e.g. memory.available<1.5Gi) that if met over a corresponding
                          grace period would trigger a Pod eviction. Default:   memory.available:   "200Mi/1.5Gi/10%"   nodefs.available:   "10%"   nodefs.inodesFree:  "10%"   imagefs.available:  "10%"   imagefs.inodesFree:
                          "10%"'
                        properties:
                          imageFSAvailable:
                            description: ImageFSAvailable is the threshold for the
                              free disk space in the imagefs filesystem (docker images
                              and container writable layers).
                            type: string
                          imageFSInodesFree:
                            description: ImageFSInodesFree is the threshold for the
                              available inodes in the imagefs filesystem.
                            type: string
                          memoryAvailable:
                            description: MemoryAvailable is the threshold for the
                              free memory on the host server.
                            type: string
                          nodeFSAvailable:
                            description: NodeFSAvailable is the threshold for the
                              free disk space in the nodefs filesystem (docker volumes,
                              logs, etc).
                            type: string
                          nodeFSInodesFree:
                            description: NodeFSInodesFree is the threshold for the
                              available inodes in the nodefs filesystem.
                            type: string
                        type: object
                      evictionSoftGracePeriod:
                        description: 'EvictionSoftGracePeriod describes a set of eviction
                          grace periods (e.g. memory.available=1m30s) that correspond
                          to how long a soft eviction threshold must hold before triggering
                          a Pod eviction. Default:   memory.available:   1m30s   nodefs.available:   1m30s   nodefs.inodesFree:  1m30s   imagefs.available:  1m30s   imagefs.inodesFree:
                          1m30s'
                        properties:
                          imageFSAvailable:
                            description: ImageFSAvailable is the grace period for
                              the ImageFSAvailable eviction threshold.
                            type: string
                          imageFSInodesFree:
                            description: ImageFSInodesFree is the grace period for
                              the ImageFSInodesFree eviction threshold.
                            type: string
                          memoryAvailable:
                            description: MemoryAvailable is the grace period for the
                              MemoryAvailable eviction threshold.
                            type: string
                          nodeFSAvailable:
                            description: NodeFSAvailable is the grace period for the
                              NodeFSAvailable eviction threshold.
                            type: string
                          nodeFSInodesFree:
                            description: NodeFSInodesFree is the grace period for
                              the NodeFSInodesFree eviction threshold.
                            type: string
                        type: object
                      featureGates:
                        additionalProperties:
                          type: boolean
                        description: FeatureGates contains information about enabled
                          feature gates.
                        type: object
                      imagePullProgressDeadline:
                        description: 'ImagePullProgressDeadline describes the time
                          limit under which if no pulling progress is made, the image
                          pulling will be cancelled. Default: 1m'
                        type: string
                      maxPods:
                        description: 'MaxPods is the maximum number of Pods that are
                          allowed by the Kubelet. Default: 110'
                        format: int32
                        type: integer
                      podPidsLimit:
                        description: PodPIDsLimit is the maximum number of process
                          IDs per pod allowed by the kubelet.
                        format: int64
                        type: integer
                    type: object
                  version:
                    description: Version is the semantic Kubernetes version to use
                      for the Shoot cluster.
                    type: string
                required:
                - version
                type: object
              loadBalancerSourceRanges:
                description: LoadBalancerSourceRanges is the loadBalancerSourceRange
                  of shoot apiserver
                items:
                  type: string
                type: array
              maintenance:
                description: Maintenance contains information about the time window
                  for maintenance operations and which operations should be performed.
                properties:
                  autoUpdate:
                    description: AutoUpdate contains information about which constraints
                      should be automatically updated.
                    properties:
                      kubernetesVersion:
                        description: 'KubernetesVersion indicates whether the patch
                          Kubernetes version may be automatically updated (default:
                          true).'
                        type: boolean
                      machineImageVersion:
                        description: 'MachineImageVersion indicates whether the machine
                          image version may be automatically updated (default: true).'
                        type: boolean
                    required:
                    - kubernetesVersion
                    - machineImageVersion
                    type: object
                  confineSpecUpdateRollout:
                    description: ConfineSpecUpdateRollout prevents that changes/updates
                      to the shoot specification will be rolled out immediately. Instead,
                      they are rolled out during the shoot's maintenance time window.
                      There is one exception that will trigger an immediate roll out
                      which is changes to the Spec.Hibernation.Enabled field.
                    type: boolean
                  timeWindow:
                    description: TimeWindow contains information about the time window
                      for maintenance operations.
                    properties:
                      begin:
                        description: Begin is the beginning of the time window in
                          the format HHMMSS+ZONE, e.g. "220000+0100". If not present,
                          a random value will be computed.
                        type: string
                      end:
                        description: End is the end of the time window in the format
                          HHMMSS+ZONE, e.g. "220000+0100". If not present, the value
                          will be computed based on the "Begin" value.
                        type: string
                    required:
                    - begin
                    - end
                    type: object
                type: object
              monitoring:
                description: Monitoring contains information about custom monitoring
                  configurations for the shoot.
                properties:
                  alerting:
                    description: Alerting contains information about the alerting
                      configuration for the shoot cluster.
                    properties:
                      emailReceivers:
                        description: MonitoringEmailReceivers is a list of recipients
                          for alerts
                        items:
                          type: string
                        type: array
                    type: object
                type: object
              networking:
                description: Networking contains information about cluster networking
                  such as CNI Plugin type, CIDRs, ...etc.
                properties:
                  nodes:
                    description: Nodes is the CIDR of the entire node network.
                    type: string
                  pods:
                    description: Pods is the CIDR of the pod network.
                    type: string
                  providerConfig:
                    description: ProviderConfig is the configuration passed to network
                      resource.
                    type: object
                  services:
                    description: Services is the CIDR of the service network.
                    type: string
                  type:
                    description: Type identifies the type of the networking plugin.
                    type: string
                required:
                - type
                type: object
              provider:
                description: Provider contains all provider-specific and provider-relevant
                  information.
                properties:
                  controlPlaneConfig:
                    description: ControlPlaneConfig contains the provider-specific
                      control plane config blob. Please look up the concrete definition
                      in the documentation of your provider extension.
                    type: object
                  infrastructureConfig:
                    description: InfrastructureConfig contains the provider-specific
                      infrastructure config blob. Please look up the concrete definition
                      in the documentation of your provider extension.
                    type: object
                  type:
                    description: Type is the type of the provider.
                    type: string
                  workers:
                    description: Workers is a list of worker groups.
                    items:
                      description: Worker is the base definition of a worker group.
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: Annotations is a map of key/value pairs for
                            annotations for all the `Node` objects in this worker
                            pool.
                          type: object
                        caBundle:
                          description: CABundle is a certificate bundle which will
                            be installed onto every machine of this worker pool.
                          type: string
                        cri:
                          description: CRI contains configurations of CRI support
                            of every machine in the worker pool
                          properties:
                            containerRuntimes:
                              description: ContainerRuntimes is the list of the required
                                container runtimes supported for a worker pool.
                              items:
                                description: ContainerRuntime contains information
                                  about worker's available container runtime
                                properties:
                                  providerConfig:
                                    description: ProviderConfig is the configuration
                                      passed to container runtime resource.
                                    type: object
                                  type:
                                    description: Type is the type of the Container
                                      Runtime.
                                    type: string
                                required:
                                - type
                                type: object
                              type: array
                            name:
                              description: The name of the CRI library
                              type: string
                          required:
                          - name
                          type: object
                        dataVolumes:
                          description: DataVolumes contains a list of additional worker
                            volumes.
                          items:
                            description: Volume contains information about the volume
                              type and size.
                            properties:
                              encrypted:
                                description: Encrypted determines if the volume should
                                  be encrypted.
                                type: boolean
                              name:
                                description: Name of the volume to make it referencable.
                                type: string
                              size:
                                description: VolumeSize is the size of the volume.
                                type: string
                              type:
                                description: Type is the type of the volume.
                                type: string
                            required:
                            - size
                            type: object
                          type: array
                        kubeletDataVolumeName:
                          description: KubeletDataVolumeName contains the name of
                            a dataVolume that should be used for storing kubelet state.
                          type: string
                        kubernetes:
                          description: Kubernetes contains configuration for Kubernetes
                            components related to this worker pool.
                          properties:
                            kubelet:
                              description: Kubelet contains configuration settings
                                for all kubelets of this worker pool.
                              properties:
                                cpuCFSQuota:
                                  description: CPUCFSQuota allows you to disable/enable
                                    CPU throttling for Pods.
                                  type: boolean
                                cpuManagerPolicy:
                                  description: 'CPUManagerPolicy allows to set alternative
                                    CPU management policies (default: none).'
                                  type: string
                                evictionHard:
                                  description: 'EvictionHard describes a set of eviction
                                    thresholds (e.g. memory.available<1Gi) that if
                                    met would trigger a Pod eviction. Default:   memory.available:   "100Mi/1Gi/5%"   nodefs.available:   "5%"   nodefs.inodesFree:  "5%"   imagefs.available:  "5%"   imagefs.inodesFree:
                                    "5%"'
                                  properties:
                                    imageFSAvailable:
                                      description: ImageFSAvailable is the threshold
                                        for the free disk space in the imagefs filesystem
                                        (docker images and container writable layers).
                                      type: string
                                    imageFSInodesFree:
                                      description: ImageFSInodesFree is the threshold
                                        for the available inodes in the imagefs filesystem.
                                      type: string
                                    memoryAvailable:
                                      description: MemoryAvailable is the threshold
                                        for the free memory on the host server.
                                      type: string
                                    nodeFSAvailable:
                                      description: NodeFSAvailable is the threshold
                                        for the free disk space in the nodefs filesystem
                                        (docker volumes, logs, etc).
                                      type: string
                                    nodeFSInodesFree:
                                      description: NodeFSInodesFree is the threshold
                                        for the available inodes in the nodefs filesystem.
                                      type: string
                                  type: object
                                evictionMaxPodGracePeriod:
                                  description: 'EvictionMaxPodGracePeriod describes
                                    the maximum allowed grace period (in seconds)
                                    to use when terminating pods in response to a
                                    soft eviction threshold being met. Default: 90'
                                  format: int32
                                  type: integer
                                evictionMinimumReclaim:
                                  description: 'EvictionMinimumReclaim configures
                                    the amount of resources below the configured eviction
                                    threshold that the kubelet attempts to reclaim
                                    whenever the kubelet observes resource pressure.
                                    Default: 0 for each resource'
                                  properties:
                                    imageFSAvailable:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: ImageFSAvailable is the threshold
                                        for the disk space reclaim in the imagefs
                                        filesystem (docker images and container writable
                                        layers).
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    imageFSInodesFree:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: ImageFSInodesFree is the threshold
                                        for the inodes reclaim in the imagefs filesystem.
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    memoryAvailable:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: MemoryAvailable is the threshold
                                        for the memory reclaim on the host server.
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    nodeFSAvailable:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: NodeFSAvailable is the threshold
                                        for the disk space reclaim in the nodefs filesystem
                                        (docker volumes, logs, etc).
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                    nodeFSInodesFree:
                                      anyOf:
                                      - type: integer
                                      - type: string
                                      description: NodeFSInodesFree is the threshold
                                        for the inodes reclaim in the nodefs filesystem.
                                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                      x-kubernetes-int-or-string: true
                                  type: object
                                evictionPressureTransitionPeriod:
                                  description: 'EvictionPressureTransitionPeriod is
                                    the duration for which the kubelet has to wait
                                    before transitioning out of an eviction pressure
                                    condition. Default: 4m0s'
                                  type: string
                                evictionSoft:
                                  description: 'EvictionSoft describes a set of eviction
                                    thresholds (e.g. memory.available<1.5Gi) that
                                    if met over a corresponding grace period would
                                    trigger a Pod eviction. Default:   memory.available:   "200Mi/1.5Gi/10%"   nodefs.available:   "10%"   nodefs.inodesFree:  "10%"   imagefs.available:  "10%"   imagefs.inodesFree:
                                    "10%"'
                                  properties:
                                    imageFSAvailable:
                                      description: ImageFSAvailable is the threshold
                                        for the free disk space in the imagefs filesystem
                                        (docker images and container writable layers).
                                      type: string
                                    imageFSInodesFree:
                                      description: ImageFSInodesFree is the threshold
                                        for the available inodes in the imagefs filesystem.
                                      type: string
                                    memoryAvailable:
                                      description: MemoryAvailable is the threshold
                                        for the free memory on the host server.
                                      type: string
                                    nodeFSAvailable:
                                      description: NodeFSAvailable is the threshold
                                        for the free disk space in the nodefs filesystem
                                        (docker volumes, logs, etc).
                                      type: string
                                    nodeFSInodesFree:
                                      description: NodeFSInodesFree is the threshold
                                        for the available inodes in the nodefs filesystem.
                                      type: string
                                  type: object
                                evictionSoftGracePeriod:
                                  description: 'EvictionSoftGracePeriod describes
                                    a set of eviction grace periods (e.g. memory.available=1m30s)
                                    that correspond to how long a soft eviction threshold
                                    must hold before triggering a Pod eviction. Default:   memory.available:   1m30s   nodefs.available:   1m30s   nodefs.inodesFree:  1m30s   imagefs.available:  1m30s   imagefs.inodesFree:
                                    1m30s'
                                  properties:
                                    imageFSAvailable:
                                      description: ImageFSAvailable is the grace period
                                        for the ImageFSAvailable eviction threshold.
                                      type: string
                                    imageFSInodesFree:
                                      description: ImageFSInodesFree is the grace
                                        period for the ImageFSInodesFree eviction
                                        threshold.
                                      type: string
                                    memoryAvailable:
                                      description: MemoryAvailable is the grace period
                                        for the MemoryAvailable eviction threshold.
                                      type: string
                                    nodeFSAvailable:
                                      description: NodeFSAvailable is the grace period
                                        for the NodeFSAvailable eviction threshold.
                                      type: string
                                    nodeFSInodesFree:
                                      description: NodeFSInodesFree is the grace period
                                        for the NodeFSInodesFree eviction threshold.
                                      type: string
                                  type: object
                                featureGates:
                                  additionalProperties:
                                    type: boolean
                                  description: FeatureGates contains information about
                                    enabled feature gates.
                                  type: object
                                imagePullProgressDeadline:
                                  description: 'ImagePullProgressDeadline describes
                                    the time limit under which if no pulling progress
                                    is made, the image pulling will be cancelled.
                                    Default: 1m'
                                  type: string
                                maxPods:
                                  description: 'MaxPods is the maximum number of Pods
                                    that are allowed by the Kubelet. Default: 110'
                                  format: int32
                                  type: integer
                                podPidsLimit:
                                  description: PodPIDsLimit is the maximum number
                                    of process IDs per pod allowed by the kubelet.
                                  format: int64
                                  type: integer
                              type: object
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: Labels is a map of key/value pairs for labels
                            for all the `Node` objects in this worker pool.
                          type: object
                        machine:
                          description: Machine contains information about the machine
                            type and image.
                          properties:
                            image:
                              description: Image holds information about the machine
                                image to use for all nodes of this pool. It will default
                                to the latest version of the first image stated in
                                the referenced CloudProfile if no value has been provided.
                              properties:
                                name:
                                  description: Name is the name of the image.
                                  type: string
                                providerConfig:
                                  description: ProviderConfig is the shoot's individual
                                    configuration passed to an extension resource.
                                  type: object
                                version:
                                  description: Version is the version of the shoot's
                                    image. If version is not provided, it will be
                                    defaulted to the latest version from the CloudProfile.
                                  type: string
                              required:
                              - name
                              type: object
                            type:
                              description: Type is the machine type of the worker
                                group.
                              type: string
                          required:
                          - type
                          type: object
                        maxSurge:
                          anyOf:
                          - type: integer
                          - type: string
                          description: MaxSurge is maximum number of VMs that are
                            created during an update.
                          x-kubernetes-int-or-string: true
                        maxUnavailable:
                          anyOf:
                          - type: integer
                          - type: string
                          description: MaxUnavailable is the maximum number of VMs
                            that can be unavailable during an update.
                          x-kubernetes-int-or-string: true
                        maximum:
                          description: Maximum is the maximum number of VMs to create.
                          format: int32
                          type: integer
                        minimum:
                          description: Minimum is the minimum number of VMs to create.
                          format: int32
                          type: integer
                        name:
                          description: Name is the name of the worker group.
                          type: string
                        providerConfig:
                          description: ProviderConfig is the provider-specific configuration
                            for this worker pool.
                          type: object
                        taints:
                          description: Taints is a list of taints for all the `Node`
                            objects in this worker pool.
                          items:
                            description: The node this Taint is attached to has the
                              "effect" on any pod that does not tolerate the Taint.
                            properties:
                              effect:
                                description: Required. The effect of the taint on
                                  pods that do not tolerate the taint. Valid effects
                                  are NoSchedule, PreferNoSchedule and NoExecute.
                                type: string
                              key:
                                description: Required. The taint key to be applied
                                  to a node.
                                type: string
                              timeAdded:
                                description: TimeAdded represents the time at which
                                  the taint was added. It is only written for NoExecute
                                  taints.
                                format: date-time
                                type: string
                              value:
                                description: The taint value corresponding to the
                                  taint key.
                                type: string
                            required:
                            - effect
                            - key
                            type: object
                          type: array
                        volume:
                          description: Volume contains information about the volume
                            type and size.
                          properties:
                            encrypted:
                              description: Encrypted determines if the volume should
                                be encrypted.
                              type: boolean
                            name:
                              description: Name of the volume to make it referencable.
                              type: string
                            size:
                              description: VolumeSize is the size of the volume.
                              type: string
                            type:
                              description: Type is the type of the volume.
                              type: string
                          required:
                          - size
                          type: object
                        zones:
                          description: Zones is a list of availability zones that
                            are used to evenly distribute this worker pool. Optional
                            as not every provider may support availability zones.
                          items:
                            type: string
                          type: array
                      required:
                      - machine
                      - maximum
                      - minimum
                      - name
                      type: object
                    type: array
                required:
                - type
                - workers
                type: object
              purpose:
                description: Purpose is the purpose class for this cluster.
                type: string
              region:
                description: Region is a name of a region.
                type: string
              secretBindingName:
                description: SecretBindingName is the name of the a SecretBinding
                  that has a reference to the provider secret. The credentials inside
                  the provider secret will be used to create the shoot in the respective
                  account.
                type: string
              seedName:
                description: SeedName is the name of the seed cluster that runs the
                  control plane of the Shoot.
                type: string
            required:
            - cloudProfileName
            - kubernetes
            - networking
            - provider
            - region
            - secretBindingName
            type: object
          status:
            description: Most recently observed status of the Shoot cluster.
            properties:
              conditions:
                description: Conditions represents the latest available observations
                  of a Shoots's current state.
                items:
                  description: Condition holds the information about the state of
                    a resource.
                  properties:
                    codes:
                      description: Well-defined error codes in case the condition
                        reports a problem.
                      items:
                        description: ErrorCode is a string alias.
                        type: string
                      type: array
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: Last time the condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of the Shoot condition.
                      type: string
                  required:
                  - lastTransitionTime
                  - lastUpdateTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              constraints:
                description: Constraints represents conditions of a Shoot's current
                  state that constraint some operations on it.
                items:
                  description: Condition holds the information about the state of
                    a resource.
                  properties:
                    codes:
                      description: Well-defined error codes in case the condition
                        reports a problem.
                      items:
                        description: ErrorCode is a string alias.
                        type: string
                      type: array
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status
                        to another.
                      format: date-time
                      type: string
                    lastUpdateTime:
                      description: Last time the condition was updated.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about
                        the transition.
                      type: string
                    reason:
                      description: The reason for the condition's last transition.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of the Shoot condition.
                      type: string
                  required:
                  - lastTransitionTime
                  - lastUpdateTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              gardener:
                description: Gardener holds information about the Gardener which last
                  acted on the Shoot.
                properties:
                  id:
                    description: ID is the Docker container id of the Gardener which
                      last acted on a resource.
                    type: string
                  name:
                    description: Name is the hostname (pod name) of the Gardener which
                      last acted on a resource.
                    type: string
                  version:
                    description: Version is the version of the Gardener which last
                      acted on a resource.
                    type: string
                required:
                - id
                - name
                - version
                type: object
              hibernated:
                description: IsHibernated indicates whether the Shoot is currently
                  hibernated.
                type: boolean
              infrastructureProviderStatus:
                description: InfrastructureProviderStatus is a raw extension field
                  that contains the provider status that has been generated by the
                  controller responsible for the `Infrastructure` resource.
                nullable: true
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              lastErrors:
                description: LastErrors holds information about the last occurred
                  error(s) during an operation.
                items:
                  description: LastError indicates the last occurred error for an
                    operation on a resource.
                  properties:
                    codes:
                      description: Well-defined error codes of the last error(s).
                      items:
                        description: ErrorCode is a string alias.
                        type: string
                      type: array
                    description:
                      description: A human readable message indicating details about
                        the last error.
                      type: string
                    lastUpdateTime:
                      description: Last time the error was reported
                      format: date-time
                      type: string
                    taskID:
                      description: ID of the task which caused this last error
                      type: string
                  required:
                  - description
                  type: object
                type: array
              lastOperation:
                description: LastOperation holds information about the last operation
                  on the Shoot.
                properties:
                  description:
                    description: A human readable message indicating details about
                      the last operation.
                    type: string
                  lastUpdateTime:
                    description: Last time the operation state transitioned from one
                      to another.
                    format: date-time
                    type: string
                  progress:
                    description: The progress in percentage (0-100) of the last operation.
                    format: int32
                    type: integer
                  state:
                    description: Status of the last operation, one of Aborted, Processing,
                      Succeeded, Error, Failed.
                    type: string
                  type:
                    description: Type of the last operation, one of Create, Reconcile,
                      Delete.
                    type: string
                required:
                - description
                - lastUpdateTime
                - progress
                - state
                - type
                type: object
              observedGeneration:
                description: ObservedGeneration is the most recent generation observed
                  for this Shoot. It corresponds to the Shoot's generation, which
                  is updated on mutation by the API Server.
                format: int64
                type: integer
              retryCycleStartTime:
                description: RetryCycleStartTime is the start time of the last retry
                  cycle (used to determine how often an operation must be retried
                  until we give up).
                format: date-time
                type: string
              seedName:
                description: SeedName is the name of the seed cluster that runs the
                  control plane of the Shoot. This value is only written after a successful
                  create/reconcile operation. It will be used when control planes
                  are moved between Seeds.
                type: string
              technicalID:
                description: TechnicalID is the name that is used for creating the
                  Seed namespace, the infrastructure resources, and basically everything
                  that is related to this particular Shoot.
                type: string
              uid:
                description: UID is a unique identifier for the Shoot cluster to avoid
                  portability between Kubernetes clusters. It is used to compute unique
                  hashes.
                type: string
            required:
            - gardener
            - hibernated
            - technicalID
            - uid
            type: object
        type: object
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
