From 355273add5a9dec35bba9f8675d32774ff082dca Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Mon, 2 Mar 2026 23:59:41 +0000 Subject: [PATCH] fix: preserve kube-vip mount path and only swap hostPath to super-admin The previous replacement changed both mountPath and hostPath, causing kube-vip to lose its expected in-container kubeconfig path and exit. Keep mountPath at /etc/kubernetes/admin.conf, swap only hostPath during bootstrap, and enable kube-vip debug log level. --- nixos/kubeadm/modules/k8s-common.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nixos/kubeadm/modules/k8s-common.nix b/nixos/kubeadm/modules/k8s-common.nix index 99c9e17..9e4256d 100644 --- a/nixos/kubeadm/modules/k8s-common.nix +++ b/nixos/kubeadm/modules/k8s-common.nix @@ -184,6 +184,7 @@ in echo "==> Creating kube-vip static pod manifest" ctr image pull "${kubeVipImage}" ctr run --rm --net-host "${kubeVipImage}" kube-vip-manifest /kube-vip manifest pod \ + --log -4 \ --interface "$iface" \ --address "$vip" \ --controlplane \ @@ -192,7 +193,9 @@ in # kube-vip bootstrap workaround for Kubernetes >=1.29. # During early kubeadm phases, super-admin.conf is available before admin.conf is fully usable. - sed -i 's#/etc/kubernetes/admin.conf#/etc/kubernetes/super-admin.conf#g' /etc/kubernetes/manifests/kube-vip.yaml || true + sed -i 's#path: /etc/kubernetes/admin.conf#path: /etc/kubernetes/super-admin.conf#' /etc/kubernetes/manifests/kube-vip.yaml || true + echo "==> kube-vip manifest kubeconfig mount" + grep -E 'mountPath:|path:' /etc/kubernetes/manifests/kube-vip.yaml | grep -E 'kubernetes/(admin|super-admin)\.conf' || true env -i PATH=/run/current-system/sw/bin:/usr/bin:/bin kubeadm init \ --config /tmp/kubeadm/init-config.yaml \ @@ -250,7 +253,7 @@ in done # Switch kube-vip to normal admin.conf after bootstrap finishes. - sed -i 's#/etc/kubernetes/super-admin.conf#/etc/kubernetes/admin.conf#g' /etc/kubernetes/manifests/kube-vip.yaml || true + sed -i 's#path: /etc/kubernetes/super-admin.conf#path: /etc/kubernetes/admin.conf#' /etc/kubernetes/manifests/kube-vip.yaml || true mkdir -p /root/.kube cp /etc/kubernetes/admin.conf /root/.kube/config @@ -293,6 +296,7 @@ in mkdir -p /etc/kubernetes/manifests ctr image pull "${kubeVipImage}" ctr run --rm --net-host "${kubeVipImage}" kube-vip /kube-vip manifest pod \ + --log -4 \ --interface "$iface" \ --address "$vip" \ --controlplane \