You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/book/src/reference/glossary.md
+16-6
Original file line number
Diff line number
Diff line change
@@ -26,9 +26,9 @@ A temporary cluster that is used to provision a Target Management cluster.
26
26
### Bootstrap provider
27
27
28
28
Refers to a [provider](#provider) that implements a solution for the [bootstrap](#bootstrap) process.
29
-
Bootstrap provider's interaction with Cluster API is based on what is defined in the [Cluster API contract](#contract).
29
+
Bootstrap provider's interaction with Cluster API is based on what is defined in the [Cluster API contract](#contract).
30
30
31
-
See [CABPK](#cabpk).
31
+
See [CABPK](#cabpk).
32
32
33
33
# C
34
34
---
@@ -132,6 +132,12 @@ See [core provider](#core-provider)
132
132
133
133
The Cluster API execution model, a set of controllers cooperating in managing the Kubernetes cluster lifecycle.
134
134
135
+
### Cluster Infrastructure
136
+
137
+
or __Kubernetes Cluster Infrastructure__
138
+
139
+
Defines the **infrastructure that supports a Kubernetes cluster**, like e.g. VPC, security groups, load balancers, etc. Please note that in the context of managed Kubernetes some of those components are going to be provided by the corresponding abstraction for a specific Cloud provider (EKS, OKE, AKS etc), and thus Cluster API should not take care of managing a subset or all those components.
140
+
135
141
### Contract
136
142
137
143
Or __Cluster API contract__
@@ -155,7 +161,7 @@ See [KCP](#kcp).
155
161
156
162
### Core provider
157
163
158
-
Refers to a [provider](#provider) that implements Cluster API core controllers; if you
164
+
Refers to a [provider](#provider) that implements Cluster API core controllers; if you
159
165
consider that the first project that must be deployed in a management Cluster is Cluster API itself, it should be clear why
160
166
the Cluster API project is also referred to as the core provider.
161
167
@@ -196,7 +202,7 @@ see [Server](#server)
196
202
197
203
### Infrastructure provider
198
204
199
-
Refers to a [provider](#provider) that implements provisioning of infrastructure/computational resources required by
205
+
Refers to a [provider](#provider) that implements provisioning of infrastructure/computational resources required by
200
206
the Cluster or by Machines (e.g. VMs, networking, etc.).
201
207
Infrastructure provider's interaction with Cluster API is based on what is defined in the [Cluster API contract](#contract).
202
208
@@ -205,7 +211,7 @@ When there is more than one way to obtain resources from the same infrastructure
205
211
206
212
For a complete list of providers see [Provider Implementations](providers.md).
207
213
208
-
### Inline patch
214
+
### Inline patch
209
215
210
216
A [patch](#patch) defined inline in a [ClusterClass](#clusterclass). An alternative to an [external patch](#external-patch).
211
217
@@ -269,6 +275,10 @@ See also: [Server](#server)
269
275
270
276
Perform create, scale, upgrade, or destroy operations on the cluster.
271
277
278
+
### Managed Kubernetes
279
+
280
+
Managed Kubernetes refers to any Kubernetes cluster provisioning and maintenance abstraction, usually exposed as an API, that is natively available in a Cloud provider. For example: [EKS](https://aws.amazon.com/eks/), [OKE](https://www.oracle.com/cloud/cloud-native/container-engine-kubernetes/), [AKS](https://azure.microsoft.com/en-us/products/kubernetes-service), [GKE](https://cloud.google.com/kubernetes-engine), [IBM Cloud Kubernetes Service](https://www.ibm.com/cloud/kubernetes-service), [DOKS](https://www.digitalocean.com/products/kubernetes), and many more throughout the Kubernetes Cloud Native ecosystem.
281
+
272
282
### Managed Topology
273
283
274
284
See [Topology](#topology)
@@ -306,7 +316,7 @@ A generically understood combination of a kernel and system-level userspace inte
306
316
# P
307
317
---
308
318
309
-
### Patch
319
+
### Patch
310
320
311
321
A set of instructions describing modifications to a Kubernetes object. Examples include JSON Patch and JSON Merge Patch.
@@ -97,7 +97,7 @@ Some Cluster API Providers (i.e. Azure with AKS first and then AWS with EKS) hav
97
97
98
98
While working on supporting ClusterClass for EKS in Cluster API Provider AWS (CAPA), it was discovered that the current implementation of EKS within CAPA, where a single resource kind (AWSManagedControlPlane) is used for both ControlPlane and Infrastructure, is incompatible with other parts of CAPI assuming the two objects are different (Reference [issue here](https://github.com/kubernetes-sigs/cluster-api/issues/6126)).
99
99
100
-
Separation of ControlPlane and Infrastructure is expected for the ClusterClass implementation to work correctly. However, after the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes) have been implemented there is the option to supply only the control plane, but you still cannot supply the same resource for both.
100
+
Separation of ControlPlane and Infrastructure is expected for the ClusterClass implementation to work correctly. However, after the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md) have been implemented there is the option to supply only the control plane, but you still cannot supply the same resource for both.
101
101
102
102
The responsibilities between the CAPI control plane and infrastructure are blurred with a managed Kubernetes service like AKS or EKS. For example, when you create a EKS control plane in AWS it also creates infrastructure that CAPI would traditionally view as the responsibility of the cluster “infrastructure provider”.
103
103
@@ -118,7 +118,7 @@ A good example here is the API server load balancer:
118
118
- Enforce the Managed Kubernetes recommendations as a requirement for Cluster API providers when they implement Managed Kubernetes.
119
119
- If providers that have already implemented Managed Kubernetes and would like guidance on if/how they could move to be aligned with the recommendations of this proposal then discussions should be facilitated.
120
120
- Provide advice in this proposal on how to refactor the existing implementations of managed Kubernetes in CAPA & CAPZ.
121
-
- Propose a new architecture or API changes to CAPI for managed Kubernetes. This has been covered by the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes).
121
+
- Propose a new architecture or API changes to CAPI for managed Kubernetes. This has been covered by the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md).
122
122
- Be a concrete design for the GKE implementation in Cluster API Provider GCP (CAPG).
123
123
- Recommend how Managed Kubernetes services would leverage CAPI internally to run their offer.
124
124
@@ -247,7 +247,7 @@ The following section discusses different API implementation options along with
247
247
248
248
#### Option 1: Two kinds with a ControlPlane and a pass-through InfraCluster
249
249
250
-
**This option will be no longer needed when the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes) have been implemented as option 2 can be used for a simpler solution**
250
+
**This option will be no longer needed when the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md) have been implemented as option 2 can be used for a simpler solution**
251
251
252
252
This option introduces 2 new resource kinds:
253
253
@@ -304,7 +304,7 @@ type GCPManagedClusterSpec struct {
304
304
305
305
#### Option 2: Just a ControlPlane kind and no InfraCluster
306
306
307
-
**This option is enabled when the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes) have been implemented.**
307
+
**This option is enabled when the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md) have been implemented.**
308
308
309
309
This option introduces 1 new resource kind:
310
310
@@ -400,7 +400,7 @@ type GCPManagedClusterSpec struct {
400
400
}
401
401
```
402
402
403
-
When the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes) have been implemented there is the option to return the control plane endpoint directly from the ControlPlane instead of passing it via the Infracluster.
403
+
When the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md) have been implemented there is the option to return the control plane endpoint directly from the ControlPlane instead of passing it via the Infracluster.
404
404
405
405
**Pros**
406
406
@@ -429,7 +429,7 @@ The reasons for this recommendation are as follows:
429
429
430
430
If the managed Kubernetes services does not require any base infrastructure to be setup before creating the instance of the service then option 2 (Just a ControlPlane kind (and no InfraCluster) is the recommendation.
431
431
432
-
This recommendation assumes that the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes) have been implemented. Until that point option 1 (Two kinds with a ControlPlane and a pass-through InfraCluster) will have to be used.
432
+
This recommendation assumes that the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md) have been implemented. Until that point option 1 (Two kinds with a ControlPlane and a pass-through InfraCluster) will have to be used.
433
433
434
434
### Existing Managed Kubernetes Implementations
435
435
@@ -484,7 +484,7 @@ Some of the areas of change (this is not an exhaustive list):
484
484
- Update the [Provider contracts documentation](../book/src/developer/providers/contracts.md) to state that the same kind should not be used to satisfy 2 different provider contracts.
485
485
- Update the [Cluster Infrastructure documentation](../book/src/developer/providers/cluster-infrastructure.md) to provide guidance on how to populate the `controlPlaneEndpoint` in the scenario where the control plane creates the api server load balancer. We should include sample code.
486
486
- Update the [Control Plane Controller](../book/src/developer/architecture/controllers/control-plane.md) diagram for managed k8s services case. The Control Plane reconcile needs to start when `InfrastructureReady` is true.
487
-
- Updates based on the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes).
487
+
- Updates based on the changes documented in the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md).
488
488
489
489
## Other Considerations for CAPI
490
490
@@ -606,4 +606,4 @@ As mentioned in the goals section, it is up to providers with existing implement
606
606
-[x] 03/17/2022: Compile a Google Doc following the CAEP template ([link](https://docs.google.com/document/d/1dMN4-KppBkA51sxXPSQhYpqETp2AG_kHzByXTmznxFA/edit?usp=sharing))
607
607
-[x] 04/20/2022: Present proposal at a community meeting
608
608
-[x] 07/27/2022: Move the proposal to a PR in CAPI repo
609
-
-[x] 06/15/2023: Updates as a result of the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-managed-k8s-capi-contract-changes.md) and also updates as a result of the current state of managed k8s in CAPI.
609
+
-[x] 06/15/2023: Updates as a result of the [Contract Changes to Support Managed Kubernetes CAEP](./20230407-flexible-managed-k8s-endpoints.md) and also updates as a result of the current state of managed k8s in CAPI.
0 commit comments