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: {}