From 0cc0de2aea59060135bfad513708a4f991399be3 Mon Sep 17 00:00:00 2001 From: MichaelFisher1997 Date: Wed, 4 Mar 2026 01:17:44 +0000 Subject: [PATCH] fix: pin kubeadm init node identity to flake hostname Set hostname before init and inject nodeRegistration.name into kubeadm InitConfiguration so cp-1 registers as the expected node (cp-1) instead of inheriting the template hostname. This fixes upload-config/kubelet failures caused by node lookup for k8s-base-template. --- nixos/kubeadm/modules/k8s-common.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nixos/kubeadm/modules/k8s-common.nix b/nixos/kubeadm/modules/k8s-common.nix index 296ac0d..3fd9809 100644 --- a/nixos/kubeadm/modules/k8s-common.nix +++ b/nixos/kubeadm/modules/k8s-common.nix @@ -116,6 +116,7 @@ in pod_subnet="${config.terrahome.kubeadm.podSubnet}" service_subnet="${config.terrahome.kubeadm.serviceSubnet}" domain="${config.terrahome.kubeadm.clusterDomain}" + node_name="${config.networking.hostName}" local_ip_cidr=$(ip -4 -o addr show dev "$iface" | awk 'NR==1 {print $4}') if [ -z "''${local_ip_cidr:-}" ]; then @@ -128,6 +129,9 @@ in echo "Using control-plane endpoint: $vip:6443" echo "Using kube-vip interface: $iface" + echo "Using kubeadm node name: $node_name" + + hostnamectl set-hostname "$node_name" || true rm -f /var/lib/kubelet/config.yaml /var/lib/kubelet/kubeadm-flags.env @@ -155,6 +159,7 @@ in apiVersion: kubeadm.k8s.io/v1beta4 kind: InitConfiguration nodeRegistration: + name: "KUBEADM_NODE_NAME" criSocket: unix:///run/containerd/containerd.sock --- apiVersion: kubeadm.k8s.io/v1beta4 @@ -178,6 +183,7 @@ in sed -i "s|KUBEADM_POD_SUBNET|$pod_subnet|g" /tmp/kubeadm/init-config.yaml sed -i "s|KUBEADM_SERVICE_SUBNET|$service_subnet|g" /tmp/kubeadm/init-config.yaml sed -i "s|KUBEADM_DNS_DOMAIN|$domain|g" /tmp/kubeadm/init-config.yaml + sed -i "s|KUBEADM_NODE_NAME|$node_name|g" /tmp/kubeadm/init-config.yaml echo "==> Pre-pulling kubeadm images" env -i PATH=/run/current-system/sw/bin:/usr/bin:/bin kubeadm config images pull --config /tmp/kubeadm/init-config.yaml || true