diff --git a/bootstrap/cluster/main.tf b/bootstrap/cluster/main.tf index da49e72..ae45875 100644 --- a/bootstrap/cluster/main.tf +++ b/bootstrap/cluster/main.tf @@ -28,8 +28,20 @@ resource "null_resource" "kubeadm_control_plane" { command = </dev/null | grep -q "install ok installed"; then + missing_packages="$missing_packages $package" + fi + done + if [ -n "$missing_packages" ]; then + sudo apt-get update + sudo apt-get install -y --no-install-recommends $missing_packages + fi +} + +install_missing_packages open-iscsi nfs-common sudo systemctl enable --now iscsid sudo systemctl enable kubelet || true @@ -151,8 +163,20 @@ resource "null_resource" "kubeadm_worker" { </dev/null | grep -q "install ok installed"; then + missing_packages="$missing_packages $package" + fi + done + if [ -n "$missing_packages" ]; then + sudo apt-get update + sudo apt-get install -y --no-install-recommends $missing_packages + fi +} + +install_missing_packages open-iscsi nfs-common sudo systemctl enable --now iscsid sudo systemctl enable kubelet || true @@ -209,7 +233,7 @@ for path in $pv_dirs; do sudo chmod 0775 "$path" done -if [ -f /etc/kubernetes/kubelet.conf ] && ! curl -fsS --max-time 5 http://127.0.0.1:10248/healthz >/dev/null 2>&1; then +if [ -f /etc/kubernetes/kubelet.conf ] && ! timeout 5 bash -c 'exec 3<>/dev/tcp/127.0.0.1/10248; printf "GET /healthz HTTP/1.0\r\n\r\n" >&3; grep -q ok <&3' >/dev/null 2>&1; then sudo kubeadm reset --force || true sudo systemctl stop kubelet 2>/dev/null || true sudo rm -rf /etc/kubernetes/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d