feat: (IAC-1379) Add Support for K8s 1.29 #117
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes
kubernetes_version
/cluster_version
in the example files and doc to 1.28.7kubectl
version in the Dockerfile to 1.28.7 (currently the latest)Notes:
There was an issue discovered with
kube-vip
and K8s 1.29+. In short kube-vip requiressuper-admin.conf
permissions with Kubernetes 1.29 and without it, we run into issues setting up a new cluster withkubeadm init
.super-admin.conf
was introduced Kubernetes 1.29, and the user within that file is bound to thesystem:masters
RBAC group. In previous kubernetes versions theadmin.conf
user was bound to this RBAC group, but now in 1.29 this user is bound to a new group calledkubeadm:cluster-admins
that hascluster-admin
ClusterRole
access.If you take a look at the 1.29 Urgent Upgrade Notes
from the kubernetes repo this change is described in more detail:
At this point in time,
kube-vip
(even the latest versions) requiressuper-admin.conf
with Kubernetes 1.29 during the initialkubeadm init
phase and will fail without it as described in this GitHub issue here: kube-vip/kube-vip#684. Our PR makes use of a workaround recommended in that GitHub issue where we're temporarily replacing the mounted kube conf file in thekube-vip.yaml
manifest withsuper-admin.conf
manifest before runningkubeadm init
and then immediately replacing it withadmin.conf
after the command is run.We will have to keep using the workaround for 1.29+ until a version of
kube-vip
is released that resolves this issue. After the fix is in place we can remove the workaround and point users to select a version ofkube-vip
with that particular fix for K8s 1.29+ installs.Tests