github.com/k8snetworkplumbingwg/sriov-network-operator@v1.2.1-0.20240408194816-2d2e5a45d453/test/util/crds/config.openshift.io_infrastructures_crd.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 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 name: infrastructures.config.openshift.io 10 spec: 11 group: config.openshift.io 12 names: 13 kind: Infrastructure 14 listKind: InfrastructureList 15 plural: infrastructures 16 singular: infrastructure 17 scope: Cluster 18 versions: 19 - name: v1 20 schema: 21 openAPIV3Schema: 22 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)." 23 type: object 24 required: 25 - spec 26 properties: 27 apiVersion: 28 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' 29 type: string 30 kind: 31 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' 32 type: string 33 metadata: 34 type: object 35 spec: 36 description: spec holds user settable values for configuration 37 type: object 38 properties: 39 cloudConfig: 40 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." 41 type: object 42 properties: 43 key: 44 description: Key allows pointing to a specific key/value inside of the configmap. This is useful for logical file references. 45 type: string 46 name: 47 type: string 48 platformSpec: 49 description: platformSpec holds desired information specific to the underlying infrastructure provider. 50 type: object 51 properties: 52 alibabaCloud: 53 description: AlibabaCloud contains settings specific to the Alibaba Cloud infrastructure provider. 54 type: object 55 aws: 56 description: AWS contains settings specific to the Amazon Web Services infrastructure provider. 57 type: object 58 properties: 59 serviceEndpoints: 60 description: serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service. 61 type: array 62 items: 63 description: AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services. 64 type: object 65 properties: 66 name: 67 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. 68 type: string 69 pattern: ^[a-z0-9-]+$ 70 url: 71 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. 72 type: string 73 pattern: ^https:// 74 azure: 75 description: Azure contains settings specific to the Azure infrastructure provider. 76 type: object 77 baremetal: 78 description: BareMetal contains settings specific to the BareMetal platform. 79 type: object 80 equinixMetal: 81 description: EquinixMetal contains settings specific to the Equinix Metal infrastructure provider. 82 type: object 83 gcp: 84 description: GCP contains settings specific to the Google Cloud Platform infrastructure provider. 85 type: object 86 ibmcloud: 87 description: IBMCloud contains settings specific to the IBMCloud infrastructure provider. 88 type: object 89 kubevirt: 90 description: Kubevirt contains settings specific to the kubevirt infrastructure provider. 91 type: object 92 openstack: 93 description: OpenStack contains settings specific to the OpenStack infrastructure provider. 94 type: object 95 ovirt: 96 description: Ovirt contains settings specific to the oVirt infrastructure provider. 97 type: object 98 powervs: 99 description: PowerVS contains settings specific to the IBM Power Systems Virtual Servers infrastructure provider. 100 type: object 101 properties: 102 serviceEndpoints: 103 description: serviceEndpoints is a list of custom endpoints which will override the default service endpoints of a Power VS service. 104 type: array 105 items: 106 description: PowervsServiceEndpoint stores the configuration of a custom url to override existing defaults of PowerVS Services. 107 type: object 108 required: 109 - name 110 - url 111 properties: 112 name: 113 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 114 type: string 115 pattern: ^[a-z0-9-]+$ 116 url: 117 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. 118 type: string 119 format: uri 120 pattern: ^https:// 121 x-kubernetes-list-map-keys: 122 - name 123 x-kubernetes-list-type: map 124 type: 125 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" and "None". Individual components may not support all platforms, and must handle unrecognized platforms as None if they do not support that platform. 126 type: string 127 enum: 128 - "" 129 - AWS 130 - Azure 131 - BareMetal 132 - GCP 133 - Libvirt 134 - OpenStack 135 - None 136 - VSphere 137 - oVirt 138 - IBMCloud 139 - KubeVirt 140 - EquinixMetal 141 - PowerVS 142 - AlibabaCloud 143 vsphere: 144 description: VSphere contains settings specific to the VSphere infrastructure provider. 145 type: object 146 status: 147 description: status holds observed values from the cluster. They may not be overridden. 148 type: object 149 properties: 150 apiServerInternalURI: 151 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. 152 type: string 153 apiServerURL: 154 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. 155 type: string 156 controlPlaneTopology: 157 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. 158 type: string 159 default: HighlyAvailable 160 enum: 161 - HighlyAvailable 162 - SingleReplica 163 - External 164 etcdDiscoveryDomain: 165 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.' 166 type: string 167 infrastructureName: 168 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. 169 type: string 170 infrastructureTopology: 171 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.' 172 type: string 173 default: HighlyAvailable 174 enum: 175 - HighlyAvailable 176 - SingleReplica 177 platform: 178 description: "platform is the underlying infrastructure provider for the cluster. \n Deprecated: Use platformStatus.type instead." 179 type: string 180 enum: 181 - "" 182 - AWS 183 - Azure 184 - BareMetal 185 - GCP 186 - Libvirt 187 - OpenStack 188 - None 189 - VSphere 190 - oVirt 191 - IBMCloud 192 - KubeVirt 193 - EquinixMetal 194 - PowerVS 195 - AlibabaCloud 196 platformStatus: 197 description: platformStatus holds status information specific to the underlying infrastructure provider. 198 type: object 199 properties: 200 alibabaCloud: 201 description: AlibabaCloud contains settings specific to the Alibaba Cloud infrastructure provider. 202 type: object 203 required: 204 - region 205 properties: 206 region: 207 description: region specifies the region for Alibaba Cloud resources created for the cluster. 208 type: string 209 pattern: ^[0-9A-Za-z-]+$ 210 resourceGroupID: 211 description: resourceGroupID is the ID of the resource group for the cluster. 212 type: string 213 pattern: ^(rg-[0-9A-Za-z]+)?$ 214 resourceTags: 215 description: resourceTags is a list of additional tags to apply to Alibaba Cloud resources created for the cluster. 216 type: array 217 maxItems: 20 218 items: 219 description: AlibabaCloudResourceTag is the set of tags to add to apply to resources. 220 type: object 221 required: 222 - key 223 - value 224 properties: 225 key: 226 description: key is the key of the tag. 227 type: string 228 maxLength: 128 229 minLength: 1 230 value: 231 description: value is the value of the tag. 232 type: string 233 maxLength: 128 234 minLength: 1 235 x-kubernetes-list-map-keys: 236 - key 237 x-kubernetes-list-type: map 238 aws: 239 description: AWS contains settings specific to the Amazon Web Services infrastructure provider. 240 type: object 241 properties: 242 region: 243 description: region holds the default AWS region for new AWS resources created by the cluster. 244 type: string 245 resourceTags: 246 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. 247 type: array 248 maxItems: 25 249 items: 250 description: AWSResourceTag is a tag to apply to AWS resources created for the cluster. 251 type: object 252 required: 253 - key 254 - value 255 properties: 256 key: 257 description: key is the key of the tag 258 type: string 259 maxLength: 128 260 minLength: 1 261 pattern: ^[0-9A-Za-z_.:/=+-@]+$ 262 value: 263 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. 264 type: string 265 maxLength: 256 266 minLength: 1 267 pattern: ^[0-9A-Za-z_.:/=+-@]+$ 268 serviceEndpoints: 269 description: ServiceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service. 270 type: array 271 items: 272 description: AWSServiceEndpoint store the configuration of a custom url to override existing defaults of AWS Services. 273 type: object 274 properties: 275 name: 276 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. 277 type: string 278 pattern: ^[a-z0-9-]+$ 279 url: 280 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. 281 type: string 282 pattern: ^https:// 283 azure: 284 description: Azure contains settings specific to the Azure infrastructure provider. 285 type: object 286 properties: 287 armEndpoint: 288 description: armEndpoint specifies a URL to use for resource management in non-soverign clouds such as Azure Stack. 289 type: string 290 cloudName: 291 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`. 292 type: string 293 enum: 294 - "" 295 - AzurePublicCloud 296 - AzureUSGovernmentCloud 297 - AzureChinaCloud 298 - AzureGermanCloud 299 - AzureStackCloud 300 networkResourceGroupName: 301 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. 302 type: string 303 resourceGroupName: 304 description: resourceGroupName is the Resource Group for new Azure resources created for the cluster. 305 type: string 306 baremetal: 307 description: BareMetal contains settings specific to the BareMetal platform. 308 type: object 309 properties: 310 apiServerInternalIP: 311 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. 312 type: string 313 ingressIP: 314 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. 315 type: string 316 nodeDNSIP: 317 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. 318 type: string 319 equinixMetal: 320 description: EquinixMetal contains settings specific to the Equinix Metal infrastructure provider. 321 type: object 322 properties: 323 apiServerInternalIP: 324 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. 325 type: string 326 ingressIP: 327 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. 328 type: string 329 gcp: 330 description: GCP contains settings specific to the Google Cloud Platform infrastructure provider. 331 type: object 332 properties: 333 projectID: 334 description: resourceGroupName is the Project ID for new GCP resources created for the cluster. 335 type: string 336 region: 337 description: region holds the region for new GCP resources created for the cluster. 338 type: string 339 ibmcloud: 340 description: IBMCloud contains settings specific to the IBMCloud infrastructure provider. 341 type: object 342 properties: 343 cisInstanceCRN: 344 description: CISInstanceCRN is the CRN of the Cloud Internet Services instance managing the DNS zone for the cluster's base domain 345 type: string 346 location: 347 description: Location is where the cluster has been deployed 348 type: string 349 providerType: 350 description: ProviderType indicates the type of cluster that was created 351 type: string 352 resourceGroupName: 353 description: ResourceGroupName is the Resource Group for new IBMCloud resources created for the cluster. 354 type: string 355 kubevirt: 356 description: Kubevirt contains settings specific to the kubevirt infrastructure provider. 357 type: object 358 properties: 359 apiServerInternalIP: 360 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. 361 type: string 362 ingressIP: 363 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. 364 type: string 365 openstack: 366 description: OpenStack contains settings specific to the OpenStack infrastructure provider. 367 type: object 368 properties: 369 apiServerInternalIP: 370 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. 371 type: string 372 cloudName: 373 description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). 374 type: string 375 ingressIP: 376 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. 377 type: string 378 nodeDNSIP: 379 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. 380 type: string 381 ovirt: 382 description: Ovirt contains settings specific to the oVirt infrastructure provider. 383 type: object 384 properties: 385 apiServerInternalIP: 386 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. 387 type: string 388 ingressIP: 389 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. 390 type: string 391 nodeDNSIP: 392 description: 'deprecated: as of 4.6, this field is no longer set or honored. It will be removed in a future release.' 393 type: string 394 powervs: 395 description: PowerVS contains settings specific to the Power Systems Virtual Servers infrastructure provider. 396 type: object 397 properties: 398 cisInstanceCRN: 399 description: CISInstanceCRN is the CRN of the Cloud Internet Services instance managing the DNS zone for the cluster's base domain 400 type: string 401 region: 402 description: region holds the default Power VS region for new Power VS resources created by the cluster. 403 type: string 404 serviceEndpoints: 405 description: serviceEndpoints is a list of custom endpoints which will override the default service endpoints of a Power VS service. 406 type: array 407 items: 408 description: PowervsServiceEndpoint stores the configuration of a custom url to override existing defaults of PowerVS Services. 409 type: object 410 required: 411 - name 412 - url 413 properties: 414 name: 415 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 416 type: string 417 pattern: ^[a-z0-9-]+$ 418 url: 419 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. 420 type: string 421 format: uri 422 pattern: ^https:// 423 zone: 424 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' 425 type: string 426 type: 427 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\" 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." 428 type: string 429 enum: 430 - "" 431 - AWS 432 - Azure 433 - BareMetal 434 - GCP 435 - Libvirt 436 - OpenStack 437 - None 438 - VSphere 439 - oVirt 440 - IBMCloud 441 - KubeVirt 442 - EquinixMetal 443 - PowerVS 444 - AlibabaCloud 445 vsphere: 446 description: VSphere contains settings specific to the VSphere infrastructure provider. 447 type: object 448 properties: 449 apiServerInternalIP: 450 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. 451 type: string 452 ingressIP: 453 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. 454 type: string 455 nodeDNSIP: 456 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. 457 type: string 458 served: true 459 storage: true 460 subresources: 461 status: {}