Skip to content

🌱 Add multiple controlplane class support to v1.11.6#3

Open
Dhairya-Arora01 wants to merge 14 commits intosyself-1.11.6from
dhairya/1-11-cp-classes-1-11-6
Open

🌱 Add multiple controlplane class support to v1.11.6#3
Dhairya-Arora01 wants to merge 14 commits intosyself-1.11.6from
dhairya/1-11-cp-classes-1-11-6

Conversation

@Dhairya-Arora01
Copy link
Copy Markdown

@Dhairya-Arora01 Dhairya-Arora01 commented Apr 20, 2026

What this PR does / why we need it:
This PR involves cherry-picking the merge commit de6901d from the PR #1 to enable multiple control plane classes for CAPI v1.11.6

The changes to the API are made to v1beta2 API type as well.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Validation: Check changes in beta1 and beta2 are aligned:

git diff v1.11.6 -- api/core/v1beta1/cluster_types.go > tmp/cluster-types-beta1.diffgit diff v1.11.6 -- api/core/v1beta2/cluster_types.go > tmp/cluster-types-beta2.diffmeld tmp/cluster-types-beta1.diff  tmp/cluster-types-beta1.diff            
git diff v1.11.6 -- api/core/v1beta1/clusterclass_types.go > tmp/cc_types-beta1.diffgit diff v1.11.6 -- api/core/v1beta2/clusterclass_types.go > tmp/cc_types-beta2.diff      meld tmp/cc_types-beta1.diff tmp/cc_types-beta2.diff           

Comment thread api/core/v1beta1/clusterclass_types.go Outdated
Comment thread api/core/v1beta1/cluster_types.go
Comment thread api/core/v1beta1/clusterclass_types.go Outdated
Comment thread api/core/v1beta1/clusterclass_types.go Outdated
Comment thread api/core/v1beta2/cluster_types.go
Comment thread exp/topology/desiredstate/desired_state.go
Comment thread exp/topology/desiredstate/desired_state.go
Comment thread exp/topology/scope/blueprint.go
Comment thread exp/topology/scope/blueprint.go
Comment thread exp/topology/scope/blueprint.go Outdated
@guettli
Copy link
Copy Markdown

guettli commented Apr 20, 2026

@Dhairya-Arora01

Several places use the old version number. Please check if that is ok:

rg 'v1.10.7'                                       
README.md:69:11:  git tag v1.10.7-syself.8
README.md:74:22:  export RELEASE_TAG=v1.10.7-syself.8
README.md:81:165:  This will create the manifests in the `out/` directory. And push the CAPI controller-image to http://ghcr.io/syself/cluster-api-prod/cluster-api-controller-amd64:v1.10.7-syself.8
docs/book/src/reference/versions.md:357:3:| v1.10.7     | v1.12.4             |
hack/release.sh:7:47:    echo "failed: RELEASE_TAG is not set. Use v1.10.7-syself.XX"
hack/create-capi-op-yaml.sh:13:43:kubectl create configmap capi-core-custom-v1.10.7 -n mgt-system \
hack/create-capi-op-yaml.sh:19:39:    provider.cluster.x-k8s.io/version=v1.10.7 \
hack/create-capi-op-yaml.sh:33:12:  version: v1.10.7

Comment thread internal/controllers/clusterclass/clusterclass_controller.go Outdated
Comment thread internal/controllers/clusterclass/clusterclass_controller.go Outdated
Comment thread internal/controllers/clusterclass/clusterclass_controller.go Outdated
Comment thread internal/controllers/topology/cluster/patches/inline/json_patch_generator.go Outdated
Comment thread internal/controllers/topology/cluster/reconcile_state.go Outdated
Comment thread internal/webhooks/cluster.go Outdated
Comment thread internal/webhooks/clusterclass.go Outdated
Comment thread internal/webhooks/patch_validation.go
@guettli
Copy link
Copy Markdown

guettli commented Apr 20, 2026

@Dhairya-Arora01 we should run tests in CI. I work on a related change.

@Dhairya-Arora01
Copy link
Copy Markdown
Author

@Dhairya-Arora01

Several places use the old version number. Please check if that is ok:

❯ rg 'v1.10.7'                                       
README.md:69:11:  git tag v1.10.7-syself.8
README.md:74:22:  export RELEASE_TAG=v1.10.7-syself.8
README.md:81:165:  This will create the manifests in the `out/` directory. And push the CAPI controller-image to http://ghcr.io/syself/cluster-api-prod/cluster-api-controller-amd64:v1.10.7-syself.8
docs/book/src/reference/versions.md:357:3:| v1.10.7     | v1.12.4             |
hack/release.sh:7:47:    echo "failed: RELEASE_TAG is not set. Use v1.10.7-syself.XX"
hack/create-capi-op-yaml.sh:13:43:kubectl create configmap capi-core-custom-v1.10.7 -n mgt-system \
hack/create-capi-op-yaml.sh:19:39:    provider.cluster.x-k8s.io/version=v1.10.7 \
hack/create-capi-op-yaml.sh:33:12:  version: v1.10.7

Lets change this when we actually make releases in order to test.

Dhairya-Arora01 and others added 7 commits April 20, 2026 18:48
* enable multiple control plane classes

- ClusterClass now supports multiple classes for control-plane - similar
to workers.
- Cluster topology now includes a field "class" for control-plane which
references to the control.

Signed-off-by: Dhairya Arora <dhairya.arora@syself.com>
@Dhairya-Arora01 Dhairya-Arora01 force-pushed the dhairya/1-11-cp-classes-1-11-6 branch from 8df2656 to 068c5e8 Compare April 20, 2026 13:19
@Dhairya-Arora01 Dhairya-Arora01 requested a review from guettli April 20, 2026 13:42
Comment thread exp/topology/scope/blueprint.go Outdated
@guettli guettli self-requested a review April 20, 2026 15:25
Copy link
Copy Markdown

@guettli guettli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that we have a CI, I think we should add some tests for our changes.

@guettli guettli self-requested a review April 21, 2026 07:22
Copy link
Copy Markdown

@guettli guettli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm. Instead of unit-tests, we will do intensive manual testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants