When using urunc-deploy to remove urunc form a Kubernetes cluster following the instructions at https://urunc.io/tutorials/How-to-urunc-on-k8s/#urunc-deploy the uninstall steps removes the urunc binaries but never restarts containerd. The problem seems to be in the reset step which removes the node label that schedules its own DaemonSet pod and therefore the DaemonSet controller deletes the pod and restart never takes place. As a result, containerd keeps the urunc runtime in memory with the binaries gone and every running runtimeClassName: urunc pod is stuck in Terminating.
Steps to reproduce.
kubectl apply -f deployment/urunc-deploy/urunc-rbac/urunc-rbac.yaml
kubectl apply -k deployment/urunc-deploy/urunc-deploy/overlays/k3s
kubectl apply -f deployment/urunc-deploy/runtimeclasses/runtimeclass.yaml
# run a unikernel pod with runtimeClassName: urunc and leave it running
kubectl delete -k deployment/urunc-deploy/urunc-deploy/overlays/k3s
kubectl apply -k deployment/urunc-deploy/urunc-cleanup/overlays/k3s
sleep 60; kubectl delete -k deployment/urunc-deploy/urunc-cleanup/overlays/k3s
kubectl delete pod <unikernel pod>
When using urunc-deploy to remove urunc form a Kubernetes cluster following the instructions at https://urunc.io/tutorials/How-to-urunc-on-k8s/#urunc-deploy the uninstall steps removes the urunc binaries but never restarts containerd. The problem seems to be in the
resetstep which removes the node label that schedules its own DaemonSet pod and therefore the DaemonSet controller deletes the pod and restart never takes place. As a result, containerd keeps theuruncruntime in memory with the binaries gone and every runningruntimeClassName: uruncpod is stuck inTerminating.Steps to reproduce.