zks:longhorn-deleting
Table of Contents
Deleting Longhorn
Step 1 — Identify Longhorn Controllers
# See exactly which controllers own those pods kubectl get pod -n default longhorn-csi-plugin-95cws -o wide kubectl get pod -n default longhorn-csi-plugin-9drl8 -o wide kubectl get pod -n default longhorn-csi-plugin-w4rvw -o wide # List DaemonSets / Deployments to find Longhorn controllers kubectl get ds,deploy -n default | grep -i longhorn
Step 2 — Delete Controllers
# If they are DaemonSets kubectl delete ds longhorn-csi-plugin -n default --ignore-not-found # If you see any of these deployments, delete them kubectl delete deploy longhorn-manager longhorn-ui longhorn-driver-deployer \ -n default --ignore-not-found # Remove one-shot jobs kubectl delete job longhorn-pre-upgrade longhorn-post-upgrade -n default --ignore-not-found
Step 3 — Confirm No Longhorn Pods Remain
kubectl get pods -A | grep -i longhorn || echo "No Longhorn pods"
Step 4 — Delete All CRD Instances
for crd in $(kubectl get crd -o jsonpath={.items[*].metadata.name} | tr ' ' '\n' | grep longhorn.io); do echo "Cleaning CRD: $crd" kubectl delete "$crd" --all --wait=false || true kubectl delete crd "$crd" --wait=false || true done
Confirm CRDs are gone:
kubectl get crd | grep longhorn.io || echo "No Longhorn CRDs"
Step 5 — Remove Longhorn StorageClass
kubectl get storageclass | grep -i longhorn || echo "No Longhorn StorageClass" # If something shows up, delete it: kubectl delete storageclass longhorn --ignore-not-found
Step 6 — Remove Remaining Longhorn CRD Objects
# Check what remains kubectl get backuptargets.longhorn.io --all-namespaces || echo "no backuptargets" kubectl get engineimages.longhorn.io --all-namespaces || echo "no engineimages" kubectl get nodes.longhorn.io --all-namespaces || echo "no nodes" # Delete CSI deployments kubectl delete deploy csi-attacher -n default --ignore-not-found kubectl delete deploy csi-provisioner -n default --ignore-not-found kubectl delete deploy csi-resizer -n default --ignore-not-found kubectl delete deploy csi-snapshotter -n default --ignore-not-found # Delete engine image DaemonSet kubectl delete ds engine-image-ei-ff1cedad -n default --ignore-not-found # Delete remaining CRD objects kubectl delete backuptargets.longhorn.io --all -n default kubectl delete engineimages.longhorn.io --all -n default kubectl delete nodes.longhorn.io --all -n default
Step 7 — Remove Webhooks (if stuck)
kubectl delete ValidatingWebhookConfiguration longhorn-webhook-validator --ignore-not-found kubectl delete MutatingWebhookConfiguration longhorn-webhook-mutator --ignore-not-found
Final Verification
kubectl get pods -A | grep -i longhorn || echo "No Longhorn pods" kubectl get crd | grep longhorn.io || echo "No Longhorn CRDs" kubectl get storageclass | grep -i longhorn || echo "No Longhorn StorageClass"
zks/longhorn-deleting.txt · Last modified: by mc
