diff --git a/bootstrap/cluster/main.tf b/bootstrap/cluster/main.tf index 4295062..a1babea 100644 --- a/bootstrap/cluster/main.tf +++ b/bootstrap/cluster/main.tf @@ -334,20 +334,34 @@ fi configure_containerd_registry "${self.triggers.registry_endpoint}" +reset_control_plane_join_state() { + sudo systemctl stop kubelet 2>/dev/null || true + sudo kubeadm reset --force || true + sudo systemctl stop kubelet 2>/dev/null || true + sudo systemctl stop containerd 2>/dev/null || true + + sudo rm -rf /etc/kubernetes/ /var/lib/etcd/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d + sudo mkdir -p /var/lib/kubelet /var/lib/cni /etc/cni/net.d + + sudo systemctl reset-failed kubelet containerd 2>/dev/null || true + if ! sudo systemctl start containerd; then + sudo systemctl status containerd --no-pager -l || true + sudo journalctl -u containerd --no-pager -n 160 || true + exit 1 + fi +} + IFS=',' read -r -a pv_dirs <<< "${self.triggers.persistent_volume_dirs}" for path in "$${pv_dirs[@]}"; do sudo mkdir -p "$path" sudo chmod 0775 "$path" done -if [ ! -f /etc/kubernetes/admin.conf ] && [ -d /etc/kubernetes ]; then - sudo kubeadm reset --force || true - sudo systemctl stop kubelet 2>/dev/null || true - sudo rm -rf /etc/kubernetes/ /var/lib/etcd/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d +if [ ! -f /etc/kubernetes/admin.conf ]; then + reset_control_plane_join_state fi if [ ! -f /etc/kubernetes/admin.conf ]; then - sudo systemctl stop kubelet 2>/dev/null || true if ! sudo kubeadm init \ --pod-network-cidr=${self.triggers.pod_network_cidr} \ --node-name=${self.triggers.node_name} \