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