helm uninstall removes the Helm-managed resources — and, importantly, it also deletes the MongoDB PersistentVolumeClaim along with them. Only the PostgreSQL volumes survive, because they are created from a StatefulSet volumeClaimTemplate. This page covers what goes with the release, what stays behind, and how to clean the rest up.
What uninstall deletes and what survives
No chart resource carries a
helm.sh/resource-policy: keep annotation. Do not rely on Helm to protect any volume.Prerequisites
Before uninstalling, back up your databases —
helm uninstall destroys the MongoDB volume:
helm uninstall, but the PVC cleanup below destroys them. Dump PostgreSQL too if you intend to run that step:
midaz-plugins):
CRM is part of the Midaz chart, not a separate release — there is no
plugin-crm chart to back up or uninstall.Uninstalling the Helm release
Run the following command to uninstall the Midaz Helm release:
midaz-mongodb PVC. It does not remove the PostgreSQL StatefulSet PVCs, Secrets you created outside Helm, or the namespace.
Verify that all Helm-managed pods have been removed:
Cleaning up persistent resources
PersistentVolumeClaims
After uninstall, the PostgreSQL claims are what remains. List them to confirm:data-midaz-postgresql-primary-0 and data-midaz-postgresql-replication-0. The midaz-mongodb claim is already gone — Helm deleted it with the release.
Delete all remaining PVCs in the namespace (this destroys the PostgreSQL data):
Deleting these PVCs permanently destroys the PostgreSQL volume data — the ledger’s system of record. Make sure database backups are in place before running this command.
Secrets
Secrets created outside the Helm release lifecycle (e.g.,kubectl create secret) are not removed by helm uninstall. List all secrets in the namespace and identify any that are no longer needed:
ConfigMaps
ConfigMaps created manually or by bootstrap jobs may also remain. List them:Namespace cleanup
Once all resources inside the namespace have been removed, delete the namespace itself:
Deleting the namespace will forcefully remove any remaining resources inside it. If a resource is stuck in
Terminating state, you may need to remove its finalizers manually.Complete cleanup
For staging, evaluation, or CI environments where a full teardown is safe, the following script automates the entire process:
Data loss is permanent. Run this only in environments where you have confirmed backups or where data loss is acceptable (staging, evaluation, CI). Do not run this in production without a full backup and team sign-off.
midaz-cleanup.sh, make it executable (chmod +x midaz-cleanup.sh), and run it with ./midaz-cleanup.sh.
Production considerations
Uninstall plugins before the core release:
Related resources
- Deploy Midaz using Helm — Installation guide if you need to reinstall
- Upgrading Midaz and plugins via Helm — Upgrade and rollback procedures
- Troubleshooting — Diagnose issues before deciding to uninstall
- Version compatibility — Version mapping reference

