k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/community/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: {}