github.com/Racer159/jackal@v0.32.7-0.20240401174413-0bd2339e4f2e/packages/distros/k3s/common/jackal-clean-k3s.sh (about) 1 #!/bin/sh 2 3 echo -e '\033[0;31m' 4 5 for bin in /var/lib/rancher/k3s/data/**/bin/; do 6 [ -d $bin ] && export PATH=$PATH:$bin:$bin/aux 7 done 8 9 set -x 10 11 for service in /etc/systemd/system/k3s*.service; do 12 [ -s $service ] && systemctl stop $(basename $service) 13 done 14 15 for service in /etc/init.d/k3s*; do 16 [ -x $service ] && $service stop 17 done 18 19 pschildren() { 20 ps -e -o ppid= -o pid= | \ 21 sed -e 's/^\s*//g; s/\s\s*/\t/g;' | \ 22 grep -w "^$1" | \ 23 cut -f2 24 } 25 26 pstree() { 27 for pid in $@; do 28 echo $pid 29 for child in $(pschildren $pid); do 30 pstree $child 31 done 32 done 33 } 34 35 killtree() { 36 kill -9 $( 37 { set +x; } 2>/dev/null; 38 pstree $@; 39 set -x; 40 ) 2>/dev/null 41 } 42 43 getshims() { 44 ps -e -o pid= -o args= | sed -e 's/^ *//; s/\s\s*/\t/;' | grep -w 'k3s/data/[^/]*/bin/containerd-shim' | cut -f1 45 } 46 47 killtree $({ set +x; } 2>/dev/null; getshims; set -x) 48 49 do_unmount_and_remove() { 50 awk -v path="$1" '$2 ~ ("^" path) { print $2 }' /proc/self/mounts | sort -r | xargs -r -t -n 1 sh -c 'umount "$0" && rm -rf "$0"' 51 } 52 53 do_unmount_and_remove '/run/k3s' 54 do_unmount_and_remove '/var/lib/rancher/k3s' 55 do_unmount_and_remove '/var/lib/kubelet/pods' 56 do_unmount_and_remove '/var/lib/kubelet/plugins' 57 do_unmount_and_remove '/run/netns/cni-' 58 59 # Remove CNI namespaces 60 ip netns show 2>/dev/null | grep cni- | xargs -r -t -n 1 ip netns delete 61 62 # Delete network interface(s) that match 'master cni0' 63 ip link show 2>/dev/null | grep 'master cni0' | while read ignore iface ignore; do 64 iface=${iface%%@*} 65 [ -z "$iface" ] || ip link delete $iface 66 done 67 ip link delete cni0 68 ip link delete flannel.1 69 rm -rf /var/lib/cni/ 70 iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore 71 72 if command -v systemctl; then 73 systemctl disable k3s 74 systemctl reset-failed k3s 75 systemctl daemon-reload 76 fi 77 78 rm -f /etc/systemd/system/k3s.service 79 80 for cmd in kubectl crictl ctr; do 81 if [ -L /usr/sbin/$cmd ]; then 82 rm -f /usr/sbin/$cmd 83 fi 84 done 85 86 rm -rf /etc/rancher/k3s 87 rm -rf /run/k3s 88 rm -rf /run/flannel 89 rm -rf /var/lib/rancher/k3s 90 rm -rf /var/lib/kubelet 91 rm -f /usr/sbin/k3s 92 rm -f /usr/sbin/ctr 93 rm -f /usr/sbin/crictl 94 rm -f /usr/sbin/kubectl 95 rm -f /opt/jackal/k3s-remove.sh 96 rm -fr jackal-pki 97 98 echo -e '\033[0m'