diff --git a/install.sh b/install.sh index b3d718e1a157..4c594e81bbba 100755 --- a/install.sh +++ b/install.sh @@ -704,6 +704,27 @@ 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 } @@ -727,17 +748,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 -ip link delete flannel-v6.1 -ip link delete kube-ipvs0 -ip link delete flannel-wg -ip link delete flannel-wg-v6 +remove_interfaces + 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/package/rpm/install.sh b/package/rpm/install.sh index 93b79a1abadf..f53b6c142ff0 100755 --- a/package/rpm/install.sh +++ b/package/rpm/install.sh @@ -543,6 +543,27 @@ 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 + + # Remove advertised routes in 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 } @@ -558,17 +579,8 @@ do_unmount '/var/lib/rancher/k3s' do_unmount '/var/lib/kubelet/pods' do_unmount '/run/netns/cni-' -# 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 flannel-wg -ip link delete flannel-wg-v6 -ip link delete kube-ipvs0 +remove_interfaces + 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/pkg/vpn/vpn.go b/pkg/vpn/vpn.go index d3ae35475af7..77a628d28c6f 100644 --- a/pkg/vpn/vpn.go +++ b/pkg/vpn/vpn.go @@ -2,13 +2,13 @@ package vpn import ( "encoding/json" - "errors" "fmt" "net" "strings" "github.com/k3s-io/k3s/pkg/util" + "github.com/pkg/errors" "github.com/sirupsen/logrus" ) @@ -44,11 +44,11 @@ func StartVPN(vpnAuthConfigFile string) error { logrus.Infof("Starting VPN: %s", authInfo.Name) switch authInfo.Name { case "tailscale": - outpt, err := util.ExecCommand("tailscale", []string{"up", "--authkey", authInfo.JoinKey, "--reset"}) + output, err := util.ExecCommand("tailscale", []string{"up", "--authkey", authInfo.JoinKey, "--reset"}) if err != nil { - return err + return errors.Wrap(err, "tailscale up failed: "+output) } - logrus.Debugf("Output from tailscale up: %v", outpt) + logrus.Debugf("Output from tailscale up: %v", output) return nil default: return fmt.Errorf("Requested VPN: %s is not supported. We currently only support tailscale", authInfo.Name)