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