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/proposals/202105256-cluster-class-and-managed-topologies.md
+6-33
Original file line number
Diff line number
Diff line change
@@ -98,6 +98,7 @@ This method of provisioning the cluster would act as a single control point for
98
98
99
99
We are fully aware that in order to exploit the potential of ClusterClass and managed topologies, the following class of problems still needs to be addressed:
100
100
-**Lifecycle of the ClusterClass**: Introduce mechanisms for allowing mutation of a ClusterClass, and the continuous reconciliation of the Cluster managed resources.
101
+
-**Upgrade/rollback strategy**: Implement a strategy to upgrade and rollback the managed topologies.
101
102
-**Extensibility/Transformation**: Introduce mechanism for allowing Cluster specific transformations of a ClusterClass (e.g. inject API Endpoint for CAPV, customize machine image by version etc.)
102
103
-**Adoption**: Providing a way to convert existing clusters into managed topologies.
103
104
-**Observability**: Build an SDK and enhance the Cluster object status to surface a summary of the status of managed topology.
@@ -440,8 +441,9 @@ With the introduction of ClusterClass, we are extending the repsonsibility of th
440
441
The proposal calls for the implementation of an infrastructure cluster template to be referenced by the `ClusterClass` object. This is a required field for the `ClusterClass` object. This template would be used to create an infrastructure cluster object. Currently, this responsibility is assumed by the cluster operator/end user.
441
442
442
443
##### For Control plane providers
443
-
A control plane provider should create a template for use of creation for the control plane objects. For instance, the kubeadm control plane provider should introduce the notion of a KubeadmControlPlaneTemplate for use by the cluster controller to create a managed Kubeadm Control plane object. The minimum set of parameters supported by the control plane template are:
444
-
- infrastructure template reference
444
+
Similarly, a control plane provider should also create a template for use of creation for the control plane objects. For instance, the kubeadm control plane provider should introduce the notion of a KubeadmControlPlaneTemplate for use by the cluster controller to create a managed Kubeadm Control plane object.
445
+
446
+
The CAPI Cluster Controller would use this template to instantiate a control plane object for the managed topology. The current CRD contract mandates that the control plane provider supports `replicas` in the `spec` fields. With the introduction of ClusterClass which is responsible for handling the kubernetes version too, the current contract needs to be expanded to include the support for `version` in the `spec` fields.
445
447
446
448
### Risks and Mitigations
447
449
@@ -460,40 +462,11 @@ Existing clusters created without ClusterClass cannot switch over to using Clust
460
462
461
463
### Test Plan [optional]
462
464
463
-
**Note:** *Section not required until targeted at a release.*
464
-
465
-
Consider the following in developing a test plan for this enhancement:
466
-
- Will there be e2e and integration tests, in addition to unit tests?
467
-
- How will it be tested in isolation vs with other components?
468
-
469
-
No need to outline all of the test cases, just the general strategy.
470
-
Anything that would count as tricky in the implementation and anything particularly challenging to test should be called out.
471
-
472
-
All code is expected to have adequate tests (eventually with coverage expectations).
473
-
Please adhere to the [Kubernetes testing guidelines][testing-guidelines] when drafting this test plan.
Clearly define what graduation means by either linking to the [API doc definition](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning),
491
-
or by redefining what graduation means.
492
-
493
-
In general, we try to use the same stages (alpha, beta, GA), regardless how the functionality is accessed.
0 commit comments