diff --git a/lab.sh b/lab.sh index fb83990..c9911f5 100755 --- a/lab.sh +++ b/lab.sh @@ -60,7 +60,7 @@ nuke() { sudo umount /var/lib/containerd/srun/* 2>/dev/null || true sudo rm -rf /var/lib/containerd/* /run/containerd/* - sudo rm -rf /etc/kubernetes/ /var/lib/etcd/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d /home/jv/.kube/ + sudo rm -rf /etc/kubernetes/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d /home/jv/.kube/ sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X sudo ip link delete cilium_host 2>/dev/null || true @@ -71,10 +71,25 @@ nuke() { echo "--> Eviscerating remote Kubernetes components (Raspberry Pi)..." ssh -o ConnectTimeout=5 jv@192.168.100.89 << 'EOF' 2>/dev/null || true - sudo kubeadm reset --force + # 1. Force reset kubeadm configurations + sudo kubeadm reset --force || true + + # 2. Halt the container runtime engine to drop file descriptor and socket locks + sudo systemctl stop containerd 2>/dev/null || true sudo killall containerd-shim-runc-v2 2>/dev/null || true - sudo rm -rf /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d /var/lib/containerd/* + + # 3. Unmount any lingering ephemeral pod volumes, secrets, or token rings + sudo umount -f /var/lib/kubelet/pods/*/*/*/* 2>/dev/null || true + + # 4. Completely wipe the cluster file configurations and runtime data tracks + sudo rm -rf /etc/kubernetes/ /var/lib/kubelet/ /var/lib/cni/ /etc/cni/net.d + sudo rm -rf /var/lib/containerd/* /run/containerd/* + + # 5. Reset network routing policies left over by the CNI sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X + + # 6. Bring the container engine back online with a completely clean state slate + sudo systemctl start containerd EOF docker buildx rm lab-builder 2>/dev/null || true