Skip to content

Commit

Permalink
Update k3s killall and uninstall scripts (#217)
Browse files Browse the repository at this point in the history
* Update k3s killall and uninstall scripts

* Update k3s-uninstall.sh.j2

* Update k3s-uninstall.sh.j2
  • Loading branch information
onedr0p committed Dec 9, 2023
1 parent b87991c commit 6b25876
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 17 deletions.
39 changes: 30 additions & 9 deletions templates/k3s-killall.sh.j2
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,39 @@ killtree() {
) 2>/dev/null
}

remove_interfaces() {
# 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

# Delete cni related interfaces
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

# Restart tailscale
if [ -n "$(command -v tailscale)" ]; then
tailscale set --advertise-routes=
fi
}

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() {
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"'
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 -f "$0" && rm -rf "$0"'
set -x
}

do_unmount_and_remove '/run/k3s'
Expand All @@ -59,12 +84,8 @@ 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
remove_interfaces

rm -rf /var/lib/cni/
iptables-save | grep -v KUBE- | grep -v CNI- | iptables-restore
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
22 changes: 14 additions & 8 deletions templates/k3s-uninstall.sh.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@ set -x

/usr/local/bin/k3s-killall.sh

if which systemctl; then
if command -v systemctl; then
systemctl disable k3s
systemctl reset-failed k3s
systemctl daemon-reload
fi
if which rc-update; then
if command -v rc-update; then
rc-update delete k3s default
fi

rm -f {{ k3s_systemd_unit_dir }}/k3s.service
rm -f {{ k3s_systemd_unit_dir }}/k3s.env

remove_uninstall() {
rm -f /usr/local/bin/k3s-uninstall.sh
Expand All @@ -31,20 +32,25 @@ for cmd in kubectl crictl ctr; do
fi
done

for bin in {{ k3s_install_dir }}/k3s*; do
if [ -f "${bin}" ]; then
rm -f "${bin}"
fi
done

rm -rf {{ k3s_config_dir }}
rm -rf /run/k3s
rm -rf /run/flannel
rm -rf {{ k3s_runtime_config['data-dir'] | default(k3s_data_dir) }}
rm -rf /var/lib/kubelet
rm -f {{ k3s_install_dir }}/k3s
rm -f /usr/local/bin/k3s-killall.sh

if type yum >/dev/null 2>&1; then
yum remove -y k3s-selinux
rm -f /etc/yum.repos.d/rancher-k3s-common*.repo
elif type rpm-ostree >/dev/null 2>&1; then
rpm-ostree uninstall k3s-selinux
rm -f /etc/yum.repos.d/rancher-k3s-common*.repo
elif type zypper >/dev/null 2>&1; then
uninstall_cmd="zypper remove -y k3s-selinux"
if [ "${TRANSACTIONAL_UPDATE=false}" != "true" ] && [ -x /usr/sbin/transactional-update ]; then
uninstall_cmd="transactional-update --no-selfupdate -d run $uninstall_cmd"
fi
$uninstall_cmd
rm -f /etc/zypp/repos.d/rancher-k3s-common*.repo
fi

0 comments on commit 6b25876

Please sign in to comment.