k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/enterprise/kcp/ee.kubermatic.k8c.io_externalclusters.yaml (about)

     1  # This file has been generated by hack/update-codegen.sh, DO NOT EDIT.
     2  
     3  apiVersion: apiextensions.k8s.io/v1
     4  kind: CustomResourceDefinition
     5  metadata:
     6    annotations:
     7      controller-gen.kubebuilder.io/version: v0.12.0
     8    name: externalclusters.ee.kubermatic.k8c.io
     9  spec:
    10    group: ee.kubermatic.k8c.io
    11    names:
    12      kind: ExternalCluster
    13      listKind: ExternalClusterList
    14      plural: externalclusters
    15      singular: externalcluster
    16    scope: Cluster
    17    versions:
    18      - additionalPrinterColumns:
    19          - jsonPath: .spec.humanReadableName
    20            name: HumanReadableName
    21            type: string
    22          - jsonPath: .spec.cloudSpec.providerName
    23            name: Provider
    24            type: string
    25          - jsonPath: .spec.pause
    26            name: Paused
    27            type: boolean
    28          - jsonPath: .status.condition.phase
    29            name: Phase
    30            type: string
    31          - jsonPath: .metadata.creationTimestamp
    32            name: Age
    33            type: date
    34        name: v1
    35        schema:
    36          openAPIV3Schema:
    37            description: ExternalCluster is the object representing an external Kubernetes cluster.
    38            properties:
    39              apiVersion:
    40                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'
    41                type: string
    42              kind:
    43                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'
    44                type: string
    45              metadata:
    46                type: object
    47              spec:
    48                description: Spec describes the desired cluster state.
    49                properties:
    50                  cloudSpec:
    51                    description: CloudSpec contains provider specific fields
    52                    properties:
    53                      aks:
    54                        properties:
    55                          clientID:
    56                            description: 'ClientID: The service principal used to access Azure. Can be read from `credentialsReference` instead.'
    57                            type: string
    58                          clientSecret:
    59                            description: 'ClientSecret: The client secret corresponding to the given service principal. Can be read from `credentialsReference` instead.'
    60                            type: string
    61                          credentialsReference:
    62                            description: CredentialsReference allows referencing a `Secret` resource instead of passing secret data in this spec.
    63                            properties:
    64                              apiVersion:
    65                                description: API version of the referent.
    66                                type: string
    67                              fieldPath:
    68                                description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
    69                                type: string
    70                              key:
    71                                type: string
    72                              kind:
    73                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    74                                type: string
    75                              name:
    76                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
    77                                type: string
    78                              namespace:
    79                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
    80                                type: string
    81                              resourceVersion:
    82                                description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
    83                                type: string
    84                              uid:
    85                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
    86                                type: string
    87                            type: object
    88                            x-kubernetes-map-type: atomic
    89                          location:
    90                            description: 'Location: The geo-location where the resource lives'
    91                            type: string
    92                          name:
    93                            type: string
    94                          resourceGroup:
    95                            description: 'ResourceGroup: The resource group that will be used to look up and create resources for the cluster in. If set to empty string at cluster creation, a new resource group will be created and this field will be updated to the generated resource group''s name.'
    96                            type: string
    97                          subscriptionID:
    98                            description: 'SubscriptionID: The Azure Subscription used for this cluster. Can be read from `credentialsReference` instead.'
    99                            type: string
   100                          tenantID:
   101                            description: 'TenantID: The Azure Active Directory Tenant used for this cluster. Can be read from `credentialsReference` instead.'
   102                            type: string
   103                        required:
   104                          - credentialsReference
   105                          - location
   106                          - name
   107                          - resourceGroup
   108                        type: object
   109                      bringyourown:
   110                        type: object
   111                      eks:
   112                        properties:
   113                          accessKeyID:
   114                            description: 'AccessKeyID: AWS Access key ID Can be read from `credentialsReference` instead.'
   115                            type: string
   116                          assumeRoleARN:
   117                            description: 'AssumeRoleARN defines the ARN for an IAM role that should be assumed when handling resources on AWS. It will be used to acquire temporary security credentials using an STS AssumeRole API operation whenever creating an AWS session. required: false'
   118                            type: string
   119                          assumeRoleExternalID:
   120                            description: 'AssumeRoleExternalID is an arbitrary string that may be needed when calling the STS AssumeRole API operation. Using an external ID can help to prevent the "confused deputy problem". required: false'
   121                            type: string
   122                          credentialsReference:
   123                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   124                            properties:
   125                              apiVersion:
   126                                description: API version of the referent.
   127                                type: string
   128                              fieldPath:
   129                                description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
   130                                type: string
   131                              key:
   132                                type: string
   133                              kind:
   134                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   135                                type: string
   136                              name:
   137                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   138                                type: string
   139                              namespace:
   140                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   141                                type: string
   142                              resourceVersion:
   143                                description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   144                                type: string
   145                              uid:
   146                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   147                                type: string
   148                            type: object
   149                            x-kubernetes-map-type: atomic
   150                          name:
   151                            type: string
   152                          region:
   153                            type: string
   154                          roleArn:
   155                            description: 'ControlPlaneRoleARN: The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to Amazon Web Services API operations on your behalf.'
   156                            type: string
   157                          secretAccessKey:
   158                            description: 'SecretAccessKey: AWS Secret Access Key Can be read from `credentialsReference` instead.'
   159                            type: string
   160                          securityGroupIDs:
   161                            description: 'SecurityGroupIDs: The security groups associated with the cross-account elastic network interfaces that are used to allow communication between your nodes and the Kubernetes control plane.'
   162                            items:
   163                              type: string
   164                            type: array
   165                          subnetIDs:
   166                            description: 'SubnetIDs: The subnets associated with your cluster.'
   167                            items:
   168                              type: string
   169                            type: array
   170                          vpcID:
   171                            description: 'VPCID: The VPC associated with your cluster.'
   172                            type: string
   173                        required:
   174                          - credentialsReference
   175                          - name
   176                          - region
   177                        type: object
   178                      gke:
   179                        properties:
   180                          credentialsReference:
   181                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   182                            properties:
   183                              apiVersion:
   184                                description: API version of the referent.
   185                                type: string
   186                              fieldPath:
   187                                description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
   188                                type: string
   189                              key:
   190                                type: string
   191                              kind:
   192                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   193                                type: string
   194                              name:
   195                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   196                                type: string
   197                              namespace:
   198                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   199                                type: string
   200                              resourceVersion:
   201                                description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   202                                type: string
   203                              uid:
   204                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   205                                type: string
   206                            type: object
   207                            x-kubernetes-map-type: atomic
   208                          name:
   209                            type: string
   210                          serviceAccount:
   211                            description: 'ServiceAccount: The Google Cloud Platform Service Account. Can be read from `credentialsReference` instead.'
   212                            type: string
   213                          zone:
   214                            description: 'Zone: The name of the Google Compute Engine zone (https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.'
   215                            type: string
   216                        required:
   217                          - credentialsReference
   218                          - name
   219                          - zone
   220                        type: object
   221                      kubeone:
   222                        properties:
   223                          credentialsReference:
   224                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   225                            properties:
   226                              apiVersion:
   227                                description: API version of the referent.
   228                                type: string
   229                              fieldPath:
   230                                description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
   231                                type: string
   232                              key:
   233                                type: string
   234                              kind:
   235                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   236                                type: string
   237                              name:
   238                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   239                                type: string
   240                              namespace:
   241                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   242                                type: string
   243                              resourceVersion:
   244                                description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   245                                type: string
   246                              uid:
   247                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   248                                type: string
   249                            type: object
   250                            x-kubernetes-map-type: atomic
   251                          manifestReference:
   252                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   253                            properties:
   254                              apiVersion:
   255                                description: API version of the referent.
   256                                type: string
   257                              fieldPath:
   258                                description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
   259                                type: string
   260                              key:
   261                                type: string
   262                              kind:
   263                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   264                                type: string
   265                              name:
   266                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   267                                type: string
   268                              namespace:
   269                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   270                                type: string
   271                              resourceVersion:
   272                                description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   273                                type: string
   274                              uid:
   275                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   276                                type: string
   277                            type: object
   278                            x-kubernetes-map-type: atomic
   279                          providerName:
   280                            description: ProviderName is the name of the cloud provider used, one of "aws", "azure", "digitalocean", "gcp", "hetzner", "nutanix", "openstack", "packet", "vsphere" KubeOne natively-supported providers
   281                            type: string
   282                          region:
   283                            description: Region is the cloud provider region in which the cluster resides. This field is used only to display information.
   284                            type: string
   285                          sshReference:
   286                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   287                            properties:
   288                              apiVersion:
   289                                description: API version of the referent.
   290                                type: string
   291                              fieldPath:
   292                                description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
   293                                type: string
   294                              key:
   295                                type: string
   296                              kind:
   297                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   298                                type: string
   299                              name:
   300                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   301                                type: string
   302                              namespace:
   303                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   304                                type: string
   305                              resourceVersion:
   306                                description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   307                                type: string
   308                              uid:
   309                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   310                                type: string
   311                            type: object
   312                            x-kubernetes-map-type: atomic
   313                        required:
   314                          - providerName
   315                        type: object
   316                      providerName:
   317                        enum:
   318                          - aks
   319                          - eks
   320                          - gke
   321                          - bringyourown
   322                          - kubeone
   323                        type: string
   324                    required:
   325                      - providerName
   326                    type: object
   327                  clusterNetwork:
   328                    description: ExternalClusterNetworkingConfig specifies the different networking parameters for a external cluster.
   329                    properties:
   330                      pods:
   331                        description: The network ranges from which POD networks are allocated. It can contain one IPv4 and/or one IPv6 CIDR. If both address families are specified, the first one defines the primary address family.
   332                        properties:
   333                          cidrBlocks:
   334                            items:
   335                              type: string
   336                            type: array
   337                        type: object
   338                      services:
   339                        description: The network ranges from which service VIPs are allocated. It can contain one IPv4 and/or one IPv6 CIDR. If both address families are specified, the first one defines the primary address family.
   340                        properties:
   341                          cidrBlocks:
   342                            items:
   343                              type: string
   344                            type: array
   345                        type: object
   346                    type: object
   347                  containerRuntime:
   348                    description: ContainerRuntime to use, i.e. `docker` or `containerd`.
   349                    type: string
   350                  humanReadableName:
   351                    description: HumanReadableName is the cluster name provided by the user
   352                    type: string
   353                  kubeconfigReference:
   354                    description: KubeconfigReference is reference to cluster Kubeconfig
   355                    properties:
   356                      apiVersion:
   357                        description: API version of the referent.
   358                        type: string
   359                      fieldPath:
   360                        description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
   361                        type: string
   362                      key:
   363                        type: string
   364                      kind:
   365                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   366                        type: string
   367                      name:
   368                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   369                        type: string
   370                      namespace:
   371                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   372                        type: string
   373                      resourceVersion:
   374                        description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   375                        type: string
   376                      uid:
   377                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   378                        type: string
   379                    type: object
   380                    x-kubernetes-map-type: atomic
   381                  pause:
   382                    description: If this is set to true, the cluster will not be reconciled by KKP. This indicates that the user needs to do some action to resolve the pause.
   383                    type: boolean
   384                  pauseReason:
   385                    description: PauseReason is the reason why the cluster is not being managed. This field is for informational purpose only and can be set by a user or a controller to communicate the reason for pausing the cluster.
   386                    type: string
   387                  version:
   388                    description: Version defines the desired version of the control plane.
   389                    type: string
   390                required:
   391                  - cloudSpec
   392                  - humanReadableName
   393                  - pause
   394                  - version
   395                type: object
   396              status:
   397                description: Status contains reconciliation information for the cluster.
   398                properties:
   399                  condition:
   400                    description: Conditions contains conditions an externalcluster is in, its primary use case is status signaling for controller
   401                    properties:
   402                      message:
   403                        description: Human readable message indicating details about last transition.
   404                        type: string
   405                      phase:
   406                        type: string
   407                    required:
   408                      - phase
   409                    type: object
   410                type: object
   411            required:
   412              - spec
   413            type: object
   414        served: true
   415        storage: true
   416        subresources: {}