#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" INVENTORY_FILE="${1:-$SCRIPT_DIR/inventory.env}" if [ ! -f "$INVENTORY_FILE" ]; then echo "Missing inventory file: $INVENTORY_FILE" echo "Copy $SCRIPT_DIR/inventory.example.env to $SCRIPT_DIR/inventory.env and edit IPs." exit 1 fi # shellcheck disable=SC1090 source "$INVENTORY_FILE" SSH_USER="${SSH_USER:-micqdf}" SSH_OPTS="${SSH_OPTS:- -o BatchMode=yes -o StrictHostKeyChecking=accept-new }" required=(CP_1 CP_2 CP_3 WK_1 WK_2 WK_3) for key in "${required[@]}"; do if [ -z "${!key:-}" ]; then echo "Missing required inventory variable: $key" exit 1 fi done reset_node() { local node_ip="$1" echo "==> Resetting $node_ip" ssh $SSH_OPTS "$SSH_USER@$node_ip" "sudo kubeadm reset -f && sudo systemctl stop kubelet && sudo rm -rf /etc/kubernetes /var/lib/etcd /var/lib/cni /etc/cni/net.d" } for key in CP_1 CP_2 CP_3 WK_1 WK_2 WK_3; do reset_node "${!key}" done echo "Cluster components reset on all listed nodes."