> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Uninstalling Midaz deployment

> Fully remove a Midaz Helm deployment from Kubernetes — Helm-managed resources, persistent volumes, secrets, and the namespace itself.

This guide walks you through fully removing a Midaz deployment from Kubernetes. A standard `helm uninstall` removes the Helm-managed resources, but several persistent resources — PersistentVolumeClaims, Secrets, ConfigMaps, and the namespace itself — are intentionally left behind to prevent accidental data loss. This page covers how to clean them up completely when needed.

<Warning>
  Uninstalling Midaz permanently deletes application data. Before proceeding, ensure you have backups of all databases and any data you need to retain. This operation is irreversible.
</Warning>

## Prerequisites

***

Before uninstalling, back up your current Helm values so you can reinstall with the same configuration if needed:

```bash theme={null}
helm get values midaz -n midaz > midaz-values-backup.yaml
```

Also back up any plugin releases:

```bash theme={null}
helm get values plugin-crm -n midaz > plugin-crm-values-backup.yaml
helm get values plugin-fees -n midaz > plugin-fees-values-backup.yaml
```

Verify all releases that will be affected:

```bash theme={null}
helm list -n midaz
```

***

## Uninstalling the Helm release

***

Run the following command to uninstall the Midaz Helm release:

```bash theme={null}
helm uninstall midaz -n midaz
```

This removes all Kubernetes resources created by the Helm chart — Deployments, Services, Ingresses, ConfigMaps managed by Helm, ServiceAccounts, and RBAC resources. It does **not** remove PersistentVolumeClaims, Secrets created outside Helm, or the namespace.

Verify that all Helm-managed pods have been removed:

```bash theme={null}
kubectl get pods -n midaz
```

***

## Cleaning up persistent resources

***

### PersistentVolumeClaims

PVCs hold your database volumes and are never removed by `helm uninstall`. List them first to confirm what exists:

```bash theme={null}
kubectl get pvc -n midaz
```

Delete all PVCs in the namespace (this destroys all data stored in those volumes):

```bash theme={null}
kubectl delete pvc --all -n midaz
```

Or delete specific PVCs by name:

```bash theme={null}
kubectl delete pvc <pvc-name> -n midaz
```

<Danger>
  Deleting PVCs permanently destroys the underlying volume data for PostgreSQL, MongoDB, and any other stateful dependency. Make sure database backups are in place before running this command.
</Danger>

### 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:

```bash theme={null}
kubectl get secrets -n midaz
```

Delete individual orphaned secrets:

```bash theme={null}
kubectl delete secret <secret-name> -n midaz
```

Or delete all secrets in the namespace:

```bash theme={null}
kubectl delete secrets --all -n midaz
```

### ConfigMaps

ConfigMaps created manually or by bootstrap jobs may also remain. List them:

```bash theme={null}
kubectl get configmaps -n midaz
```

Delete orphaned ConfigMaps:

```bash theme={null}
kubectl delete configmap <configmap-name> -n midaz
```

***

## Namespace cleanup

***

Once all resources inside the namespace have been removed, delete the namespace itself:

```bash theme={null}
kubectl delete namespace midaz
```

<Note>
  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.
</Note>

Verify the namespace is gone:

```bash theme={null}
kubectl get namespace midaz
```

***

## Complete cleanup

***

For staging, evaluation, or CI environments where a full teardown is safe, the following script automates the entire process:

<Danger>
  **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.
</Danger>

```bash expandable theme={null}
#!/bin/bash
set -e

NAMESPACE=midaz
RELEASE=midaz

echo "==> Uninstalling Helm release: $RELEASE"
helm uninstall "$RELEASE" -n "$NAMESPACE" || true

echo "==> Deleting all PersistentVolumeClaims"
kubectl delete pvc --all -n "$NAMESPACE" || true

echo "==> Deleting all Secrets"
kubectl delete secrets --all -n "$NAMESPACE" || true

echo "==> Deleting all ConfigMaps"
kubectl delete configmaps --all -n "$NAMESPACE" || true

echo "==> Deleting namespace: $NAMESPACE"
kubectl delete namespace "$NAMESPACE" || true

echo "==> Done. Midaz has been fully removed."
```

Save this as `midaz-cleanup.sh`, make it executable (`chmod +x midaz-cleanup.sh`), and run it with `./midaz-cleanup.sh`.

***

## Production considerations

***

<Warning>
  In production, a full uninstall requires careful coordination. Follow these steps before running any cleanup commands:

  1. **Back up all databases.** Export a full snapshot of PostgreSQL and MongoDB before touching any resources.
  2. **Export critical data.** If any data needs to be migrated or preserved, export it before uninstalling.
  3. **Coordinate with your team.** Notify all stakeholders of planned downtime and confirm the maintenance window.
  4. **Uninstall plugins first.** Remove plugin releases (CRM, Fees, Pix) before uninstalling the core Midaz release.
  5. **Verify no traffic.** Confirm that no active traffic is hitting the services before proceeding.
</Warning>

Uninstall plugins before the core release:

```bash theme={null}
helm uninstall plugin-crm -n midaz || true
helm uninstall plugin-fees -n midaz || true
helm uninstall midaz -n midaz
```

Then proceed with the persistent resource cleanup steps described above.

***

## Related resources

* [Deploy Midaz using Helm](/en/platform/helm/midaz/midaz-installation) — Installation guide if you need to reinstall
* [Upgrading Midaz and plugins via Helm](/en/platform/helm/midaz/midaz-upgrade-guide) — Upgrade and rollback procedures
* [Troubleshooting](/en/platform/helm/midaz/midaz-troubleshooting) — Diagnose issues before deciding to uninstall
* [Version compatibility](/en/platform/helm/helm-version-compatibility) — Version mapping reference
