diff options
author | Zac Medico <zmedico@gentoo.org> | 2022-12-11 13:02:08 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2022-12-11 13:13:48 -0800 |
commit | 70fa996d6be6a797e2d54c5320f021d23f30b249 (patch) | |
tree | 4704df5ef1d406d75d8a1321a55b98616728741e /sys-cluster/k3s | |
parent | sys-cluster/k3s: drop 1.25.2_p1, 1.25.3_p1 (diff) | |
download | gentoo-70fa996d6be6a797e2d54c5320f021d23f30b249.tar.gz gentoo-70fa996d6be6a797e2d54c5320f021d23f30b249.tar.bz2 gentoo-70fa996d6be6a797e2d54c5320f021d23f30b249.zip |
sys-cluster/k3s: add k3s-killall script
Closes: https://bugs.gentoo.org/885389
Signed-off-by: Zac Medico <zmedico@gentoo.org>
Diffstat (limited to 'sys-cluster/k3s')
-rw-r--r-- | sys-cluster/k3s/files/k3s-killall.sh | 78 | ||||
-rw-r--r-- | sys-cluster/k3s/k3s-1.25.4_p1.ebuild | 1 |
2 files changed, 79 insertions, 0 deletions
diff --git a/sys-cluster/k3s/files/k3s-killall.sh b/sys-cluster/k3s/files/k3s-killall.sh new file mode 100644 index 000000000000..a3aa2fcf3770 --- /dev/null +++ b/sys-cluster/k3s/files/k3s-killall.sh @@ -0,0 +1,78 @@ +#!/bin/sh +[ $(id -u) -eq 0 ] || exec sudo $0 $@ + +for bin in /var/lib/rancher/k3s/data/**/bin/; do + [ -d $bin ] && export PATH=$PATH:$bin:$bin/aux +done + +set -x + +for service in /etc/systemd/system/k3s*.service; do + [ -s $service ] && systemctl stop $(basename $service) +done + +for service in /etc/init.d/k3s*; do + [ -x $service ] && $service stop +done + +pschildren() { + ps -e -o ppid= -o pid= | \ + sed -e 's/^\s*//g; s/\s\s*/\t/g;' | \ + grep -w "^$1" | \ + cut -f2 +} + +pstree() { + for pid in $@; do + echo $pid + for child in $(pschildren $pid); do + pstree $child + done + done +} + +killtree() { + kill -9 $( + { set +x; } 2>/dev/null; + pstree $@; + set -x; + ) 2>/dev/null +} + +getshims() { + ps -e -o pid= -o args= | sed -e 's/^ *//; s/\s\s*/\t/;' | grep -w 'k3s/data/[^/]*/bin/containerd-shim' | cut -f1 +} + +killtree $({ set +x; } 2>/dev/null; getshims; set -x) + +do_unmount_and_remove() { + set +x + while read -r _ path _; do + case "$path" in $1*) echo "$path" ;; esac + done < /proc/self/mounts | sort -r | xargs -r -t -n 1 sh -c 'umount "$0" && rm -rf "$0"' + set -x +} + +do_unmount_and_remove '/run/k3s' +do_unmount_and_remove '/var/lib/rancher/k3s' +do_unmount_and_remove '/var/lib/kubelet/pods' +do_unmount_and_remove '/var/lib/kubelet/plugins' +do_unmount_and_remove '/run/netns/cni-' + +# Remove CNI namespaces +ip netns show 2>/dev/null | grep cni- | xargs -r -t -n 1 ip netns delete + +# Delete network interface(s) that match 'master cni0' +ip link show 2>/dev/null | grep 'master cni0' | while read ignore iface ignore; do + iface=${iface%%@*} + [ -z "$iface" ] || ip link delete $iface +done +ip link delete cni0 +ip link delete flannel.1 +ip link delete flannel-v6.1 +ip link delete kube-ipvs0 +ip link delete flannel-wg +ip link delete flannel-wg-v6 +rm -rf /var/lib/cni/ +iptables-save | grep -v KUBE- | grep -v CNI- | grep -iv flannel | iptables-restore +ip6tables-save | grep -v KUBE- | grep -v CNI- | grep -iv flannel | ip6tables-restore diff --git a/sys-cluster/k3s/k3s-1.25.4_p1.ebuild b/sys-cluster/k3s/k3s-1.25.4_p1.ebuild index 993f21c2a09d..aaae4d40b59d 100644 --- a/sys-cluster/k3s/k3s-1.25.4_p1.ebuild +++ b/sys-cluster/k3s/k3s-1.25.4_p1.ebuild @@ -92,6 +92,7 @@ src_compile() { src_install() { dobin "dist/artifacts/${PN}" + newbin "${FILESDIR}/k3s-killall.sh" k3s-killall use kubectl-symlink && dosym k3s /usr/bin/kubectl systemd_dounit "${FILESDIR}/${PN}.service" newinitd "${FILESDIR}/${PN}.initd" "${PN}" |