k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/enterprise/kcp/ee.kubermatic.k8c.io_seeds.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: seeds.ee.kubermatic.k8c.io 9 spec: 10 group: ee.kubermatic.k8c.io 11 names: 12 kind: Seed 13 listKind: SeedList 14 plural: seeds 15 singular: seed 16 scope: Namespaced 17 versions: 18 - additionalPrinterColumns: 19 - jsonPath: .status.clusters 20 name: Clusters 21 type: integer 22 - jsonPath: .spec.location 23 name: Location 24 type: string 25 - jsonPath: .status.versions.kubermatic 26 name: KKP Version 27 type: string 28 - jsonPath: .status.versions.cluster 29 name: Cluster Version 30 type: string 31 - jsonPath: .status.phase 32 name: Phase 33 type: string 34 - jsonPath: .metadata.creationTimestamp 35 name: Age 36 type: date 37 name: v1 38 schema: 39 openAPIV3Schema: 40 description: Seed is the type representing a Seed cluster. Seed clusters host the the control planes for KKP user clusters. Seedlets are responsible for registering a seed cluster in the KKP management system, similar to how a kubelet registers a node. 41 properties: 42 apiVersion: 43 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' 44 type: string 45 kind: 46 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' 47 type: string 48 metadata: 49 type: object 50 spec: 51 description: The spec for a seed cluster. 52 properties: 53 country: 54 description: 'Optional: Country of the seed as ISO-3166 two-letter code, e.g. DE or UK. For informational purposes in the Kubermatic dashboard only.' 55 type: string 56 datacenters: 57 additionalProperties: 58 description: DatacenterSpec configures a KKP datacenter. Provider configuration is mutually exclusive, and as such only a single provider can be configured per datacenter. 59 properties: 60 enforceAuditLogging: 61 description: 'Optional: EnforceAuditLogging enforces audit logging on every cluster within the DC, ignoring cluster-specific settings.' 62 type: boolean 63 enforcePodSecurityPolicy: 64 description: 'Optional: EnforcePodSecurityPolicy enforces pod security policy plugin on every clusters within the DC, ignoring cluster-specific settings.' 65 type: boolean 66 machineFlavorFilter: 67 description: 'Optional: MachineFlavorFilter is used to filter out allowed machine flavors based on the specified resource limits like CPU, Memory, and GPU etc.' 68 properties: 69 enableGPU: 70 description: Include VMs with GPU 71 type: boolean 72 maxCPU: 73 default: 0 74 description: Maximum number of vCPU 75 minimum: 0 76 type: integer 77 maxRAM: 78 default: 0 79 description: Maximum RAM size in GB 80 minimum: 0 81 type: integer 82 minCPU: 83 default: 0 84 description: Minimum number of vCPU 85 minimum: 0 86 type: integer 87 minRAM: 88 default: 0 89 description: Minimum RAM size in GB 90 minimum: 0 91 type: integer 92 required: 93 - enableGPU 94 - maxCPU 95 - maxRAM 96 - minCPU 97 - minRAM 98 type: object 99 node: 100 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. 101 properties: 102 containerdRegistryMirrors: 103 description: 'Optional: ContainerdRegistryMirrors configure registry mirrors endpoints. Can be used multiple times to specify multiple mirrors.' 104 properties: 105 registries: 106 additionalProperties: 107 description: ContainerdRegistry defines endpoints and security for given container registry. 108 properties: 109 mirrors: 110 description: List of registry mirrors to use 111 items: 112 type: string 113 type: array 114 type: object 115 description: A map of registries to use to render configs and mirrors for containerd registries 116 type: object 117 type: object 118 httpProxy: 119 description: 'Optional: If set, this proxy will be configured for both HTTP and HTTPS.' 120 type: string 121 insecureRegistries: 122 description: 'Optional: These image registries will be configured as insecure on the container runtime.' 123 items: 124 type: string 125 type: array 126 noProxy: 127 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.' 128 type: string 129 pauseImage: 130 description: 'Optional: Translates to --pod-infra-container-image on the kubelet. If not set, the kubelet will default it.' 131 type: string 132 registryMirrors: 133 description: 'Optional: These image registries will be configured as registry mirrors on the container runtime.' 134 items: 135 type: string 136 type: array 137 type: object 138 operatingSystemProfiles: 139 additionalProperties: 140 type: string 141 description: 'Optional: DefaultOperatingSystemProfiles specifies the OperatingSystemProfiles to use for each supported operating system.' 142 type: object 143 provider: 144 description: Provider contains cloud-provider related configuration. 145 properties: 146 alibaba: 147 description: Alibaba configures an Alibaba Cloud datacenter. 148 properties: 149 region: 150 description: Region to use, for a full list of regions see https://www.alibabacloud.com/help/doc-detail/40654.htm 151 type: string 152 required: 153 - region 154 type: object 155 anexia: 156 description: Anexia configures an Anexia datacenter. 157 properties: 158 locationID: 159 description: LocationID the location of the region 160 type: string 161 required: 162 - locationID 163 type: object 164 aws: 165 description: AWS configures an Amazon Web Services (AWS) datacenter. 166 properties: 167 images: 168 additionalProperties: 169 type: string 170 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. 171 type: object 172 region: 173 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 174 type: string 175 required: 176 - region 177 type: object 178 azure: 179 description: Azure configures an Azure datacenter. 180 properties: 181 location: 182 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/ 183 type: string 184 required: 185 - location 186 type: object 187 bringyourown: 188 description: BringYourOwn contains settings for clusters using manually created nodes via kubeadm. 189 type: object 190 digitalocean: 191 description: Digitalocean contains settings for Digitalocean (DO). 192 properties: 193 region: 194 description: Datacenter location, e.g. "ams3". A list of existing datacenters can be found at https://www.digitalocean.com/docs/platform/availability-matrix/ 195 type: string 196 required: 197 - region 198 type: object 199 fake: 200 description: DatacenterSpecFake describes a fake datacenter. 201 properties: 202 fakeProperty: 203 type: string 204 type: object 205 gcp: 206 description: GCP configures a Google Cloud Platform (GCP) datacenter. 207 properties: 208 region: 209 description: Region to use, for example "europe-west3", for a full list of regions see https://cloud.google.com/compute/docs/regions-zones/ 210 type: string 211 regional: 212 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' 213 type: boolean 214 zoneSuffixes: 215 description: List of enabled zones, for example [a, c]. See the link above for the available zones in your chosen region. 216 items: 217 type: string 218 type: array 219 required: 220 - region 221 - zoneSuffixes 222 type: object 223 hetzner: 224 description: Hetzner configures a Hetzner datacenter. 225 properties: 226 datacenter: 227 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/ 228 type: string 229 location: 230 description: 'Optional: Detailed location of the datacenter, like "Hamburg" or "Datacenter 7". For informational purposes only.' 231 type: string 232 network: 233 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. 234 type: string 235 required: 236 - datacenter 237 - network 238 type: object 239 kubevirt: 240 description: KubeVirt configures a KubeVirt datacenter. 241 properties: 242 customNetworkPolicies: 243 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.' 244 items: 245 description: CustomNetworkPolicy contains a name and the Spec of a NetworkPolicy. 246 properties: 247 name: 248 description: Name is the name of the Custom Network Policy. 249 type: string 250 spec: 251 description: Spec is the Spec of the NetworkPolicy, using the standard type. 252 properties: 253 egress: 254 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 255 items: 256 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 257 properties: 258 ports: 259 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. 260 items: 261 description: NetworkPolicyPort describes a port to allow traffic on 262 properties: 263 endPort: 264 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. 265 format: int32 266 type: integer 267 port: 268 anyOf: 269 - type: integer 270 - type: string 271 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. 272 x-kubernetes-int-or-string: true 273 protocol: 274 default: TCP 275 description: protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP. 276 type: string 277 type: object 278 type: array 279 to: 280 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. 281 items: 282 description: NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed 283 properties: 284 ipBlock: 285 description: ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be. 286 properties: 287 cidr: 288 description: cidr is a string representing the IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" 289 type: string 290 except: 291 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 292 items: 293 type: string 294 type: array 295 required: 296 - cidr 297 type: object 298 namespaceSelector: 299 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." 300 properties: 301 matchExpressions: 302 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 303 items: 304 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. 305 properties: 306 key: 307 description: key is the label key that the selector applies to. 308 type: string 309 operator: 310 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. 311 type: string 312 values: 313 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. 314 items: 315 type: string 316 type: array 317 required: 318 - key 319 - operator 320 type: object 321 type: array 322 matchLabels: 323 additionalProperties: 324 type: string 325 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. 326 type: object 327 type: object 328 x-kubernetes-map-type: atomic 329 podSelector: 330 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." 331 properties: 332 matchExpressions: 333 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 334 items: 335 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. 336 properties: 337 key: 338 description: key is the label key that the selector applies to. 339 type: string 340 operator: 341 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. 342 type: string 343 values: 344 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. 345 items: 346 type: string 347 type: array 348 required: 349 - key 350 - operator 351 type: object 352 type: array 353 matchLabels: 354 additionalProperties: 355 type: string 356 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. 357 type: object 358 type: object 359 x-kubernetes-map-type: atomic 360 type: object 361 type: array 362 type: object 363 type: array 364 ingress: 365 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) 366 items: 367 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. 368 properties: 369 from: 370 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. 371 items: 372 description: NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed 373 properties: 374 ipBlock: 375 description: ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be. 376 properties: 377 cidr: 378 description: cidr is a string representing the IPBlock Valid examples are "192.168.1.0/24" or "2001:db8::/64" 379 type: string 380 except: 381 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 382 items: 383 type: string 384 type: array 385 required: 386 - cidr 387 type: object 388 namespaceSelector: 389 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." 390 properties: 391 matchExpressions: 392 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 393 items: 394 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. 395 properties: 396 key: 397 description: key is the label key that the selector applies to. 398 type: string 399 operator: 400 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. 401 type: string 402 values: 403 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. 404 items: 405 type: string 406 type: array 407 required: 408 - key 409 - operator 410 type: object 411 type: array 412 matchLabels: 413 additionalProperties: 414 type: string 415 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. 416 type: object 417 type: object 418 x-kubernetes-map-type: atomic 419 podSelector: 420 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." 421 properties: 422 matchExpressions: 423 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 424 items: 425 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. 426 properties: 427 key: 428 description: key is the label key that the selector applies to. 429 type: string 430 operator: 431 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. 432 type: string 433 values: 434 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. 435 items: 436 type: string 437 type: array 438 required: 439 - key 440 - operator 441 type: object 442 type: array 443 matchLabels: 444 additionalProperties: 445 type: string 446 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. 447 type: object 448 type: object 449 x-kubernetes-map-type: atomic 450 type: object 451 type: array 452 ports: 453 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. 454 items: 455 description: NetworkPolicyPort describes a port to allow traffic on 456 properties: 457 endPort: 458 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. 459 format: int32 460 type: integer 461 port: 462 anyOf: 463 - type: integer 464 - type: string 465 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. 466 x-kubernetes-int-or-string: true 467 protocol: 468 default: TCP 469 description: protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP. 470 type: string 471 type: object 472 type: array 473 type: object 474 type: array 475 podSelector: 476 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. 477 properties: 478 matchExpressions: 479 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 480 items: 481 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. 482 properties: 483 key: 484 description: key is the label key that the selector applies to. 485 type: string 486 operator: 487 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. 488 type: string 489 values: 490 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. 491 items: 492 type: string 493 type: array 494 required: 495 - key 496 - operator 497 type: object 498 type: array 499 matchLabels: 500 additionalProperties: 501 type: string 502 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. 503 type: object 504 type: object 505 x-kubernetes-map-type: atomic 506 policyTypes: 507 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 508 items: 509 description: PolicyType string describes the NetworkPolicy type This type is beta-level in 1.8 510 type: string 511 type: array 512 required: 513 - podSelector 514 type: object 515 required: 516 - name 517 - spec 518 type: object 519 type: array 520 dnsConfig: 521 description: DNSConfig represents the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy. 522 properties: 523 nameservers: 524 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. 525 items: 526 type: string 527 type: array 528 options: 529 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. 530 items: 531 description: PodDNSConfigOption defines DNS resolver options of a pod. 532 properties: 533 name: 534 description: Required. 535 type: string 536 value: 537 type: string 538 type: object 539 type: array 540 searches: 541 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. 542 items: 543 type: string 544 type: array 545 type: object 546 dnsPolicy: 547 default: ClusterFirst 548 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. 549 enum: 550 - ClusterFirstWithHostNet 551 - ClusterFirst 552 - Default 553 - None 554 type: string 555 enableDefaultNetworkPolicies: 556 description: 'Optional: EnableDefaultNetworkPolicies enables deployment of default network policies like cluster isolation. Defaults to true.' 557 type: boolean 558 images: 559 description: Images represents standard VM Image sources. 560 properties: 561 http: 562 description: HTTP represents a http source. 563 properties: 564 operatingSystems: 565 additionalProperties: 566 additionalProperties: 567 type: string 568 description: OSVersions defines a map of OS version and the source to download the image. 569 type: object 570 description: OperatingSystems represents list of supported operating-systems with their URLs. 571 type: object 572 required: 573 - operatingSystems 574 type: object 575 type: object 576 infraStorageClasses: 577 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>' 578 items: 579 properties: 580 isDefaultClass: 581 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' 582 type: boolean 583 name: 584 type: string 585 required: 586 - name 587 type: object 588 type: array 589 type: object 590 nutanix: 591 description: Nutanix configures a Nutanix HCI datacenter. 592 properties: 593 allowInsecure: 594 description: 'Optional: AllowInsecure allows to disable the TLS certificate check against the endpoint (defaults to false)' 595 type: boolean 596 endpoint: 597 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" 598 type: string 599 images: 600 additionalProperties: 601 type: string 602 description: Images to use for each supported operating system 603 type: object 604 port: 605 description: 'Optional: Port to use when connecting to the Nutanix Prism Central endpoint (defaults to 9440)' 606 format: int32 607 type: integer 608 required: 609 - endpoint 610 - images 611 type: object 612 openstack: 613 description: OpenStack configures an OpenStack datacenter. 614 properties: 615 authURL: 616 type: string 617 availabilityZone: 618 type: string 619 dnsServers: 620 description: Used for automatic network creation 621 items: 622 type: string 623 type: array 624 enabledFlavors: 625 description: 'Optional: List of enabled flavors for the given datacenter' 626 items: 627 type: string 628 type: array 629 enforceFloatingIP: 630 description: Optional 631 type: boolean 632 ignoreVolumeAZ: 633 description: Optional 634 type: boolean 635 images: 636 additionalProperties: 637 type: string 638 description: Images to use for each supported operating system. 639 type: object 640 ipv6Enabled: 641 description: 'Optional: defines if the IPv6 is enabled for the datacenter' 642 type: boolean 643 manageSecurityGroups: 644 description: 'Optional: Gets mapped to the "manage-security-groups" setting in the cloud config. This setting defaults to true.' 645 type: boolean 646 nodeSizeRequirements: 647 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.' 648 properties: 649 minimumMemory: 650 description: MinimumMemory is the minimum required amount of memory, measured in MB 651 type: integer 652 minimumVCPUs: 653 description: VCPUs is the minimum required amount of (virtual) CPUs 654 type: integer 655 type: object 656 region: 657 type: string 658 trustDevicePath: 659 description: 'Optional: Gets mapped to the "trust-device-path" setting in the cloud config. This setting defaults to false.' 660 type: boolean 661 useOctavia: 662 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.' 663 type: boolean 664 required: 665 - authURL 666 - images 667 - region 668 type: object 669 packet: 670 description: Packet configures an Equinix Metal datacenter. 671 properties: 672 facilities: 673 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/ 674 items: 675 type: string 676 type: array 677 metro: 678 description: Metros are facilities that are grouped together geographically and share capacity and networking features, see https://metal.equinix.com/developers/docs/locations/metros/ 679 type: string 680 type: object 681 providerName: 682 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). 683 enum: 684 - alibaba 685 - anexia 686 - aws 687 - azure 688 - bringyourown 689 - digitalocean 690 - gcp 691 - hetzner 692 - kubevirt 693 - nutanix 694 - openstack 695 - packet 696 - vmwareclouddirector 697 - vsphere 698 type: string 699 vmwareclouddirector: 700 description: VMwareCloudDirector configures a VMware Cloud Director datacenter. 701 properties: 702 allowInsecure: 703 description: If set to true, disables the TLS certificate check against the endpoint. 704 type: boolean 705 catalog: 706 description: The default catalog which contains the VM templates. 707 type: string 708 storageProfile: 709 description: The name of the storage profile to use for disks attached to the VMs. 710 type: string 711 templates: 712 additionalProperties: 713 type: string 714 description: A list of VM templates to use for a given operating system. You must define at least one template. 715 type: object 716 url: 717 description: Endpoint URL to use, including protocol, for example "https://vclouddirector.example.com". 718 type: string 719 required: 720 - templates 721 - url 722 type: object 723 vsphere: 724 description: VSphere configures a VMware vSphere datacenter. 725 properties: 726 allowInsecure: 727 description: If set to true, disables the TLS certificate check against the endpoint. 728 type: boolean 729 cluster: 730 description: The name of the vSphere cluster to use. Used for out-of-tree CSI Driver. 731 type: string 732 datacenter: 733 description: The name of the datacenter to use. 734 type: string 735 datastore: 736 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. 737 type: string 738 defaultTagCategoryID: 739 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. 740 type: string 741 endpoint: 742 description: Endpoint URL to use, including protocol, for example "https://vcenter.example.com". 743 type: string 744 infraManagementUser: 745 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.' 746 properties: 747 password: 748 type: string 749 username: 750 type: string 751 type: object 752 ipv6Enabled: 753 description: 'Optional: defines if the IPv6 is enabled for the datacenter' 754 type: boolean 755 rootPath: 756 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"' 757 type: string 758 storagePolicy: 759 description: The name of the storage policy to use for the storage class created in the user cluster. 760 type: string 761 templates: 762 additionalProperties: 763 type: string 764 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' 765 type: object 766 required: 767 - cluster 768 - datacenter 769 - datastore 770 - endpoint 771 - templates 772 type: object 773 required: 774 - providerName 775 type: object 776 providerReconciliationInterval: 777 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.' 778 type: string 779 requiredEmails: 780 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").' 781 items: 782 type: string 783 type: array 784 required: 785 - provider 786 type: object 787 description: Datacenters contains a map of all datacenters (DCs) on this seed. The datacenter names are not globally unique, i.e. two seeds can both have a "test" datacenter. 788 type: object 789 location: 790 description: 'Optional: Detailed location of the cluster, like "Hamburg" or "Datacenter 7". For informational purposes in the Kubermatic dashboard only.' 791 type: string 792 type: object 793 status: 794 description: SeedStatus contains runtime information regarding the seed. 795 properties: 796 clusters: 797 default: 0 798 description: Clusters is the total number of user clusters that exist on this seed, the sum across all its datacenters. 799 minimum: 0 800 type: integer 801 conditions: 802 additionalProperties: 803 properties: 804 lastHeartbeatTime: 805 description: Last time we got an update on a given condition. 806 format: date-time 807 type: string 808 lastTransitionTime: 809 description: Last time the condition transit from one status to another. 810 format: date-time 811 type: string 812 message: 813 description: Human readable message indicating details about last transition. 814 type: string 815 reason: 816 description: (brief) reason for the condition's last transition. 817 type: string 818 status: 819 description: Status of the condition, one of True, False, Unknown. 820 type: string 821 required: 822 - lastHeartbeatTime 823 - status 824 type: object 825 description: Conditions contains conditions the seed is in, its primary use case is status signaling between controllers or between controllers and the API. 826 type: object 827 datacenters: 828 additionalProperties: 829 description: DatacenterStatus contains runtime information regarding the datacenter. 830 properties: 831 clusters: 832 default: 0 833 description: Clusters is the total number of user clusters that exist on this seed. 834 minimum: 0 835 type: integer 836 required: 837 - clusters 838 type: object 839 description: Datacenters contains a map of all datacenter statuses on this seed. 840 type: object 841 phase: 842 description: Phase contains a human readable text to indicate the seed cluster status. No logic should be tied to this field, as its content can change in between KKP releases. 843 enum: 844 - Healthy 845 - Unhealthy 846 - Invalid 847 - Terminating 848 - Paused 849 type: string 850 versions: 851 description: Versions contains information regarding versions of components in the cluster and the cluster itself. 852 properties: 853 cluster: 854 description: Cluster is the Kubernetes version of the cluster's control plane. 855 type: string 856 kubermatic: 857 description: Kubermatic is the version of the currently deployed KKP components. Note that a permanent version skew between master and seed is not supported and KKP setups should never run for longer times with a skew between the clusters. 858 type: string 859 type: object 860 required: 861 - clusters 862 type: object 863 required: 864 - spec 865 type: object 866 served: true 867 storage: true 868 subresources: 869 status: {}