k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/enterprise/seed/kubermatic.k8c.io_datacenters.yaml (about)

     1  # This file has been generated by hack/update-codegen.sh, DO NOT EDIT.
     2  
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.12.0
     8    name: datacenters.kubermatic.k8c.io
     9  spec:
    10    group: kubermatic.k8c.io
    11    names:
    12      kind: Datacenter
    13      listKind: DatacenterList
    14      plural: datacenters
    15      singular: datacenter
    16    scope: Cluster
    17    versions:
    18      - additionalPrinterColumns:
    19          - jsonPath: .status.clusters
    20            name: Clusters
    21            type: integer
    22          - jsonPath: .metadata.creationTimestamp
    23            name: Age
    24            type: date
    25        name: v1
    26        schema:
    27          openAPIV3Schema:
    28            description: Datacenter is an allowed cloud provider configuration for user clusters. Each cluster must be scheduled to use exactly one of the available datacenters (of the same provider, i.e. an AWS cluster cannot use a Hetzner datacenter).
    29            properties:
    30              apiVersion:
    31                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'
    32                type: string
    33              kind:
    34                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'
    35                type: string
    36              metadata:
    37                type: object
    38              spec:
    39                description: DatacenterSpec configures a KKP datacenter. Provider configuration is mutually exclusive, and as such only a single provider can be configured per datacenter.
    40                properties:
    41                  enforceAuditLogging:
    42                    description: 'Optional: EnforceAuditLogging enforces audit logging on every cluster within the DC, ignoring cluster-specific settings.'
    43                    type: boolean
    44                  enforcePodSecurityPolicy:
    45                    description: 'Optional: EnforcePodSecurityPolicy enforces pod security policy plugin on every clusters within the DC, ignoring cluster-specific settings.'
    46                    type: boolean
    47                  machineFlavorFilter:
    48                    description: 'Optional: MachineFlavorFilter is used to filter out allowed machine flavors based on the specified resource limits like CPU, Memory, and GPU etc.'
    49                    properties:
    50                      enableGPU:
    51                        description: Include VMs with GPU
    52                        type: boolean
    53                      maxCPU:
    54                        default: 0
    55                        description: Maximum number of vCPU
    56                        minimum: 0
    57                        type: integer
    58                      maxRAM:
    59                        default: 0
    60                        description: Maximum RAM size in GB
    61                        minimum: 0
    62                        type: integer
    63                      minCPU:
    64                        default: 0
    65                        description: Minimum number of vCPU
    66                        minimum: 0
    67                        type: integer
    68                      minRAM:
    69                        default: 0
    70                        description: Minimum RAM size in GB
    71                        minimum: 0
    72                        type: integer
    73                    required:
    74                      - enableGPU
    75                      - maxCPU
    76                      - maxRAM
    77                      - minCPU
    78                      - minRAM
    79                    type: object
    80                  node:
    81                    description: Node holds node-specific settings, like e.g. HTTP proxy, Docker registries and the like. Proxy settings are inherited from the seed if not specified here.
    82                    properties:
    83                      containerdRegistryMirrors:
    84                        description: 'Optional: ContainerdRegistryMirrors configure registry mirrors endpoints. Can be used multiple times to specify multiple mirrors.'
    85                        properties:
    86                          registries:
    87                            additionalProperties:
    88                              description: ContainerdRegistry defines endpoints and security for given container registry.
    89                              properties:
    90                                mirrors:
    91                                  description: List of registry mirrors to use
    92                                  items:
    93                                    type: string
    94                                  type: array
    95                              type: object
    96                            description: A map of registries to use to render configs and mirrors for containerd registries
    97                            type: object
    98                        type: object
    99                      httpProxy:
   100                        description: 'Optional: If set, this proxy will be configured for both HTTP and HTTPS.'
   101                        type: string
   102                      insecureRegistries:
   103                        description: 'Optional: These image registries will be configured as insecure on the container runtime.'
   104                        items:
   105                          type: string
   106                        type: array
   107                      noProxy:
   108                        description: 'Optional: If set this will be set as NO_PROXY environment variable on the node; The value must be a comma-separated list of domains for which no proxy should be used, e.g. "*.example.com,internal.dev". Note that the in-cluster apiserver URL will be automatically prepended to this value.'
   109                        type: string
   110                      pauseImage:
   111                        description: 'Optional: Translates to --pod-infra-container-image on the kubelet. If not set, the kubelet will default it.'
   112                        type: string
   113                      registryMirrors:
   114                        description: 'Optional: These image registries will be configured as registry mirrors on the container runtime.'
   115                        items:
   116                          type: string
   117                        type: array
   118                    type: object
   119                  operatingSystemProfiles:
   120                    additionalProperties:
   121                      type: string
   122                    description: 'Optional: DefaultOperatingSystemProfiles specifies the OperatingSystemProfiles to use for each supported operating system.'
   123                    type: object
   124                  provider:
   125                    description: Provider contains cloud-provider related configuration.
   126                    properties:
   127                      alibaba:
   128                        description: Alibaba configures an Alibaba Cloud datacenter.
   129                        properties:
   130                          region:
   131                            description: Region to use, for a full list of regions see https://www.alibabacloud.com/help/doc-detail/40654.htm
   132                            type: string
   133                        required:
   134                          - region
   135                        type: object
   136                      anexia:
   137                        description: Anexia configures an Anexia datacenter.
   138                        properties:
   139                          locationID:
   140                            description: LocationID the location of the region
   141                            type: string
   142                        required:
   143                          - locationID
   144                        type: object
   145                      aws:
   146                        description: AWS configures an Amazon Web Services (AWS) datacenter.
   147                        properties:
   148                          images:
   149                            additionalProperties:
   150                              type: string
   151                            description: List of AMIs to use for a given operating system. This gets defaulted by querying for the latest AMI for the given distribution when machines are created, so under normal circumstances it is not necessary to define the AMIs statically.
   152                            type: object
   153                          region:
   154                            description: The AWS region to use, e.g. "us-east-1". For a list of available regions, see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
   155                            type: string
   156                        required:
   157                          - region
   158                        type: object
   159                      azure:
   160                        description: Azure configures an Azure datacenter.
   161                        properties:
   162                          location:
   163                            description: Region to use, for example "westeurope". A list of available regions can be found at https://azure.microsoft.com/en-us/global-infrastructure/locations/
   164                            type: string
   165                        required:
   166                          - location
   167                        type: object
   168                      bringyourown:
   169                        description: BringYourOwn contains settings for clusters using manually created nodes via kubeadm.
   170                        type: object
   171                      digitalocean:
   172                        description: Digitalocean contains settings for Digitalocean (DO).
   173                        properties:
   174                          region:
   175                            description: Datacenter location, e.g. "ams3". A list of existing datacenters can be found at https://www.digitalocean.com/docs/platform/availability-matrix/
   176                            type: string
   177                        required:
   178                          - region
   179                        type: object
   180                      fake:
   181                        description: DatacenterSpecFake describes a fake datacenter.
   182                        properties:
   183                          fakeProperty:
   184                            type: string
   185                        type: object
   186                      gcp:
   187                        description: GCP configures a Google Cloud Platform (GCP) datacenter.
   188                        properties:
   189                          region:
   190                            description: Region to use, for example "europe-west3", for a full list of regions see https://cloud.google.com/compute/docs/regions-zones/
   191                            type: string
   192                          regional:
   193                            description: 'Optional: Regional clusters spread their resources across multiple availability zones. Refer to the official documentation for more details on this: https://cloud.google.com/kubernetes-engine/docs/concepts/regional-clusters'
   194                            type: boolean
   195                          zoneSuffixes:
   196                            description: List of enabled zones, for example [a, c]. See the link above for the available zones in your chosen region.
   197                            items:
   198                              type: string
   199                            type: array
   200                        required:
   201                          - region
   202                          - zoneSuffixes
   203                        type: object
   204                      hetzner:
   205                        description: Hetzner configures a Hetzner datacenter.
   206                        properties:
   207                          datacenter:
   208                            description: Datacenter location, e.g. "nbg1-dc3". A list of existing datacenters can be found at https://docs.hetzner.com/general/others/data-centers-and-connection/
   209                            type: string
   210                          location:
   211                            description: 'Optional: Detailed location of the datacenter, like "Hamburg" or "Datacenter 7". For informational purposes only.'
   212                            type: string
   213                          network:
   214                            description: Network is the pre-existing Hetzner network in which the machines are running. While machines can be in multiple networks, a single one must be chosen for the HCloud CCM to work.
   215                            type: string
   216                        required:
   217                          - datacenter
   218                          - network
   219                        type: object
   220                      kubevirt:
   221                        description: KubeVirt configures a KubeVirt datacenter.
   222                        properties:
   223                          customNetworkPolicies:
   224                            description: 'Optional: CustomNetworkPolicies allows to add some extra custom NetworkPolicies, that are deployed in the dedicated infra KubeVirt cluster. They are added to the defaults.'
   225                            items:
   226                              description: CustomNetworkPolicy contains a name and the Spec of a NetworkPolicy.
   227                              properties:
   228                                name:
   229                                  description: Name is the name of the Custom Network Policy.
   230                                  type: string
   231                                spec:
   232                                  description: Spec is the Spec of the NetworkPolicy, using the standard type.
   233                                  properties:
   234                                    egress:
   235                                      description: egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8
   236                                      items:
   237                                        description: NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and to. This type is beta-level in 1.8
   238                                        properties:
   239                                          ports:
   240                                            description: ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
   241                                            items:
   242                                              description: NetworkPolicyPort describes a port to allow traffic on
   243                                              properties:
   244                                                endPort:
   245                                                  description: endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.
   246                                                  format: int32
   247                                                  type: integer
   248                                                port:
   249                                                  anyOf:
   250                                                    - type: integer
   251                                                    - type: string
   252                                                  description: port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.
   253                                                  x-kubernetes-int-or-string: true
   254                                                protocol:
   255                                                  default: TCP
   256                                                  description: protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.
   257                                                  type: string
   258                                              type: object
   259                                            type: array
   260                                          to:
   261                                            description: to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.
   262                                            items:
   263                                              description: NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed
   264                                              properties:
   265                                                ipBlock:
   266                                                  description: ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.
   267                                                  properties:
   268                                                    cidr:
   269                                                      description: cidr is a string representing the IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64"
   270                                                      type: string
   271                                                    except:
   272                                                      description: except is a slice of CIDRs that should not be included within an IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" Except values will be rejected if they are outside the cidr range
   273                                                      items:
   274                                                        type: string
   275                                                      type: array
   276                                                  required:
   277                                                    - cidr
   278                                                  type: object
   279                                                namespaceSelector:
   280                                                  description: "namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces. \n If podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector."
   281                                                  properties:
   282                                                    matchExpressions:
   283                                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   284                                                      items:
   285                                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   286                                                        properties:
   287                                                          key:
   288                                                            description: key is the label key that the selector applies to.
   289                                                            type: string
   290                                                          operator:
   291                                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   292                                                            type: string
   293                                                          values:
   294                                                            description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
   295                                                            items:
   296                                                              type: string
   297                                                            type: array
   298                                                        required:
   299                                                          - key
   300                                                          - operator
   301                                                        type: object
   302                                                      type: array
   303                                                    matchLabels:
   304                                                      additionalProperties:
   305                                                        type: string
   306                                                      description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
   307                                                      type: object
   308                                                  type: object
   309                                                  x-kubernetes-map-type: atomic
   310                                                podSelector:
   311                                                  description: "podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods. \n If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace."
   312                                                  properties:
   313                                                    matchExpressions:
   314                                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   315                                                      items:
   316                                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   317                                                        properties:
   318                                                          key:
   319                                                            description: key is the label key that the selector applies to.
   320                                                            type: string
   321                                                          operator:
   322                                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   323                                                            type: string
   324                                                          values:
   325                                                            description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
   326                                                            items:
   327                                                              type: string
   328                                                            type: array
   329                                                        required:
   330                                                          - key
   331                                                          - operator
   332                                                        type: object
   333                                                      type: array
   334                                                    matchLabels:
   335                                                      additionalProperties:
   336                                                        type: string
   337                                                      description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
   338                                                      type: object
   339                                                  type: object
   340                                                  x-kubernetes-map-type: atomic
   341                                              type: object
   342                                            type: array
   343                                        type: object
   344                                      type: array
   345                                    ingress:
   346                                      description: ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)
   347                                      items:
   348                                        description: NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec's podSelector. The traffic must match both ports and from.
   349                                        properties:
   350                                          from:
   351                                            description: from is a list of sources which should be able to access the pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all sources (traffic not restricted by source). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the from list.
   352                                            items:
   353                                              description: NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed
   354                                              properties:
   355                                                ipBlock:
   356                                                  description: ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.
   357                                                  properties:
   358                                                    cidr:
   359                                                      description: cidr is a string representing the IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64"
   360                                                      type: string
   361                                                    except:
   362                                                      description: except is a slice of CIDRs that should not be included within an IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" Except values will be rejected if they are outside the cidr range
   363                                                      items:
   364                                                        type: string
   365                                                      type: array
   366                                                  required:
   367                                                    - cidr
   368                                                  type: object
   369                                                namespaceSelector:
   370                                                  description: "namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces. \n If podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector."
   371                                                  properties:
   372                                                    matchExpressions:
   373                                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   374                                                      items:
   375                                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   376                                                        properties:
   377                                                          key:
   378                                                            description: key is the label key that the selector applies to.
   379                                                            type: string
   380                                                          operator:
   381                                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   382                                                            type: string
   383                                                          values:
   384                                                            description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
   385                                                            items:
   386                                                              type: string
   387                                                            type: array
   388                                                        required:
   389                                                          - key
   390                                                          - operator
   391                                                        type: object
   392                                                      type: array
   393                                                    matchLabels:
   394                                                      additionalProperties:
   395                                                        type: string
   396                                                      description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
   397                                                      type: object
   398                                                  type: object
   399                                                  x-kubernetes-map-type: atomic
   400                                                podSelector:
   401                                                  description: "podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods. \n If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy's own namespace."
   402                                                  properties:
   403                                                    matchExpressions:
   404                                                      description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   405                                                      items:
   406                                                        description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   407                                                        properties:
   408                                                          key:
   409                                                            description: key is the label key that the selector applies to.
   410                                                            type: string
   411                                                          operator:
   412                                                            description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   413                                                            type: string
   414                                                          values:
   415                                                            description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
   416                                                            items:
   417                                                              type: string
   418                                                            type: array
   419                                                        required:
   420                                                          - key
   421                                                          - operator
   422                                                        type: object
   423                                                      type: array
   424                                                    matchLabels:
   425                                                      additionalProperties:
   426                                                        type: string
   427                                                      description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
   428                                                      type: object
   429                                                  type: object
   430                                                  x-kubernetes-map-type: atomic
   431                                              type: object
   432                                            type: array
   433                                          ports:
   434                                            description: ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.
   435                                            items:
   436                                              description: NetworkPolicyPort describes a port to allow traffic on
   437                                              properties:
   438                                                endPort:
   439                                                  description: endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.
   440                                                  format: int32
   441                                                  type: integer
   442                                                port:
   443                                                  anyOf:
   444                                                    - type: integer
   445                                                    - type: string
   446                                                  description: port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.
   447                                                  x-kubernetes-int-or-string: true
   448                                                protocol:
   449                                                  default: TCP
   450                                                  description: protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.
   451                                                  type: string
   452                                              type: object
   453                                            type: array
   454                                        type: object
   455                                      type: array
   456                                    podSelector:
   457                                      description: podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.
   458                                      properties:
   459                                        matchExpressions:
   460                                          description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
   461                                          items:
   462                                            description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
   463                                            properties:
   464                                              key:
   465                                                description: key is the label key that the selector applies to.
   466                                                type: string
   467                                              operator:
   468                                                description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
   469                                                type: string
   470                                              values:
   471                                                description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
   472                                                items:
   473                                                  type: string
   474                                                type: array
   475                                            required:
   476                                              - key
   477                                              - operator
   478                                            type: object
   479                                          type: array
   480                                        matchLabels:
   481                                          additionalProperties:
   482                                            type: string
   483                                          description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
   484                                          type: object
   485                                      type: object
   486                                      x-kubernetes-map-type: atomic
   487                                    policyTypes:
   488                                      description: policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8
   489                                      items:
   490                                        description: PolicyType string describes the NetworkPolicy type This type is beta-level in 1.8
   491                                        type: string
   492                                      type: array
   493                                  required:
   494                                    - podSelector
   495                                  type: object
   496                              required:
   497                                - name
   498                                - spec
   499                              type: object
   500                            type: array
   501                          dnsConfig:
   502                            description: DNSConfig represents the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.
   503                            properties:
   504                              nameservers:
   505                                description: A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.
   506                                items:
   507                                  type: string
   508                                type: array
   509                              options:
   510                                description: A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.
   511                                items:
   512                                  description: PodDNSConfigOption defines DNS resolver options of a pod.
   513                                  properties:
   514                                    name:
   515                                      description: Required.
   516                                      type: string
   517                                    value:
   518                                      type: string
   519                                  type: object
   520                                type: array
   521                              searches:
   522                                description: A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.
   523                                items:
   524                                  type: string
   525                                type: array
   526                            type: object
   527                          dnsPolicy:
   528                            default: ClusterFirst
   529                            description: DNSPolicy represents the dns policy for the pod. Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. Defaults to "ClusterFirst". DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
   530                            enum:
   531                              - ClusterFirstWithHostNet
   532                              - ClusterFirst
   533                              - Default
   534                              - None
   535                            type: string
   536                          enableDefaultNetworkPolicies:
   537                            description: 'Optional: EnableDefaultNetworkPolicies enables deployment of default network policies like cluster isolation. Defaults to true.'
   538                            type: boolean
   539                          images:
   540                            description: Images represents standard VM Image sources.
   541                            properties:
   542                              http:
   543                                description: HTTP represents a http source.
   544                                properties:
   545                                  operatingSystems:
   546                                    additionalProperties:
   547                                      additionalProperties:
   548                                        type: string
   549                                      description: OSVersions defines a map of OS version and the source to download the image.
   550                                      type: object
   551                                    description: OperatingSystems represents list of supported operating-systems with their URLs.
   552                                    type: object
   553                                required:
   554                                  - operatingSystems
   555                                type: object
   556                            type: object
   557                          infraStorageClasses:
   558                            description: 'Optional: InfraStorageClasses contains a list of KubeVirt infra cluster StorageClasses names that will be used to initialise StorageClasses in the tenant cluster. In the tenant cluster, the created StorageClass name will have as name: kubevirt-<infra-storageClass-name>'
   559                            items:
   560                              properties:
   561                                isDefaultClass:
   562                                  description: 'Optional: IsDefaultClass. If true, the created StorageClass in the tenant cluster will be annotated with: storageclass.kubernetes.io/is-default-class : true If missing or false, annotation will be: storageclass.kubernetes.io/is-default-class : false'
   563                                  type: boolean
   564                                name:
   565                                  type: string
   566                              required:
   567                                - name
   568                              type: object
   569                            type: array
   570                        type: object
   571                      nutanix:
   572                        description: Nutanix configures a Nutanix HCI datacenter.
   573                        properties:
   574                          allowInsecure:
   575                            description: 'Optional: AllowInsecure allows to disable the TLS certificate check against the endpoint (defaults to false)'
   576                            type: boolean
   577                          endpoint:
   578                            description: Endpoint to use for accessing Nutanix Prism Central. No protocol or port should be passed, for example "nutanix.example.com" or "10.0.0.1"
   579                            type: string
   580                          images:
   581                            additionalProperties:
   582                              type: string
   583                            description: Images to use for each supported operating system
   584                            type: object
   585                          port:
   586                            description: 'Optional: Port to use when connecting to the Nutanix Prism Central endpoint (defaults to 9440)'
   587                            format: int32
   588                            type: integer
   589                        required:
   590                          - endpoint
   591                          - images
   592                        type: object
   593                      openstack:
   594                        description: OpenStack configures an OpenStack datacenter.
   595                        properties:
   596                          authURL:
   597                            type: string
   598                          availabilityZone:
   599                            type: string
   600                          dnsServers:
   601                            description: Used for automatic network creation
   602                            items:
   603                              type: string
   604                            type: array
   605                          enabledFlavors:
   606                            description: 'Optional: List of enabled flavors for the given datacenter'
   607                            items:
   608                              type: string
   609                            type: array
   610                          enforceFloatingIP:
   611                            description: Optional
   612                            type: boolean
   613                          ignoreVolumeAZ:
   614                            description: Optional
   615                            type: boolean
   616                          images:
   617                            additionalProperties:
   618                              type: string
   619                            description: Images to use for each supported operating system.
   620                            type: object
   621                          ipv6Enabled:
   622                            description: 'Optional: defines if the IPv6 is enabled for the datacenter'
   623                            type: boolean
   624                          manageSecurityGroups:
   625                            description: 'Optional: Gets mapped to the "manage-security-groups" setting in the cloud config. This setting defaults to true.'
   626                            type: boolean
   627                          nodeSizeRequirements:
   628                            description: 'Optional: Restrict the allowed VM configurations that can be chosen in the KKP dashboard. This setting does not affect the validation webhook for MachineDeployments.'
   629                            properties:
   630                              minimumMemory:
   631                                description: MinimumMemory is the minimum required amount of memory, measured in MB
   632                                type: integer
   633                              minimumVCPUs:
   634                                description: VCPUs is the minimum required amount of (virtual) CPUs
   635                                type: integer
   636                            type: object
   637                          region:
   638                            type: string
   639                          trustDevicePath:
   640                            description: 'Optional: Gets mapped to the "trust-device-path" setting in the cloud config. This setting defaults to false.'
   641                            type: boolean
   642                          useOctavia:
   643                            description: 'Optional: Gets mapped to the "use-octavia" setting in the cloud config. use-octavia is enabled by default in CCM since v1.17.0, and disabled by default with the in-tree cloud provider.'
   644                            type: boolean
   645                        required:
   646                          - authURL
   647                          - images
   648                          - region
   649                        type: object
   650                      packet:
   651                        description: Packet configures an Equinix Metal datacenter.
   652                        properties:
   653                          facilities:
   654                            description: The list of enabled facilities, for example "ams1", for a full list of available facilities see https://metal.equinix.com/developers/docs/locations/facilities/
   655                            items:
   656                              type: string
   657                            type: array
   658                          metro:
   659                            description: Metros are facilities that are grouped together geographically and share capacity and networking features, see https://metal.equinix.com/developers/docs/locations/metros/
   660                            type: string
   661                        type: object
   662                      providerName:
   663                        description: ProviderName is the name of the cloud provider used for this datacenter. This must match the given provider spec (e.g. if the providerName is "aws", then the `aws` field must be set).
   664                        enum:
   665                          - alibaba
   666                          - anexia
   667                          - aws
   668                          - azure
   669                          - bringyourown
   670                          - digitalocean
   671                          - gcp
   672                          - hetzner
   673                          - kubevirt
   674                          - nutanix
   675                          - openstack
   676                          - packet
   677                          - vmwareclouddirector
   678                          - vsphere
   679                        type: string
   680                      vmwareclouddirector:
   681                        description: VMwareCloudDirector configures a VMware Cloud Director datacenter.
   682                        properties:
   683                          allowInsecure:
   684                            description: If set to true, disables the TLS certificate check against the endpoint.
   685                            type: boolean
   686                          catalog:
   687                            description: The default catalog which contains the VM templates.
   688                            type: string
   689                          storageProfile:
   690                            description: The name of the storage profile to use for disks attached to the VMs.
   691                            type: string
   692                          templates:
   693                            additionalProperties:
   694                              type: string
   695                            description: A list of VM templates to use for a given operating system. You must define at least one template.
   696                            type: object
   697                          url:
   698                            description: Endpoint URL to use, including protocol, for example "https://vclouddirector.example.com".
   699                            type: string
   700                        required:
   701                          - templates
   702                          - url
   703                        type: object
   704                      vsphere:
   705                        description: VSphere configures a VMware vSphere datacenter.
   706                        properties:
   707                          allowInsecure:
   708                            description: If set to true, disables the TLS certificate check against the endpoint.
   709                            type: boolean
   710                          cluster:
   711                            description: The name of the vSphere cluster to use. Used for out-of-tree CSI Driver.
   712                            type: string
   713                          datacenter:
   714                            description: The name of the datacenter to use.
   715                            type: string
   716                          datastore:
   717                            description: The default Datastore to be used for provisioning volumes using storage classes/dynamic provisioning and for storing virtual machine files in case no `Datastore` or `DatastoreCluster` is provided at Cluster level.
   718                            type: string
   719                          defaultTagCategoryID:
   720                            description: DefaultTagCategoryID is the tag category id that will be used as default, if users don't specify it on a cluster level, and they don't wish KKP to create default generated tag category, upon cluster creation.
   721                            type: string
   722                          endpoint:
   723                            description: Endpoint URL to use, including protocol, for example "https://vcenter.example.com".
   724                            type: string
   725                          infraManagementUser:
   726                            description: 'Optional: Infra management user is the user that will be used for everything except the cloud provider functionality, which will still use the credentials passed in via the Kubermatic dashboard/API.'
   727                            properties:
   728                              password:
   729                                type: string
   730                              username:
   731                                type: string
   732                            type: object
   733                          ipv6Enabled:
   734                            description: 'Optional: defines if the IPv6 is enabled for the datacenter'
   735                            type: boolean
   736                          rootPath:
   737                            description: 'Optional: The root path for cluster specific VM folders. Each cluster gets its own folder below the root folder. Must be the FQDN (for example "/datacenter-1/vm/all-kubermatic-vms-in-here") and defaults to the root VM folder: "/datacenter-1/vm"'
   738                            type: string
   739                          storagePolicy:
   740                            description: The name of the storage policy to use for the storage class created in the user cluster.
   741                            type: string
   742                          templates:
   743                            additionalProperties:
   744                              type: string
   745                            description: 'A list of VM templates to use for a given operating system. You must define at least one template. See: https://github.com/kubermatic/machine-controller/blob/master/docs/vsphere.md#template-vms-preparation'
   746                            type: object
   747                        required:
   748                          - cluster
   749                          - datacenter
   750                          - datastore
   751                          - endpoint
   752                          - templates
   753                        type: object
   754                    required:
   755                      - providerName
   756                    type: object
   757                  providerReconciliationInterval:
   758                    description: 'Optional: ProviderReconciliationInterval is the time that must have passed since a Cluster''s status.lastProviderReconciliation to make the cliuster controller perform an in-depth provider reconciliation, where for example missing security groups will be reconciled. Setting this too low can cause rate limits by the cloud provider, setting this too high means that *if* a resource at a cloud provider is removed/changed outside of KKP, it will take this long to fix it.'
   759                    type: string
   760                  requiredEmails:
   761                    description: 'Optional: When defined, only users with an e-mail address on the given domains can make use of this datacenter. You can define multiple domains, e.g. "example.com", one of which must match the email domain exactly (i.e. "example.com" will not match "user@test.example.com").'
   762                    items:
   763                      type: string
   764                    type: array
   765                required:
   766                  - provider
   767                type: object
   768              status:
   769                description: DatacenterStatus contains runtime information regarding the datacenter.
   770                properties:
   771                  clusters:
   772                    default: 0
   773                    description: Clusters is the total number of user clusters that exist on this seed.
   774                    minimum: 0
   775                    type: integer
   776                required:
   777                  - clusters
   778                type: object
   779            type: object
   780        served: true
   781        storage: true
   782        subresources:
   783          status: {}