k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/enterprise/seed/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.kubermatic.k8c.io
     9  spec:
    10    group: kubermatic.k8c.io
    11    names:
    12      categories:
    13        - kkpee
    14      kind: ExternalCluster
    15      listKind: ExternalClusterList
    16      plural: externalclusters
    17      singular: externalcluster
    18    scope: Namespaced
    19    versions:
    20      - additionalPrinterColumns:
    21          - jsonPath: .spec.humanReadableName
    22            name: HumanReadableName
    23            type: string
    24          - jsonPath: .spec.cloudSpec.providerName
    25            name: Provider
    26            type: string
    27          - jsonPath: .spec.pause
    28            name: Paused
    29            type: boolean
    30          - jsonPath: .status.condition.phase
    31            name: Phase
    32            type: string
    33          - jsonPath: .metadata.creationTimestamp
    34            name: Age
    35            type: date
    36        name: v1
    37        schema:
    38          openAPIV3Schema:
    39            description: "ExternalCluster is the object representing an external Kubernetes cluster. \n Note that this resource is part of a KKP Enterprise feature and is not used in the Community Edition."
    40            properties:
    41              apiVersion:
    42                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'
    43                type: string
    44              kind:
    45                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'
    46                type: string
    47              metadata:
    48                type: object
    49              spec:
    50                description: Spec describes the desired cluster state.
    51                properties:
    52                  cloudSpec:
    53                    description: CloudSpec contains provider specific fields
    54                    properties:
    55                      aks:
    56                        properties:
    57                          clientID:
    58                            description: 'ClientID: The service principal used to access Azure. Can be read from `credentialsReference` instead.'
    59                            type: string
    60                          clientSecret:
    61                            description: 'ClientSecret: The client secret corresponding to the given service principal. Can be read from `credentialsReference` instead.'
    62                            type: string
    63                          credentialsReference:
    64                            description: CredentialsReference allows referencing a `Secret` resource instead of passing secret data in this spec.
    65                            properties:
    66                              apiVersion:
    67                                description: API version of the referent.
    68                                type: string
    69                              fieldPath:
    70                                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.'
    71                                type: string
    72                              key:
    73                                type: string
    74                              kind:
    75                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    76                                type: string
    77                              name:
    78                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
    79                                type: string
    80                              namespace:
    81                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
    82                                type: string
    83                              resourceVersion:
    84                                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'
    85                                type: string
    86                              uid:
    87                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
    88                                type: string
    89                            type: object
    90                            x-kubernetes-map-type: atomic
    91                          location:
    92                            description: 'Location: The geo-location where the resource lives'
    93                            type: string
    94                          name:
    95                            type: string
    96                          resourceGroup:
    97                            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.'
    98                            type: string
    99                          subscriptionID:
   100                            description: 'SubscriptionID: The Azure Subscription used for this cluster. Can be read from `credentialsReference` instead.'
   101                            type: string
   102                          tenantID:
   103                            description: 'TenantID: The Azure Active Directory Tenant used for this cluster. Can be read from `credentialsReference` instead.'
   104                            type: string
   105                        required:
   106                          - credentialsReference
   107                          - location
   108                          - name
   109                          - resourceGroup
   110                        type: object
   111                      bringyourown:
   112                        type: object
   113                      eks:
   114                        properties:
   115                          accessKeyID:
   116                            description: 'AccessKeyID: AWS Access key ID Can be read from `credentialsReference` instead.'
   117                            type: string
   118                          assumeRoleARN:
   119                            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'
   120                            type: string
   121                          assumeRoleExternalID:
   122                            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'
   123                            type: string
   124                          credentialsReference:
   125                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   126                            properties:
   127                              apiVersion:
   128                                description: API version of the referent.
   129                                type: string
   130                              fieldPath:
   131                                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.'
   132                                type: string
   133                              key:
   134                                type: string
   135                              kind:
   136                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   137                                type: string
   138                              name:
   139                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   140                                type: string
   141                              namespace:
   142                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   143                                type: string
   144                              resourceVersion:
   145                                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'
   146                                type: string
   147                              uid:
   148                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   149                                type: string
   150                            type: object
   151                            x-kubernetes-map-type: atomic
   152                          name:
   153                            type: string
   154                          region:
   155                            type: string
   156                          roleArn:
   157                            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.'
   158                            type: string
   159                          secretAccessKey:
   160                            description: 'SecretAccessKey: AWS Secret Access Key Can be read from `credentialsReference` instead.'
   161                            type: string
   162                          securityGroupIDs:
   163                            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.'
   164                            items:
   165                              type: string
   166                            type: array
   167                          subnetIDs:
   168                            description: 'SubnetIDs: The subnets associated with your cluster.'
   169                            items:
   170                              type: string
   171                            type: array
   172                          vpcID:
   173                            description: 'VPCID: The VPC associated with your cluster.'
   174                            type: string
   175                        required:
   176                          - credentialsReference
   177                          - name
   178                          - region
   179                        type: object
   180                      gke:
   181                        properties:
   182                          credentialsReference:
   183                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   184                            properties:
   185                              apiVersion:
   186                                description: API version of the referent.
   187                                type: string
   188                              fieldPath:
   189                                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.'
   190                                type: string
   191                              key:
   192                                type: string
   193                              kind:
   194                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   195                                type: string
   196                              name:
   197                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   198                                type: string
   199                              namespace:
   200                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   201                                type: string
   202                              resourceVersion:
   203                                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'
   204                                type: string
   205                              uid:
   206                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   207                                type: string
   208                            type: object
   209                            x-kubernetes-map-type: atomic
   210                          name:
   211                            type: string
   212                          serviceAccount:
   213                            description: 'ServiceAccount: The Google Cloud Platform Service Account. Can be read from `credentialsReference` instead.'
   214                            type: string
   215                          zone:
   216                            description: 'Zone: The name of the Google Compute Engine zone (https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.'
   217                            type: string
   218                        required:
   219                          - credentialsReference
   220                          - name
   221                          - zone
   222                        type: object
   223                      kubeone:
   224                        properties:
   225                          credentialsReference:
   226                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   227                            properties:
   228                              apiVersion:
   229                                description: API version of the referent.
   230                                type: string
   231                              fieldPath:
   232                                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.'
   233                                type: string
   234                              key:
   235                                type: string
   236                              kind:
   237                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   238                                type: string
   239                              name:
   240                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   241                                type: string
   242                              namespace:
   243                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   244                                type: string
   245                              resourceVersion:
   246                                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'
   247                                type: string
   248                              uid:
   249                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   250                                type: string
   251                            type: object
   252                            x-kubernetes-map-type: atomic
   253                          manifestReference:
   254                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   255                            properties:
   256                              apiVersion:
   257                                description: API version of the referent.
   258                                type: string
   259                              fieldPath:
   260                                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.'
   261                                type: string
   262                              key:
   263                                type: string
   264                              kind:
   265                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   266                                type: string
   267                              name:
   268                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   269                                type: string
   270                              namespace:
   271                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   272                                type: string
   273                              resourceVersion:
   274                                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'
   275                                type: string
   276                              uid:
   277                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   278                                type: string
   279                            type: object
   280                            x-kubernetes-map-type: atomic
   281                          providerName:
   282                            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
   283                            type: string
   284                          region:
   285                            description: Region is the cloud provider region in which the cluster resides. This field is used only to display information.
   286                            type: string
   287                          sshReference:
   288                            description: GlobalObjectKeySelector is needed as we can not use v1.SecretKeySelector because it is not cross namespace.
   289                            properties:
   290                              apiVersion:
   291                                description: API version of the referent.
   292                                type: string
   293                              fieldPath:
   294                                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.'
   295                                type: string
   296                              key:
   297                                type: string
   298                              kind:
   299                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   300                                type: string
   301                              name:
   302                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   303                                type: string
   304                              namespace:
   305                                description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   306                                type: string
   307                              resourceVersion:
   308                                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'
   309                                type: string
   310                              uid:
   311                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   312                                type: string
   313                            type: object
   314                            x-kubernetes-map-type: atomic
   315                        required:
   316                          - providerName
   317                        type: object
   318                      providerName:
   319                        enum:
   320                          - aks
   321                          - eks
   322                          - gke
   323                          - bringyourown
   324                          - kubeone
   325                        type: string
   326                    required:
   327                      - providerName
   328                    type: object
   329                  clusterNetwork:
   330                    description: ExternalClusterNetworkingConfig specifies the different networking parameters for a external cluster.
   331                    properties:
   332                      pods:
   333                        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.
   334                        properties:
   335                          cidrBlocks:
   336                            items:
   337                              type: string
   338                            type: array
   339                        type: object
   340                      services:
   341                        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.
   342                        properties:
   343                          cidrBlocks:
   344                            items:
   345                              type: string
   346                            type: array
   347                        type: object
   348                    type: object
   349                  containerRuntime:
   350                    description: ContainerRuntime to use, i.e. `docker` or `containerd`.
   351                    type: string
   352                  humanReadableName:
   353                    description: HumanReadableName is the cluster name provided by the user
   354                    type: string
   355                  kubeconfigReference:
   356                    description: KubeconfigReference is reference to cluster Kubeconfig
   357                    properties:
   358                      apiVersion:
   359                        description: API version of the referent.
   360                        type: string
   361                      fieldPath:
   362                        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.'
   363                        type: string
   364                      key:
   365                        type: string
   366                      kind:
   367                        description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   368                        type: string
   369                      name:
   370                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   371                        type: string
   372                      namespace:
   373                        description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   374                        type: string
   375                      resourceVersion:
   376                        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'
   377                        type: string
   378                      uid:
   379                        description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   380                        type: string
   381                    type: object
   382                    x-kubernetes-map-type: atomic
   383                  pause:
   384                    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.
   385                    type: boolean
   386                  pauseReason:
   387                    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.
   388                    type: string
   389                  version:
   390                    description: Version defines the desired version of the control plane.
   391                    type: string
   392                required:
   393                  - cloudSpec
   394                  - humanReadableName
   395                  - pause
   396                  - version
   397                type: object
   398              status:
   399                description: Status contains reconciliation information for the cluster.
   400                properties:
   401                  condition:
   402                    description: Conditions contains conditions an externalcluster is in, its primary use case is status signaling for controller
   403                    properties:
   404                      message:
   405                        description: Human readable message indicating details about last transition.
   406                        type: string
   407                      phase:
   408                        type: string
   409                    required:
   410                      - phase
   411                    type: object
   412                type: object
   413            required:
   414              - spec
   415            type: object
   416        served: true
   417        storage: true
   418        subresources:
   419          status: {}