Pular para o conteúdo principal
Este guia mostra como remover completamente um deployment do Midaz do Kubernetes. Um helm uninstall padrão remove os recursos gerenciados pelo Helm, mas vários recursos persistentes — PersistentVolumeClaims, Secrets, ConfigMaps e o próprio namespace — são intencionalmente deixados para evitar perda acidental de dados. Esta página cobre como limpá-los completamente quando necessário.
Desinstalar o Midaz exclui permanentemente os dados da aplicação. Antes de prosseguir, certifique-se de ter backups de todos os bancos de dados e de qualquer dado que precise preservar. Esta operação é irreversível.

Pré-requisitos


Antes de desinstalar, faça backup dos seus valores atuais do Helm para poder reinstalar com a mesma configuração se necessário:
helm get values midaz -n midaz > midaz-values-backup.yaml
Também faça backup de quaisquer releases de plugins:
helm get values plugin-crm -n midaz > plugin-crm-values-backup.yaml
helm get values plugin-fees -n midaz > plugin-fees-values-backup.yaml
Verifique todos os releases que serão afetados:
helm list -n midaz

Desinstalação do release do Helm


Execute o seguinte comando para desinstalar o release do Helm do Midaz:
helm uninstall midaz -n midaz
Isso remove todos os recursos do Kubernetes criados pelo chart do Helm — Deployments, Services, Ingresses, ConfigMaps gerenciados pelo Helm, ServiceAccounts e recursos RBAC. Não remove PersistentVolumeClaims, Secrets criados fora do Helm, nem o namespace. Verifique se todos os pods gerenciados pelo Helm foram removidos:
kubectl get pods -n midaz

Limpeza de recursos persistentes


PersistentVolumeClaims

Os PVCs armazenam os volumes dos bancos de dados e nunca são removidos pelo helm uninstall. Liste-os primeiro para confirmar o que existe:
kubectl get pvc -n midaz
Delete todos os PVCs do namespace (isso destrói todos os dados armazenados nesses volumes):
kubectl delete pvc --all -n midaz
Ou delete PVCs específicos pelo nome:
kubectl delete pvc <pvc-name> -n midaz
Deletar os PVCs destrói permanentemente os dados dos volumes subjacentes do PostgreSQL, MongoDB e qualquer outra dependência com estado. Certifique-se de ter backups dos bancos de dados antes de executar este comando.

Secrets

Secrets criados fora do ciclo de vida do release do Helm (por exemplo, com kubectl create secret) não são removidos pelo helm uninstall. Liste todos os secrets do namespace e identifique os que não são mais necessários:
kubectl get secrets -n midaz
Delete secrets órfãos individualmente:
kubectl delete secret <secret-name> -n midaz
Ou delete todos os secrets do namespace:
kubectl delete secrets --all -n midaz

ConfigMaps

ConfigMaps criados manualmente ou por jobs de bootstrap também podem permanecer. Liste-os:
kubectl get configmaps -n midaz
Delete ConfigMaps órfãos:
kubectl delete configmap <configmap-name> -n midaz

Limpeza do namespace


Depois que todos os recursos dentro do namespace foram removidos, delete o namespace:
kubectl delete namespace midaz
Deletar o namespace removerá forçosamente qualquer recurso restante dentro dele. Se um recurso estiver travado em estado Terminating, pode ser necessário remover seus finalizers manualmente.
Verifique se o namespace foi removido:
kubectl get namespace midaz

Limpeza completa


Para ambientes de staging, avaliação ou CI onde uma remoção total é segura, o seguinte script automatiza todo o processo:
A perda de dados é permanente. Execute isso apenas em ambientes onde você tenha backups confirmados ou onde a perda de dados seja aceitável (staging, avaliação, CI). Não execute em produção sem backup completo e aprovação da equipe.
#!/bin/bash
set -e

NAMESPACE=midaz
RELEASE=midaz

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

echo "==> Deletando todos os PersistentVolumeClaims"
kubectl delete pvc --all -n "$NAMESPACE" || true

echo "==> Deletando todos os Secrets"
kubectl delete secrets --all -n "$NAMESPACE" || true

echo "==> Deletando todos os ConfigMaps"
kubectl delete configmaps --all -n "$NAMESPACE" || true

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

echo "==> Concluído. O Midaz foi completamente removido."
Salve como midaz-cleanup.sh, torne-o executável (chmod +x midaz-cleanup.sh) e execute com ./midaz-cleanup.sh.

Considerações para produção


Em produção, uma desinstalação completa requer coordenação cuidadosa. Siga estes passos antes de executar qualquer comando de limpeza:
  1. Faça backup de todos os bancos de dados. Exporte um snapshot completo do PostgreSQL e MongoDB antes de tocar em qualquer recurso.
  2. Exporte dados críticos. Se algum dado precisa ser migrado ou preservado, exporte-o antes de desinstalar.
  3. Coordene com sua equipe. Notifique todos os envolvidos sobre o tempo de inatividade planejado e confirme a janela de manutenção.
  4. Desinstale os plugins primeiro. Remova os releases de plugins (CRM, Fees, Pix) antes de desinstalar o release principal do Midaz.
  5. Verifique ausência de tráfego. Confirme que nenhum tráfego ativo está chegando aos serviços antes de prosseguir.
Desinstale os plugins antes do release principal:
helm uninstall plugin-crm -n midaz || true
helm uninstall plugin-fees -n midaz || true
helm uninstall midaz -n midaz
Em seguida, prossiga com os passos de limpeza de recursos persistentes descritos acima.

Recursos relacionados