ZITADEL Docs
Deploy & OperateSelf-HostedKubernetes

Uninstalling

This guide covers how to remove Zitadel from your Kubernetes cluster.

Uninstall the Helm Release

helm uninstall my-zitadel

Clean Up Helm Hooks

⚠️ 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

Complete Namespace Teardown

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.

Verify Removal

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

Was this page helpful?

On this page