Skip to content

fix(kubeadm): call AllowAPIServerToAccessKubeletAPI in BootstrapToken added in k8s v1.36.1 - #1172

Merged
prometherion merged 1 commit into
clastix:masterfrom
s-diez:kubeadm-bootstraptoken
Jun 24, 2026
Merged

prometherion merged 1 commit into
clastix:masterfrom
s-diez:kubeadm-bootstraptoken

Conversation

@s-diez

@s-diez s-diez commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Fixes #1171 except the monitoring permissions.

@netlify

netlify Bot commented Jun 9, 2026

Copy link
Copy Markdown

✅ Deploy Preview for kamaji-documentation canceled.

Name Link
🔨 Latest commit d32b9b4
🔍 Latest deploy log https://app.netlify.com/projects/kamaji-documentation/deploys/6a28571501e02f0008c8af9b

1 similar comment
@netlify

netlify Bot commented Jun 9, 2026

Copy link
Copy Markdown

✅ Deploy Preview for kamaji-documentation canceled.

Name Link
🔨 Latest commit d32b9b4
🔍 Latest deploy log https://app.netlify.com/projects/kamaji-documentation/deploys/6a28571501e02f0008c8af9b

@s-diez s-diez changed the title Call AllowAPIServerToAccessKubeletAPI in BootstrapToken fix(kubeadm): call AllowAPIServerToAccessKubeletAPI in BootstrapToken added in k8s v1.36.1 Jun 24, 2026
@prometherion
prometherion merged commit 0466706 into clastix:master Jun 24, 2026
12 of 13 checks passed
gfariasalves-ionos added a commit to ionos-cloud/kamaji that referenced this pull request Jun 30, 2026
…elf-heal)

The cherry-picked upstream fix (clastix#1172) calls AllowAPIServerToAccessKubeletAPI
inside BootstrapToken(), which only runs when the cluster-info checksum gate in
KubeadmBootstrap opens. cluster-info .Data holds only the control-plane endpoint and
the cluster CA, so the gate does not open on a k8s minor upgrade, and for Kamaji
clusters the operator delegates the kubeadm-resources reconcile to Kamaji (it never
creates this binding itself). Existing Kamaji clusters would therefore stay Forbidden
until a CA rotation / endpoint change.

Reconcile kubeadm:apiserver-kubelet-client unconditionally, before the checksum gate,
via the existing controller-runtime tenant client. GET-first, create-if-absent only:
the binding content is constant and its RoleRef is immutable, so an Update on drift
would wedge the cluster in a 422 loop. No kubeadm phase import (layering).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
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.

Missing ClusterRoleBinding kubeadm:apiserver-kubelet-client since 26.5.5-edge / k8s v1.36.1

2 participants