apps/docs/content/self-hosting/deploy/kubernetes/uninstalling.mdx
This guide covers how to remove Zitadel from your Kubernetes cluster.
helm uninstall my-zitadel
⚠️ Important: The Zitadel chart uses Helm hooks, which are not garbage collected by helm uninstall.
Remove hook resources manually:
for k8sresourcetype in job configmap secret rolebinding role serviceaccount; do
kubectl delete $k8sresourcetype \
--selector app.kubernetes.io/name=zitadel,app.kubernetes.io/managed-by=Helm
done
To remove everything including the namespace and any Persistent Volume Claims:
kubectl delete namespace zitadel
⚠️ Warning: This permanently deletes all data in the namespace, including any PVCs. Ensure you have backups if needed.
Confirm all resources have been removed.
Check for remaining Zitadel resources:
kubectl get all --selector app.kubernetes.io/name=zitadel
Check for remaining secrets:
kubectl get secrets --selector app.kubernetes.io/name=zitadel
If you did not delete the namespace, check for remaining PVCs:
kubectl get pvc --selector app.kubernetes.io/name=zitadel