From 9ce4ec6c046f5c2478fa267bf0f05965001eb3ea Mon Sep 17 00:00:00 2001 From: juvdiaz Date: Mon, 29 Jun 2026 12:52:44 -0600 Subject: [PATCH] Defer kubeadm join token creation to apply --- bootstrap/cluster/main.tf | 70 ++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/bootstrap/cluster/main.tf b/bootstrap/cluster/main.tf index a1babea..2e0b9bc 100644 --- a/bootstrap/cluster/main.tf +++ b/bootstrap/cluster/main.tf @@ -381,19 +381,6 @@ EOT } } -data "external" "kubeadm_join_command" { - depends_on = [null_resource.kubeadm_control_plane] - program = [ - "bash", - "-lc", - </dev/null || true - if ! sudo ${data.external.kubeadm_join_command.result.cmd} --node-name=${self.triggers.node_name}; then - sudo systemctl status kubelet --no-pager -l || true - sudo journalctl -u kubelet --no-pager -n 160 || true - exit 1 - fi - if [ ! -f /etc/kubernetes/kubelet.conf ] || [ ! -f /var/lib/kubelet/config.yaml ]; then - echo "kubeadm join completed without creating kubelet configuration" >&2 - sudo ls -la /etc/kubernetes /var/lib/kubelet 2>/dev/null || true - sudo systemctl status kubelet containerd --no-pager -l || true - sudo journalctl -u kubelet --no-pager -n 160 || true - exit 1 - fi -fi EOT ] } + + provisioner "local-exec" { + command = <"$remote_join_script" </dev/null || true +if ! sudo $join_cmd --node-name=$node_name; then + sudo systemctl status kubelet --no-pager -l || true + sudo journalctl -u kubelet --no-pager -n 160 || true + exit 1 +fi +if [ ! -f /etc/kubernetes/kubelet.conf ] || [ ! -f /var/lib/kubelet/config.yaml ]; then + echo "kubeadm join completed without creating kubelet configuration" >&2 + sudo ls -la /etc/kubernetes /var/lib/kubelet 2>/dev/null || true + sudo systemctl status kubelet containerd --no-pager -l || true + sudo journalctl -u kubelet --no-pager -n 160 || true + exit 1 +fi +JOIN_EOT + +ssh -i "$ssh_key" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking=accept-new "$ssh_target" \ + 'bash -s' <"$remote_join_script" +EOT + } } locals {