Text file
src/github.com/openshift/api/config/v1/0000_10_config-operator_01_infrastructure-Default.crd.yaml
1apiVersion: apiextensions.k8s.io/v1
2kind: CustomResourceDefinition
3metadata:
4 annotations:
5 api-approved.openshift.io: https://github.com/openshift/api/pull/470
6 include.release.openshift.io/ibm-cloud-managed: "true"
7 include.release.openshift.io/self-managed-high-availability: "true"
8 include.release.openshift.io/single-node-developer: "true"
9 release.openshift.io/feature-set: Default
10 name: infrastructures.config.openshift.io
11spec:
12 group: config.openshift.io
13 names:
14 kind: Infrastructure
15 listKind: InfrastructureList
16 plural: infrastructures
17 singular: infrastructure
18 scope: Cluster
19 versions:
20 - name: v1
21 schema:
22 openAPIV3Schema:
23 description: "Infrastructure holds cluster-wide information about Infrastructure. The canonical name is `cluster` \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
24 properties:
25 apiVersion:
26 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'
27 type: string
28 kind:
29 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'
30 type: string
31 metadata:
32 type: object
33 spec:
34 description: spec holds user settable values for configuration
35 properties:
36 cloudConfig:
37 description: "cloudConfig is a reference to a ConfigMap containing the cloud provider configuration file. This configuration file is used to configure the Kubernetes cloud provider integration when using the built-in cloud provider integration or the external cloud controller manager. The namespace for this config map is openshift-config. \n cloudConfig should only be consumed by the kube_cloud_config controller. The controller is responsible for using the user configuration in the spec for various platforms and combining that with the user provided ConfigMap in this field to create a stitched kube cloud config. The controller generates a ConfigMap `kube-cloud-config` in `openshift-config-managed` namespace with the kube cloud config is stored in `cloud.conf` key. All the clients are expected to use the generated ConfigMap only."
38 properties:
39 key:
40 description: Key allows pointing to a specific key/value inside of the configmap. This is useful for logical file references.
41 type: string
42 name:
43 type: string
44 type: object
45 platformSpec:
46 description: platformSpec holds desired information specific to the underlying infrastructure provider.
47 properties:
48 alibabaCloud:
49 description: AlibabaCloud contains settings specific to the Alibaba Cloud infrastructure provider.
50 type: object
51 aws:
52 description: AWS contains settings specific to the Amazon Web Services infrastructure provider.
53 properties:
54 serviceEndpoints:
55 description: serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.
56 items:
57 description: AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services.
58 properties:
59 name:
60 description: name is the name of the AWS service. The list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html This must be provided and cannot be empty.
61 pattern: ^[a-z0-9-]+$
62 type: string
63 url:
64 description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty.
65 pattern: ^https://
66 type: string
67 type: object
68 type: array
69 type: object
70 azure:
71 description: Azure contains settings specific to the Azure infrastructure provider.
72 type: object
73 baremetal:
74 description: BareMetal contains settings specific to the BareMetal platform.
75 type: object
76 equinixMetal:
77 description: EquinixMetal contains settings specific to the Equinix Metal infrastructure provider.
78 type: object
79 external:
80 description: ExternalPlatformType represents generic infrastructure provider. Platform-specific components should be supplemented separately.
81 properties:
82 platformName:
83 default: Unknown
84 description: PlatformName holds the arbitrary string representing the infrastructure provider name, expected to be set at the installation time. This field is solely for informational and reporting purposes and is not expected to be used for decision-making.
85 type: string
86 x-kubernetes-validations:
87 - message: platform name cannot be changed once set
88 rule: oldSelf == 'Unknown' || self == oldSelf
89 type: object
90 gcp:
91 description: GCP contains settings specific to the Google Cloud Platform infrastructure provider.
92 type: object
93 ibmcloud:
94 description: IBMCloud contains settings specific to the IBMCloud infrastructure provider.
95 type: object
96 kubevirt:
97 description: Kubevirt contains settings specific to the kubevirt infrastructure provider.
98 type: object
99 nutanix:
100 description: Nutanix contains settings specific to the Nutanix infrastructure provider.
101 properties:
102 prismCentral:
103 description: prismCentral holds the endpoint address and port to access the Nutanix Prism Central. When a cluster-wide proxy is installed, by default, this endpoint will be accessed via the proxy. Should you wish for communication with this endpoint not to be proxied, please add the endpoint to the proxy spec.noProxy list.
104 properties:
105 address:
106 description: address is the endpoint address (DNS name or IP address) of the Nutanix Prism Central or Element (cluster)
107 maxLength: 256
108 type: string
109 port:
110 description: port is the port number to access the Nutanix Prism Central or Element (cluster)
111 format: int32
112 maximum: 65535
113 minimum: 1
114 type: integer
115 required:
116 - address
117 - port
118 type: object
119 prismElements:
120 description: prismElements holds one or more endpoint address and port data to access the Nutanix Prism Elements (clusters) of the Nutanix Prism Central. Currently we only support one Prism Element (cluster) for an OpenShift cluster, where all the Nutanix resources (VMs, subnets, volumes, etc.) used in the OpenShift cluster are located. In the future, we may support Nutanix resources (VMs, etc.) spread over multiple Prism Elements (clusters) of the Prism Central.
121 items:
122 description: NutanixPrismElementEndpoint holds the name and endpoint data for a Prism Element (cluster)
123 properties:
124 endpoint:
125 description: endpoint holds the endpoint address and port data of the Prism Element (cluster). When a cluster-wide proxy is installed, by default, this endpoint will be accessed via the proxy. Should you wish for communication with this endpoint not to be proxied, please add the endpoint to the proxy spec.noProxy list.
126 properties:
127 address:
128 description: address is the endpoint address (DNS name or IP address) of the Nutanix Prism Central or Element (cluster)
129 maxLength: 256
130 type: string
131 port:
132 description: port is the port number to access the Nutanix Prism Central or Element (cluster)
133 format: int32
134 maximum: 65535
135 minimum: 1
136 type: integer
137 required:
138 - address
139 - port
140 type: object
141 name:
142 description: name is the name of the Prism Element (cluster). This value will correspond with the cluster field configured on other resources (eg Machines, PVCs, etc).
143 maxLength: 256
144 type: string
145 required:
146 - endpoint
147 - name
148 type: object
149 type: array
150 x-kubernetes-list-map-keys:
151 - name
152 x-kubernetes-list-type: map
153 required:
154 - prismCentral
155 - prismElements
156 type: object
157 openstack:
158 description: OpenStack contains settings specific to the OpenStack infrastructure provider.
159 type: object
160 ovirt:
161 description: Ovirt contains settings specific to the oVirt infrastructure provider.
162 type: object
163 powervs:
164 description: PowerVS contains settings specific to the IBM Power Systems Virtual Servers infrastructure provider.
165 properties:
166 serviceEndpoints:
167 description: serviceEndpoints is a list of custom endpoints which will override the default service endpoints of a Power VS service.
168 items:
169 description: PowervsServiceEndpoint stores the configuration of a custom url to override existing defaults of PowerVS Services.
170 properties:
171 name:
172 description: name is the name of the Power VS service. Few of the services are IAM - https://cloud.ibm.com/apidocs/iam-identity-token-api ResourceController - https://cloud.ibm.com/apidocs/resource-controller/resource-controller Power Cloud - https://cloud.ibm.com/apidocs/power-cloud
173 pattern: ^[a-z0-9-]+$
174 type: string
175 url:
176 description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty.
177 format: uri
178 pattern: ^https://
179 type: string
180 required:
181 - name
182 - url
183 type: object
184 type: array
185 x-kubernetes-list-map-keys:
186 - name
187 x-kubernetes-list-type: map
188 type: object
189 type:
190 description: type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are "AWS", "Azure", "BareMetal", "GCP", "Libvirt", "OpenStack", "VSphere", "oVirt", "KubeVirt", "EquinixMetal", "PowerVS", "AlibabaCloud", "Nutanix" and "None". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform.
191 enum:
192 - ""
193 - AWS
194 - Azure
195 - BareMetal
196 - GCP
197 - Libvirt
198 - OpenStack
199 - None
200 - VSphere
201 - oVirt
202 - IBMCloud
203 - KubeVirt
204 - EquinixMetal
205 - PowerVS
206 - AlibabaCloud
207 - Nutanix
208 - External
209 type: string
210 vsphere:
211 description: VSphere contains settings specific to the VSphere infrastructure provider.
212 properties:
213 failureDomains:
214 description: failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used.
215 items:
216 description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology of that failure domain.
217 properties:
218 name:
219 description: name defines the arbitrary but unique name of a failure domain.
220 maxLength: 256
221 minLength: 1
222 type: string
223 region:
224 description: region defines the name of a region tag that will be attached to a vCenter datacenter. The tag category in vCenter must be named openshift-region.
225 maxLength: 80
226 minLength: 1
227 type: string
228 server:
229 anyOf:
230 - format: ipv4
231 - format: ipv6
232 - format: hostname
233 description: server is the fully-qualified domain name or the IP address of the vCenter server. ---
234 maxLength: 255
235 minLength: 1
236 type: string
237 topology:
238 description: Topology describes a given failure domain using vSphere constructs
239 properties:
240 computeCluster:
241 description: computeCluster the absolute path of the vCenter cluster in which virtual machine will be located. The absolute path is of the form /<datacenter>/host/<cluster>. The maximum length of the path is 2048 characters.
242 maxLength: 2048
243 pattern: ^/.*?/host/.*?
244 type: string
245 datacenter:
246 description: datacenter is the name of vCenter datacenter in which virtual machines will be located. The maximum length of the datacenter name is 80 characters.
247 maxLength: 80
248 type: string
249 datastore:
250 description: datastore is the absolute path of the datastore in which the virtual machine is located. The absolute path is of the form /<datacenter>/datastore/<datastore> The maximum length of the path is 2048 characters.
251 maxLength: 2048
252 pattern: ^/.*?/datastore/.*?
253 type: string
254 folder:
255 description: folder is the absolute path of the folder where virtual machines are located. The absolute path is of the form /<datacenter>/vm/<folder>. The maximum length of the path is 2048 characters.
256 maxLength: 2048
257 pattern: ^/.*?/vm/.*?
258 type: string
259 networks:
260 description: networks is the list of port group network names within this failure domain. Currently, we only support a single interface per RHCOS virtual machine. The available networks (port groups) can be listed using `govc ls 'network/*'` The single interface should be the absolute path of the form /<datacenter>/network/<portgroup>.
261 items:
262 type: string
263 maxItems: 1
264 minItems: 1
265 type: array
266 resourcePool:
267 description: resourcePool is the absolute path of the resource pool where virtual machines will be created. The absolute path is of the form /<datacenter>/host/<cluster>/Resources/<resourcepool>. The maximum length of the path is 2048 characters.
268 maxLength: 2048
269 pattern: ^/.*?/host/.*?/Resources.*
270 type: string
271 required:
272 - computeCluster
273 - datacenter
274 - datastore
275 - networks
276 type: object
277 zone:
278 description: zone defines the name of a zone tag that will be attached to a vCenter cluster. The tag category in vCenter must be named openshift-zone.
279 maxLength: 80
280 minLength: 1
281 type: string
282 required:
283 - name
284 - region
285 - server
286 - topology
287 - zone
288 type: object
289 type: array
290 nodeNetworking:
291 description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's networking. If this field is omitted, networking defaults to the legacy address selection behavior which is to only support a single address and return the first one found.
292 properties:
293 external:
294 description: external represents the network configuration of the node that is externally routable.
295 properties:
296 excludeNetworkSubnetCidr:
297 description: excludeNetworkSubnetCidr IP addresses in subnet ranges will be excluded when selecting the IP address from the VirtualMachine's VM for use in the status.addresses fields. ---
298 items:
299 format: cidr
300 type: string
301 type: array
302 network:
303 description: network VirtualMachine's VM Network names that will be used to when searching for status.addresses fields. Note that if internal.networkSubnetCIDR and external.networkSubnetCIDR are not set, then the vNIC associated to this network must only have a single IP address assigned to it. The available networks (port groups) can be listed using `govc ls 'network/*'`
304 type: string
305 networkSubnetCidr:
306 description: networkSubnetCidr IP address on VirtualMachine's network interfaces included in the fields' CIDRs that will be used in respective status.addresses fields. ---
307 items:
308 format: cidr
309 type: string
310 type: array
311 type: object
312 internal:
313 description: internal represents the network configuration of the node that is routable only within the cluster.
314 properties:
315 excludeNetworkSubnetCidr:
316 description: excludeNetworkSubnetCidr IP addresses in subnet ranges will be excluded when selecting the IP address from the VirtualMachine's VM for use in the status.addresses fields. ---
317 items:
318 format: cidr
319 type: string
320 type: array
321 network:
322 description: network VirtualMachine's VM Network names that will be used to when searching for status.addresses fields. Note that if internal.networkSubnetCIDR and external.networkSubnetCIDR are not set, then the vNIC associated to this network must only have a single IP address assigned to it. The available networks (port groups) can be listed using `govc ls 'network/*'`
323 type: string
324 networkSubnetCidr:
325 description: networkSubnetCidr IP address on VirtualMachine's network interfaces included in the fields' CIDRs that will be used in respective status.addresses fields. ---
326 items:
327 format: cidr
328 type: string
329 type: array
330 type: object
331 type: object
332 vcenters:
333 description: vcenters holds the connection details for services to communicate with vCenter. Currently, only a single vCenter is supported. ---
334 items:
335 description: VSpherePlatformVCenterSpec stores the vCenter connection fields. This is used by the vSphere CCM.
336 properties:
337 datacenters:
338 description: The vCenter Datacenters in which the RHCOS vm guests are located. This field will be used by the Cloud Controller Manager. Each datacenter listed here should be used within a topology.
339 items:
340 type: string
341 minItems: 1
342 type: array
343 port:
344 description: port is the TCP port that will be used to communicate to the vCenter endpoint. When omitted, this means the user has no opinion and it is up to the platform to choose a sensible default, which is subject to change over time.
345 format: int32
346 maximum: 32767
347 minimum: 1
348 type: integer
349 server:
350 anyOf:
351 - format: ipv4
352 - format: ipv6
353 - format: hostname
354 description: server is the fully-qualified domain name or the IP address of the vCenter server. ---
355 maxLength: 255
356 type: string
357 required:
358 - datacenters
359 - server
360 type: object
361 maxItems: 1
362 minItems: 0
363 type: array
364 type: object
365 type: object
366 type: object
367 status:
368 description: status holds observed values from the cluster. They may not be overridden.
369 properties:
370 apiServerInternalURI:
371 description: apiServerInternalURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerInternalURL can be used by components like kubelets, to contact the Kubernetes API server using the infrastructure provider rather than Kubernetes networking.
372 type: string
373 apiServerURL:
374 description: apiServerURL is a valid URI with scheme 'https', address and optionally a port (defaulting to 443). apiServerURL can be used by components like the web console to tell users where to find the Kubernetes API.
375 type: string
376 controlPlaneTopology:
377 default: HighlyAvailable
378 description: controlPlaneTopology expresses the expectations for operands that normally run on control nodes. The default is 'HighlyAvailable', which represents the behavior operators have in a "normal" cluster. The 'SingleReplica' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation The 'External' mode indicates that the control plane is hosted externally to the cluster and that its components are not visible within the cluster.
379 enum:
380 - HighlyAvailable
381 - SingleReplica
382 - External
383 type: string
384 etcdDiscoveryDomain:
385 description: 'etcdDiscoveryDomain is the domain used to fetch the SRV records for discovering etcd servers and clients. For more info: https://github.com/etcd-io/etcd/blob/329be66e8b3f9e2e6af83c123ff89297e49ebd15/Documentation/op-guide/clustering.md#dns-discovery deprecated: as of 4.7, this field is no longer set or honored. It will be removed in a future release.'
386 type: string
387 infrastructureName:
388 description: infrastructureName uniquely identifies a cluster with a human friendly name. Once set it should not be changed. Must be of max length 27 and must have only alphanumeric or hyphen characters.
389 type: string
390 infrastructureTopology:
391 default: HighlyAvailable
392 description: 'infrastructureTopology expresses the expectations for infrastructure services that do not run on control plane nodes, usually indicated by a node selector for a `role` value other than `master`. The default is ''HighlyAvailable'', which represents the behavior operators have in a "normal" cluster. The ''SingleReplica'' mode will be used in single-node deployments and the operators should not configure the operand for highly-available operation NOTE: External topology mode is not applicable for this field.'
393 enum:
394 - HighlyAvailable
395 - SingleReplica
396 type: string
397 platform:
398 description: "platform is the underlying infrastructure provider for the cluster. \n Deprecated: Use platformStatus.type instead."
399 enum:
400 - ""
401 - AWS
402 - Azure
403 - BareMetal
404 - GCP
405 - Libvirt
406 - OpenStack
407 - None
408 - VSphere
409 - oVirt
410 - IBMCloud
411 - KubeVirt
412 - EquinixMetal
413 - PowerVS
414 - AlibabaCloud
415 - Nutanix
416 - External
417 type: string
418 platformStatus:
419 description: platformStatus holds status information specific to the underlying infrastructure provider.
420 properties:
421 alibabaCloud:
422 description: AlibabaCloud contains settings specific to the Alibaba Cloud infrastructure provider.
423 properties:
424 region:
425 description: region specifies the region for Alibaba Cloud resources created for the cluster.
426 pattern: ^[0-9A-Za-z-]+$
427 type: string
428 resourceGroupID:
429 description: resourceGroupID is the ID of the resource group for the cluster.
430 pattern: ^(rg-[0-9A-Za-z]+)?$
431 type: string
432 resourceTags:
433 description: resourceTags is a list of additional tags to apply to Alibaba Cloud resources created for the cluster.
434 items:
435 description: AlibabaCloudResourceTag is the set of tags to add to apply to resources.
436 properties:
437 key:
438 description: key is the key of the tag.
439 maxLength: 128
440 minLength: 1
441 type: string
442 value:
443 description: value is the value of the tag.
444 maxLength: 128
445 minLength: 1
446 type: string
447 required:
448 - key
449 - value
450 type: object
451 maxItems: 20
452 type: array
453 x-kubernetes-list-map-keys:
454 - key
455 x-kubernetes-list-type: map
456 required:
457 - region
458 type: object
459 aws:
460 description: AWS contains settings specific to the Amazon Web Services infrastructure provider.
461 properties:
462 region:
463 description: region holds the default AWS region for new AWS resources created by the cluster.
464 type: string
465 resourceTags:
466 description: resourceTags is a list of additional tags to apply to AWS resources created for the cluster. See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags available for the user.
467 items:
468 description: AWSResourceTag is a tag to apply to AWS resources created for the cluster.
469 properties:
470 key:
471 description: key is the key of the tag
472 maxLength: 128
473 minLength: 1
474 pattern: ^[0-9A-Za-z_.:/=+-@]+$
475 type: string
476 value:
477 description: value is the value of the tag. Some AWS service do not support empty values. Since tags are added to resources in many services, the length of the tag value must meet the requirements of all services.
478 maxLength: 256
479 minLength: 1
480 pattern: ^[0-9A-Za-z_.:/=+-@]+$
481 type: string
482 required:
483 - key
484 - value
485 type: object
486 maxItems: 25
487 type: array
488 serviceEndpoints:
489 description: ServiceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.
490 items:
491 description: AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services.
492 properties:
493 name:
494 description: name is the name of the AWS service. The list of all the service names can be found at https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html This must be provided and cannot be empty.
495 pattern: ^[a-z0-9-]+$
496 type: string
497 url:
498 description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty.
499 pattern: ^https://
500 type: string
501 type: object
502 type: array
503 type: object
504 azure:
505 description: Azure contains settings specific to the Azure infrastructure provider.
506 properties:
507 armEndpoint:
508 description: armEndpoint specifies a URL to use for resource management in non-soverign clouds such as Azure Stack.
509 type: string
510 cloudName:
511 description: cloudName is the name of the Azure cloud environment which can be used to configure the Azure SDK with the appropriate Azure API endpoints. If empty, the value is equal to `AzurePublicCloud`.
512 enum:
513 - ""
514 - AzurePublicCloud
515 - AzureUSGovernmentCloud
516 - AzureChinaCloud
517 - AzureGermanCloud
518 - AzureStackCloud
519 type: string
520 networkResourceGroupName:
521 description: networkResourceGroupName is the Resource Group for network resources like the Virtual Network and Subnets used by the cluster. If empty, the value is same as ResourceGroupName.
522 type: string
523 resourceGroupName:
524 description: resourceGroupName is the Resource Group for new Azure resources created for the cluster.
525 type: string
526 resourceTags:
527 description: resourceTags is a list of additional tags to apply to Azure resources created for the cluster. See https://docs.microsoft.com/en-us/rest/api/resources/tags for information on tagging Azure resources. Due to limitations on Automation, Content Delivery Network, DNS Azure resources, a maximum of 15 tags may be applied. OpenShift reserves 5 tags for internal use, allowing 10 tags for user configuration.
528 items:
529 description: AzureResourceTag is a tag to apply to Azure resources created for the cluster.
530 properties:
531 key:
532 description: key is the key part of the tag. A tag key can have a maximum of 128 characters and cannot be empty. Key must begin with a letter, end with a letter, number or underscore, and must contain only alphanumeric characters and the following special characters `_ . -`.
533 maxLength: 128
534 minLength: 1
535 pattern: ^[a-zA-Z]([0-9A-Za-z_.-]*[0-9A-Za-z_])?$
536 type: string
537 value:
538 description: 'value is the value part of the tag. A tag value can have a maximum of 256 characters and cannot be empty. Value must contain only alphanumeric characters and the following special characters `_ + , - . / : ; < = > ? @`.'
539 maxLength: 256
540 minLength: 1
541 pattern: ^[0-9A-Za-z_.=+-@]+$
542 type: string
543 required:
544 - key
545 - value
546 type: object
547 maxItems: 10
548 type: array
549 x-kubernetes-validations:
550 - message: resourceTags are immutable and may only be configured during installation
551 rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self)
552 type: object
553 x-kubernetes-validations:
554 - message: resourceTags may only be configured during installation
555 rule: '!has(oldSelf.resourceTags) && !has(self.resourceTags) || has(oldSelf.resourceTags) && has(self.resourceTags)'
556 baremetal:
557 description: BareMetal contains settings specific to the BareMetal platform.
558 properties:
559 apiServerInternalIP:
560 description: "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. \n Deprecated: Use APIServerInternalIPs instead."
561 type: string
562 apiServerInternalIPs:
563 description: apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IPs otherwise only one.
564 format: ip
565 items:
566 type: string
567 maxItems: 2
568 type: array
569 ingressIP:
570 description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead."
571 type: string
572 ingressIPs:
573 description: ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.
574 format: ip
575 items:
576 type: string
577 maxItems: 2
578 type: array
579 nodeDNSIP:
580 description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for BareMetal deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.
581 type: string
582 type: object
583 equinixMetal:
584 description: EquinixMetal contains settings specific to the Equinix Metal infrastructure provider.
585 properties:
586 apiServerInternalIP:
587 description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.
588 type: string
589 ingressIP:
590 description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.
591 type: string
592 type: object
593 external:
594 description: External contains settings specific to the generic External infrastructure provider.
595 type: object
596 gcp:
597 description: GCP contains settings specific to the Google Cloud Platform infrastructure provider.
598 properties:
599 projectID:
600 description: resourceGroupName is the Project ID for new GCP resources created for the cluster.
601 type: string
602 region:
603 description: region holds the region for new GCP resources created for the cluster.
604 type: string
605 type: object
606 ibmcloud:
607 description: IBMCloud contains settings specific to the IBMCloud infrastructure provider.
608 properties:
609 cisInstanceCRN:
610 description: CISInstanceCRN is the CRN of the Cloud Internet Services instance managing the DNS zone for the cluster's base domain
611 type: string
612 dnsInstanceCRN:
613 description: DNSInstanceCRN is the CRN of the DNS Services instance managing the DNS zone for the cluster's base domain
614 type: string
615 location:
616 description: Location is where the cluster has been deployed
617 type: string
618 providerType:
619 description: ProviderType indicates the type of cluster that was created
620 type: string
621 resourceGroupName:
622 description: ResourceGroupName is the Resource Group for new IBMCloud resources created for the cluster.
623 type: string
624 type: object
625 kubevirt:
626 description: Kubevirt contains settings specific to the kubevirt infrastructure provider.
627 properties:
628 apiServerInternalIP:
629 description: apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers.
630 type: string
631 ingressIP:
632 description: ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names.
633 type: string
634 type: object
635 nutanix:
636 description: Nutanix contains settings specific to the Nutanix infrastructure provider.
637 properties:
638 apiServerInternalIP:
639 description: "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. \n Deprecated: Use APIServerInternalIPs instead."
640 type: string
641 apiServerInternalIPs:
642 description: apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IPs otherwise only one.
643 format: ip
644 items:
645 type: string
646 maxItems: 2
647 type: array
648 ingressIP:
649 description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead."
650 type: string
651 ingressIPs:
652 description: ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.
653 format: ip
654 items:
655 type: string
656 maxItems: 2
657 type: array
658 type: object
659 openstack:
660 description: OpenStack contains settings specific to the OpenStack infrastructure provider.
661 properties:
662 apiServerInternalIP:
663 description: "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. \n Deprecated: Use APIServerInternalIPs instead."
664 type: string
665 apiServerInternalIPs:
666 description: apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IPs otherwise only one.
667 format: ip
668 items:
669 type: string
670 maxItems: 2
671 type: array
672 cloudName:
673 description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`).
674 type: string
675 ingressIP:
676 description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead."
677 type: string
678 ingressIPs:
679 description: ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.
680 format: ip
681 items:
682 type: string
683 maxItems: 2
684 type: array
685 loadBalancer:
686 default:
687 type: OpenShiftManagedDefault
688 description: loadBalancer defines how the load balancer used by the cluster is configured.
689 properties:
690 type:
691 default: OpenShiftManagedDefault
692 description: type defines the type of load balancer used by the cluster on OpenStack platform which can be a user-managed or openshift-managed load balancer that is to be used for the OpenShift API and Ingress endpoints. When set to OpenShiftManagedDefault the static pods in charge of API and Ingress traffic load-balancing defined in the machine config operator will be deployed. When set to UserManaged these static pods will not be deployed and it is expected that the load balancer is configured out of band by the deployer. When omitted, this means no opinion and the platform is left to choose a reasonable default. The default value is OpenShiftManagedDefault.
693 enum:
694 - OpenShiftManagedDefault
695 - UserManaged
696 type: string
697 x-kubernetes-validations:
698 - message: type is immutable once set
699 rule: oldSelf == '' || self == oldSelf
700 type: object
701 nodeDNSIP:
702 description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for OpenStack deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.
703 type: string
704 type: object
705 ovirt:
706 description: Ovirt contains settings specific to the oVirt infrastructure provider.
707 properties:
708 apiServerInternalIP:
709 description: "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. \n Deprecated: Use APIServerInternalIPs instead."
710 type: string
711 apiServerInternalIPs:
712 description: apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IPs otherwise only one.
713 format: ip
714 items:
715 type: string
716 maxItems: 2
717 type: array
718 ingressIP:
719 description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead."
720 type: string
721 ingressIPs:
722 description: ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.
723 format: ip
724 items:
725 type: string
726 maxItems: 2
727 type: array
728 nodeDNSIP:
729 description: 'deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.'
730 type: string
731 type: object
732 powervs:
733 description: PowerVS contains settings specific to the Power Systems Virtual Servers infrastructure provider.
734 properties:
735 cisInstanceCRN:
736 description: CISInstanceCRN is the CRN of the Cloud Internet Services instance managing the DNS zone for the cluster's base domain
737 type: string
738 dnsInstanceCRN:
739 description: DNSInstanceCRN is the CRN of the DNS Services instance managing the DNS zone for the cluster's base domain
740 type: string
741 region:
742 description: region holds the default Power VS region for new Power VS resources created by the cluster.
743 type: string
744 resourceGroup:
745 description: 'resourceGroup is the resource group name for new IBMCloud resources created for a cluster. The resource group specified here will be used by cluster-image-registry-operator to set up a COS Instance in IBMCloud for the cluster registry. More about resource groups can be found here: https://cloud.ibm.com/docs/account?topic=account-rgs. When omitted, the image registry operator won''t be able to configure storage, which results in the image registry cluster operator not being in an available state.'
746 maxLength: 40
747 pattern: ^[a-zA-Z0-9-_ ]+$
748 type: string
749 x-kubernetes-validations:
750 - message: resourceGroup is immutable once set
751 rule: oldSelf == '' || self == oldSelf
752 serviceEndpoints:
753 description: serviceEndpoints is a list of custom endpoints which will override the default service endpoints of a Power VS service.
754 items:
755 description: PowervsServiceEndpoint stores the configuration of a custom url to override existing defaults of PowerVS Services.
756 properties:
757 name:
758 description: name is the name of the Power VS service. Few of the services are IAM - https://cloud.ibm.com/apidocs/iam-identity-token-api ResourceController - https://cloud.ibm.com/apidocs/resource-controller/resource-controller Power Cloud - https://cloud.ibm.com/apidocs/power-cloud
759 pattern: ^[a-z0-9-]+$
760 type: string
761 url:
762 description: url is fully qualified URI with scheme https, that overrides the default generated endpoint for a client. This must be provided and cannot be empty.
763 format: uri
764 pattern: ^https://
765 type: string
766 required:
767 - name
768 - url
769 type: object
770 type: array
771 zone:
772 description: 'zone holds the default zone for the new Power VS resources created by the cluster. Note: Currently only single-zone OCP clusters are supported'
773 type: string
774 type: object
775 x-kubernetes-validations:
776 - message: cannot unset resourceGroup once set
777 rule: '!has(oldSelf.resourceGroup) || has(self.resourceGroup)'
778 type:
779 description: "type is the underlying infrastructure provider for the cluster. This value controls whether infrastructure automation such as service load balancers, dynamic volume provisioning, machine creation and deletion, and other integrations are enabled. If None, no infrastructure automation is enabled. Allowed values are \"AWS\", \"Azure\", \"BareMetal\", \"GCP\", \"Libvirt\", \"OpenStack\", \"VSphere\", \"oVirt\", \"EquinixMetal\", \"PowerVS\", \"AlibabaCloud\", \"Nutanix\" and \"None\". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform. \n This value will be synced with to the `status.platform` and `status.platformStatus.type`. Currently this value cannot be changed once set."
780 enum:
781 - ""
782 - AWS
783 - Azure
784 - BareMetal
785 - GCP
786 - Libvirt
787 - OpenStack
788 - None
789 - VSphere
790 - oVirt
791 - IBMCloud
792 - KubeVirt
793 - EquinixMetal
794 - PowerVS
795 - AlibabaCloud
796 - Nutanix
797 - External
798 type: string
799 vsphere:
800 description: VSphere contains settings specific to the VSphere infrastructure provider.
801 properties:
802 apiServerInternalIP:
803 description: "apiServerInternalIP is an IP address to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. It is the IP that the Infrastructure.status.apiServerInternalURI points to. It is the IP for a self-hosted load balancer in front of the API servers. \n Deprecated: Use APIServerInternalIPs instead."
804 type: string
805 apiServerInternalIPs:
806 description: apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IPs otherwise only one.
807 format: ip
808 items:
809 type: string
810 maxItems: 2
811 type: array
812 ingressIP:
813 description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target of a wildcard DNS record used to resolve default route host names. \n Deprecated: Use IngressIPs instead."
814 type: string
815 ingressIPs:
816 description: ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IPs otherwise only one.
817 format: ip
818 items:
819 type: string
820 maxItems: 2
821 type: array
822 nodeDNSIP:
823 description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS operator, `NodeDNSIP` provides name resolution for the nodes themselves. There is no DNS-as-a-service for vSphere deployments. In order to minimize necessary changes to the datacenter DNS, a DNS service is hosted as a static pod to serve those hostnames to the nodes in the cluster.
824 type: string
825 type: object
826 type: object
827 type: object
828 required:
829 - spec
830 type: object
831 served: true
832 storage: true
833 subresources:
834 status: {}
View as plain text