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 {