🌳
$ ptnode pt0/klustersF/hetzn1/epSetupHetznerAI.mjs help
[action]s:
setup install k3s and configure local kubeconfig (idempotent)
teardown uninstall k3s and reset node to fresh state
help
$ ptnode pt0/klustersF/hetzn1/setupHetznerAI.mjs setup
SSH keypair exists { privKeyPath: 'data/secrets2/hetzn1-ssh-key' }
=== SSH Public Key (for Hetzner Robot) ===
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGE4cAv6OMHpVdktLRUTpQKosjqYUzL3CYZw8an3poRA hetzn1@k3s
Setting hostname to hetzn1...
Installing k3s...
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
k3s installed
Disabling traefik in k3s...
Restarting k3s to apply config...
k3s restarted, traefik disabled
Extracting kubeconfig...
Kubeconfig saved { kubeconfigPath: 'data/secrets2/hetzn1.yaml' }
common.mjs exists
cli.mjs exists
path_bin/hetzn1 exists
Verifying cluster...
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
hetzn1 Ready control-plane 13s v1.34.5+k3s1 203.0.113.123 <none> Ubuntu 24.04.3 LTS 6.8.0-90-generic containerd://2.1.5-k3s1
=== Done! Test with: hetzn1 get nodes ===
$ ptnode pt0/klustersF/hetzn1/setupHetznerAI.mjs teardown
Uninstalling k3s...
+ id -u
+ [ 0 -eq 0 ]
+ K3S_DATA_DIR=/var/lib/rancher/k3s
+ /usr/local/bin/k3s-killall.sh
+ [ -s /etc/systemd/system/k3s.service ]
+ basename /etc/systemd/system/k3s.service
+ systemctl stop k3s.service
+ [ -x /etc/init.d/k3s* ]
+ killtree 834706 834798 835122
+ kill -9 834706 834729 834908 834798 834820 834976 835122 835146 835182
+ do_unmount_and_remove /run/k3s
+ set +x
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/b9a0aa9025131e24fca080e3d697e2c6e64a0ddf732831e8badf45611490ee1a/rootfs
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/4daf45a3a375f7da92d29ba088494a2cf9f9e4b5eb706b915b1d8748166041a1/rootfs
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/4d7c1ebcc8be5f5ef326ae163ca1aba27852f7eaef6328d38c2c3fd7371d9f78/rootfs
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/411417dcb3b2945f1ea1e47155a8631764217763f94f88d20c04f1d1c988b451/rootfs
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/314c9391e8197e23c2bff35746523ed09d1926e815958739e5fb371d5e897e34/rootfs
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.runtime.v2.task/k8s.io/01a1f573cfd5d84332ea15d3a73165fb812bb64e726071ab13afc88ea78495c7/rootfs
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.grpc.v1.cri/sandboxes/b9a0aa9025131e24fca080e3d697e2c6e64a0ddf732831e8badf45611490ee1a/shm
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.grpc.v1.cri/sandboxes/4d7c1ebcc8be5f5ef326ae163ca1aba27852f7eaef6328d38c2c3fd7371d9f78/shm
sh -c 'umount -f "$0" && rm -rf "$0"' /run/k3s/containerd/io.containerd.grpc.v1.cri/sandboxes/411417dcb3b2945f1ea1e47155a8631764217763f94f88d20c04f1d1c988b451/shm
+ do_unmount_and_remove /var/lib/kubelet/pods
+ set +x
sh -c 'umount -f "$0" && rm -rf "$0"' /var/lib/kubelet/pods/423e305a-31cf-4f11-a24c-7a36f3791a53/volumes/kubernetes.io~projected/kube-api-access-bjlwp
sh -c 'umount -f "$0" && rm -rf "$0"' /var/lib/kubelet/pods/29d524c5-6d65-47f4-bc7f-2ef173a73731/volumes/kubernetes.io~projected/kube-api-access-vf4n5
sh -c 'umount -f "$0" && rm -rf "$0"' /var/lib/kubelet/pods/15024a70-5e6d-4856-9f4e-ded8db293375/volumes/kubernetes.io~projected/kube-api-access-fgj2l
+ do_unmount_and_remove /var/lib/kubelet/plugins
+ set +x
+ do_unmount_and_remove /run/netns/cni-
+ set +x
sh -c 'umount -f "$0" && rm -rf "$0"' /run/netns/cni-f9ce2536-8e11-ea61-627c-030287cacf3a
sh -c 'umount -f "$0" && rm -rf "$0"' /run/netns/cni-e61f68f0-0cf6-b8ff-538f-b3550c9b8110
sh -c 'umount -f "$0" && rm -rf "$0"' /run/netns/cni-26be1cee-e97e-502d-8f76-318092f0248d
+ ip netns show
+ grep cni-
+ xargs -r -t -n 1 ip netns delete
+ remove_interfaces
+ ip link show
+ grep master cni0
+ read ignore iface ignore
+ iface=veth1f210ed5
+ [ -z veth1f210ed5 ]
+ ip link delete veth1f210ed5
+ read ignore iface ignore
+ iface=vethccff174c
+ [ -z vethccff174c ]
+ ip link delete vethccff174c
+ read ignore iface ignore
+ iface=veth30035067
+ [ -z veth30035067 ]
+ ip link delete veth30035067
Cannot find device "veth30035067"
+ read ignore iface ignore
+ ip link delete cni0
+ ip link delete flannel.1
+ ip link delete flannel-v6.1
Cannot find device "flannel-v6.1"
+ ip link delete kube-ipvs0
Cannot find device "kube-ipvs0"
+ ip link delete flannel-wg
Cannot find device "flannel-wg"
+ ip link delete flannel-wg-v6
Cannot find device "flannel-wg-v6"
+ command -v tailscale
+ [ -n ]
+ 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
+ command -v systemctl
+ systemctl disable k3s
Removed "/etc/systemd/system/multi-user.target.wants/k3s.service".
+ systemctl reset-failed k3s
Failed to reset failed state of unit k3s.service: Unit k3s.service not loaded.
+ systemctl daemon-reload
+ command -v rc-update
+ rm -f /etc/systemd/system/k3s.service
+ rm -f /etc/systemd/system/k3s.service.env
+ trap remove_uninstall EXIT
+ [ -L /usr/local/bin/kubectl ]
+ rm -f /usr/local/bin/kubectl
+ [ -L /usr/local/bin/crictl ]
+ rm -f /usr/local/bin/crictl
+ [ -L /usr/local/bin/ctr ]
+ rm -f /usr/local/bin/ctr
+ rm -rf /etc/rancher/k3s
+ rm -rf /run/k3s
+ rm -rf /run/flannel
+ clean_mounted_directory /var/lib/rancher/k3s
+ grep -q /var/lib/rancher/k3s /proc/mounts
+ rm -rf /var/lib/rancher/k3s
+ return 0
+ rm -rf /var/lib/kubelet
+ rm -f /usr/local/bin/k3s
+ rm -f /usr/local/bin/k3s-killall.sh
+ type yum
+ type rpm-ostree
+ type zypper
+ remove_uninstall
+ rm -f /usr/local/bin/k3s-uninstall.sh
k3s uninstalled
Resetting hostname...
Removed local kubeconfig { kubeconfigPath: 'data/secrets2/hetzn1.yaml' }
=== Teardown complete. hetzn1 is now a fresh node. ===