From f9e7356f94a0868ee86c77cf7c7f32f77411a0be Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Sun, 1 Mar 2026 21:56:49 +0000 Subject: [PATCH] fix: make cp-1 init detection and join token generation robust --- nixos/kubeadm/scripts/rebuild-and-bootstrap.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh b/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh index 0d39956..f815c69 100755 --- a/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh +++ b/nixos/kubeadm/scripts/rebuild-and-bootstrap.sh @@ -145,8 +145,12 @@ cluster_has_node() { remote "$PRIMARY_CP_IP" "sudo kubectl --kubeconfig /etc/kubernetes/admin.conf get node $node_name >/dev/null 2>&1" } +has_admin_conf() { + remote "$PRIMARY_CP_IP" "test -f /etc/kubernetes/admin.conf" +} + cluster_ready() { - remote "$PRIMARY_CP_IP" "test -f /etc/kubernetes/admin.conf && sudo kubectl --kubeconfig /etc/kubernetes/admin.conf get nodes >/dev/null 2>&1" + remote "$PRIMARY_CP_IP" "test -f /etc/kubernetes/admin.conf && sudo kubectl --kubeconfig /etc/kubernetes/admin.conf get --raw=/readyz >/dev/null 2>&1" } rebuild_node() { @@ -272,8 +276,13 @@ else fi echo "==> Building kubeadm join commands" -JOIN_CMD="$(remote "$PRIMARY_CP_IP" "sudo kubeadm token create --print-join-command")" -CERT_KEY="$(remote "$PRIMARY_CP_IP" "sudo kubeadm init phase upload-certs --upload-certs | tail -n 1")" +if ! has_admin_conf; then + echo "==> admin.conf missing on $PRIMARY_CONTROL_PLANE; running kubeadm init" + remote "$PRIMARY_CP_IP" "sudo th-kubeadm-init" +fi + +JOIN_CMD="$(remote "$PRIMARY_CP_IP" "sudo KUBECONFIG=/etc/kubernetes/admin.conf kubeadm token create --print-join-command")" +CERT_KEY="$(remote "$PRIMARY_CP_IP" "sudo KUBECONFIG=/etc/kubernetes/admin.conf kubeadm init phase upload-certs --upload-certs | tail -n 1")" CP_JOIN_CMD="$JOIN_CMD --control-plane --certificate-key $CERT_KEY" join_control_plane() {