Saltar al contenido principal
Esta guía te lleva por el proceso completo de eliminación de un despliegue de Midaz de Kubernetes. Un helm uninstall estándar elimina los recursos gestionados por Helm, pero varios recursos persistentes — PersistentVolumeClaims, Secrets, ConfigMaps y el propio namespace — se dejan intencionalmente para prevenir pérdidas accidentales de datos. Esta página cubre cómo limpiarlos completamente cuando sea necesario.
Desinstalar Midaz elimina permanentemente los datos de la aplicación. Antes de continuar, asegúrate de tener copias de seguridad de todas las bases de datos y cualquier dato que necesites conservar. Esta operación es irreversible.

Prerrequisitos


Antes de desinstalar, respalda tus valores actuales de Helm para poder reinstalar con la misma configuración si es necesario:
helm get values midaz -n midaz > midaz-values-backup.yaml
También respalda cualquier release 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
Verifica todos los releases que se verán afectados:
helm list -n midaz

Desinstalación del release de Helm


Ejecuta el siguiente comando para desinstalar el release de Helm de Midaz:
helm uninstall midaz -n midaz
Esto elimina todos los recursos de Kubernetes creados por el chart de Helm — Deployments, Services, Ingresses, ConfigMaps gestionados por Helm, ServiceAccounts y recursos RBAC. No elimina PersistentVolumeClaims, Secrets creados fuera de Helm, ni el namespace. Verifica que todos los pods gestionados por Helm hayan sido eliminados:
kubectl get pods -n midaz

Limpieza de recursos persistentes


PersistentVolumeClaims

Los PVCs almacenan los volúmenes de base de datos y nunca son eliminados por helm uninstall. Lístalos primero para confirmar qué existe:
kubectl get pvc -n midaz
Elimina todos los PVCs del namespace (esto destruye todos los datos almacenados en esos volúmenes):
kubectl delete pvc --all -n midaz
O elimina PVCs específicos por nombre:
kubectl delete pvc <pvc-name> -n midaz
Eliminar los PVCs destruye permanentemente los datos de los volúmenes subyacentes de PostgreSQL, MongoDB y cualquier otra dependencia con estado. Asegúrate de tener copias de seguridad de las bases de datos antes de ejecutar este comando.

Secrets

Los Secrets creados fuera del ciclo de vida del release de Helm (por ejemplo, con kubectl create secret) no son eliminados por helm uninstall. Lista todos los secrets del namespace e identifica los que ya no son necesarios:
kubectl get secrets -n midaz
Elimina secrets huérfanos individuales:
kubectl delete secret <secret-name> -n midaz
O elimina todos los secrets del namespace:
kubectl delete secrets --all -n midaz

ConfigMaps

Los ConfigMaps creados manualmente o por jobs de bootstrap también pueden permanecer. Lístalos:
kubectl get configmaps -n midaz
Elimina ConfigMaps huérfanos:
kubectl delete configmap <configmap-name> -n midaz

Limpieza del namespace


Una vez que todos los recursos dentro del namespace han sido eliminados, borra el namespace:
kubectl delete namespace midaz
Eliminar el namespace eliminará forzosamente cualquier recurso restante dentro de él. Si un recurso está atascado en estado Terminating, puede que necesites eliminar sus finalizers manualmente.
Verifica que el namespace haya sido eliminado:
kubectl get namespace midaz

Limpieza completa


Para entornos de staging, evaluación o CI donde una eliminación completa es segura, el siguiente script automatiza todo el proceso:
La pérdida de datos es permanente. Ejecuta esto solo en entornos donde tengas copias de seguridad confirmadas o donde la pérdida de datos sea aceptable (staging, evaluación, CI). No ejecutes esto en producción sin una copia de seguridad completa y la aprobación del equipo.
#!/bin/bash
set -e

NAMESPACE=midaz
RELEASE=midaz

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

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

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

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

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

echo "==> Listo. Midaz ha sido eliminado completamente."
Guarda esto como midaz-cleanup.sh, hazlo ejecutable (chmod +x midaz-cleanup.sh) y ejecútalo con ./midaz-cleanup.sh.

Consideraciones para producción


En producción, una desinstalación completa requiere una coordinación cuidadosa. Sigue estos pasos antes de ejecutar cualquier comando de limpieza:
  1. Respalda todas las bases de datos. Exporta un snapshot completo de PostgreSQL y MongoDB antes de tocar cualquier recurso.
  2. Exporta datos críticos. Si algún dato necesita ser migrado o conservado, expórtalo antes de desinstalar.
  3. Coordina con tu equipo. Notifica a todos los interesados sobre el tiempo de inactividad planificado y confirma la ventana de mantenimiento.
  4. Desinstala los plugins primero. Elimina los releases de plugins (CRM, Fees, Pix) antes de desinstalar el release principal de Midaz.
  5. Verifica que no haya tráfico. Confirma que ningún tráfico activo esté llegando a los servicios antes de proceder.
Desinstala los plugins antes del release principal:
helm uninstall plugin-crm -n midaz || true
helm uninstall plugin-fees -n midaz || true
helm uninstall midaz -n midaz
Luego procede con los pasos de limpieza de recursos persistentes descritos arriba.

Recursos relacionados