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

# Midaz Helm upgrade checklist

> Follow recommended best practices and verification steps before, during, and after a Midaz Helm upgrade to ensure safe, predictable production rollouts.

## Production recommendation

***

We do not recommend using the Midaz Helm chart's default dependencies (databases, cache, and message broker) in production environments. For production-grade deployments, follow our [best practices](/en/midaz/midaz-production-best-practices) to operate these dependencies with proper security, observability, backups, disaster recovery, and SLOs.

## Best practices

***

### Upgrade order

Always upgrade in this order:

1. Infrastructure (if needed)
2. Midaz Core
3. Plugins (one at a time)

### Test first

Always test upgrades in a staging environment that mirrors production before applying to production.

### Monitor closely

Monitor logs and metrics closely for the first 15-30 minutes after an upgrade.

### Keep backups

Maintain backups of your Helm values and database before major upgrades.

## Upgrade checklist summary

***

| Step                | Command                                                                         | Verified |
| :------------------ | :------------------------------------------------------------------------------ | :------: |
| Backup databases    | Snapshot PostgreSQL and MongoDB — `helm rollback` cannot undo schema migrations |          |
| Backup values       | `helm get values <release> -n midaz > backup.yaml`                              |          |
| Check compatibility | Review [compatibility table](/en/platform/helm/helm-version-compatibility)      |          |
| Upgrade Midaz       | `helm upgrade midaz ...`                                                        |          |
| Verify Midaz pods   | `kubectl get pods -n midaz`                                                     |          |
| Upgrade plugins     | `helm upgrade <plugin> ...`                                                     |          |
| Verify plugin pods  | `kubectl get pods -n midaz`                                                     |          |
| Check logs          | `kubectl logs -n midaz deployment/<name>`                                       |          |

## Post-upgrade verification

***

### 1. Check pod status

<CodeGroup>
  ```bash Shell theme={null}
  kubectl get pods -n midaz
  ```
</CodeGroup>

All pods should be `Running` and `READY`.

### 2. Verify services

<CodeGroup>
  ```bash Shell theme={null}
  kubectl get svc -n midaz
  ```
</CodeGroup>

### 3. Check the logs

<CodeGroup>
  ```bash Shell theme={null}
  # The ledger service (the only application Deployment by default)
  kubectl logs -n midaz deployment/midaz-ledger

  # RabbitMQ
  kubectl logs -n midaz statefulset/midaz-rabbitmq

  # CRM, if crm.enabled: true
  kubectl logs -n midaz deployment/midaz-crm
  ```
</CodeGroup>

<Note>
  On charts before v7.0.0 you also had `midaz-onboarding` and `midaz-transaction` Deployments. Those services were removed in v7.0.0 — on any current chart those names return `NotFound`.
</Note>

### 4. Verify ingress routing

<CodeGroup>
  ```bash Shell theme={null}
  kubectl get ingress -n midaz
  kubectl describe ingress midaz-ledger -n midaz
  ```
</CodeGroup>
