Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to remove useExperimentalRetryJoin field from KubeadmControlPlaneTemplate #9169

Closed
MaxFedotov opened this issue Aug 11, 2023 · 1 comment · Fixed by #9170 or #9202
Closed

Unable to remove useExperimentalRetryJoin field from KubeadmControlPlaneTemplate #9169

MaxFedotov opened this issue Aug 11, 2023 · 1 comment · Fixed by #9170 or #9202
Labels
kind/bug Categorizes issue or PR as related to a bug. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@MaxFedotov
Copy link
Contributor

MaxFedotov commented Aug 11, 2023

What steps did you take and what happened?

UseExperimentalRetryJoin param in KubeadmConfigSpec is marked as deprecated and is planned to be removed in next releases.

As a part of clusterClass refactoring, I removed useExperimentalRetryJoin field from my KubeadmControlPlaneTemplate for a new clusterClass version.

After updating cluster to use a new clusterClass the following error occurred:

E0811 14:01:32.036524       1 controller.go:329] "Reconciler error" err="error reconciling the Cluster topology: failed to create patch helper for KubeadmControlPlane/gcore-eu-mf-test1-10-bn6kn: server side apply dry-run failed for modified object: admission webhook \"validation.kubeadmcontrolplane.controlplane.cluster.x-k8s.io\" denied the request: KubeadmControlPlane.controlplane.cluster.x-k8s.io \"gcore-eu-mf-test1-10-bn6kn\" is invalid: spec.kubeadmConfigSpec.useExperimentalRetryJoin: Forbidden: cannot be modified" controller="topology/cluster" controllerGroup="cluster.x-k8s.io" controllerKind="Cluster" Cluster="system-clusters/gcore-eu-mf-test1-10" namespace="system-clusters" name="gcore-eu-mf-test1-10" reconcileID=6e10c68c-345b-41ff-861c-5d29add97b6a

What did you expect to happen?

CAPI should allow to drop deprecated useExperimentalRetryJoin from KubeadmConfigTemplate template.

Cluster API version

v1.4.1

Kubernetes version

v1.24.15

Anything else you would like to add?

No response

Label(s) to be applied

/kind bug
/area /provider/control-plane-kubeadm

@k8s-ci-robot k8s-ci-robot added kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Aug 11, 2023
@fabriziopandini
Copy link
Member

/triage accepted

Historical context. In KCP we are incrementally enabling changes to the spec only after checking those changes are not leading to non-functional clusters.
This change seems legit and supportive of the deprecation notice, but in other cases, it will be correct that KCP denies the change acting as a safeguard for the cluster.

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Aug 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
3 participants