Saltar al contenido principal
MKA1 sigue un modelo de despliegue alineado con GitOps donde el repositorio de Git es la única fuente de la verdad para toda la infraestructura y el estado de las aplicaciones. Cada despliegue es una transacción atómica de Helm: si algún recurso no llega a estar saludable, toda la release se revierte automáticamente sin intervención manual.

Qué está activo

Git como fuente única de la verdad

Toda la plataforma MKA1 está definida como un único chart de Helm (mka1-platform) almacenado en el repositorio de Git infra-resources. Ningún cambio llega a un clúster sin antes ser confirmado y revisado mediante una pull request.
  • El chart de Helm y los archivos de valores definen cada carga de trabajo, servicio, plantilla de secretos, HPA y PDB de la plataforma.
  • Anulaciones específicas por entorno separan la configuración de staging y producción mientras comparten la misma definición de chart.
  • Secretos cifrados se gestionan con SOPS y se confirman junto al chart, asegurando que incluso la configuración sensible quede registrada en el historial de Git.

Despliegues atómicos con Helm

Las releases de Helm se ejecutan con la opción --atomic, que envuelve toda la actualización en una transacción. Si algún recurso de la release falla su verificación de disponibilidad, Helm revierte automáticamente toda la release a la última revisión conocida como válida.
helm upgrade --install mka1 mka1-platform \
  --atomic \
  --wait \
  --timeout 15m \
  -f values.yaml
  • --atomic — Si la actualización falla en cualquier punto, Helm elimina los nuevos recursos y restaura la release anterior. El clúster nunca queda en un estado parcialmente desplegado.
  • --wait — Helm espera a que todos los Pods, Servicios y otros recursos reporten estar listos antes de marcar la release como exitosa.
  • --timeout 15m — Un límite configurable evita que los despliegues queden colgados indefinidamente. Si no se alcanza la disponibilidad dentro del tiempo, la release se considera fallida y se revierte.

Reconciliación automatizada vía CI/CD

Los flujos de trabajo de GitHub Actions se disparan automáticamente en cada push a main que modifique rutas de infraestructura. El pipeline se autentica con AWS, configura kubectl para el clúster EKS de destino y aplica el estado deseado definido en Git:
  1. Un desarrollador fusiona una pull request en main.
  2. GitHub Actions detecta el cambio y dispara el flujo de despliegue.
  3. El flujo extrae el repositorio en el SHA del commit fusionado.
  4. helm upgrade --install --atomic reconcilia el clúster para que coincida con el estado deseado definido en Git.
  5. Si no se puede alcanzar el estado deseado, la reversión atómica garantiza que el clúster permanezca en la última revisión exitosa.

Historial de despliegue inmutable

Cada release de Helm crea una revisión versionada almacenada en el clúster. Esto proporciona una pista de auditoría completa de lo que se desplegó, cuándo y desde qué commit de Git.
helm history mka1-platform
helm rollback mka1-platform <revision>
Combinado con el historial de commits de Git, esto ofrece trazabilidad total desde el cambio de código hasta el estado desplegado.

Cómo lo validamos

Validamos el flujo de trabajo GitOps inspeccionando el estado de la release de Helm desplegada y confirmando que coincide con la configuración definida en Git.
helm list
kubectl rollout status deployment/<name>
helm get values mka1-platform
El propio pipeline de CI/CD sirve como validación continua: cada push a main dispara un ciclo completo de reconciliación. Si el estado del clúster se desvía del estado deseado definido en Git, la siguiente ejecución del pipeline lo corrige.

Evidencia

Flujo de actualización atómica con Helm

Lo siguiente demuestra el comportamiento de despliegue atómico. Cuando todos los recursos están saludables, la release tiene éxito:
Release "mka1-platform" has been upgraded. Happy Helming!
NAME: mka1-platform
LAST DEPLOYED: 2026-04-01 18:32:05
NAMESPACE: default
STATUS: deployed
REVISION: 42
Cuando un recurso falla su verificación de disponibilidad, toda la release se revierte automáticamente:
Error: UPGRADE FAILED: release mka1-platform failed, and has been rolled back
  due to atomic being set: timed out waiting for the condition
No queda ningún estado parcial — el clúster permanece en la revisión saludable anterior.

Historial de releases de Helm

REVISION  UPDATED                   STATUS      DESCRIPTION
40        2026-03-28 14:10:22       superseded  Upgrade complete
41        2026-03-30 09:45:11       superseded  Upgrade complete
42        2026-04-01 18:32:05       deployed    Upgrade complete
Cada revisión es una instantánea puntual de la configuración desplegada, permitiendo la reversión instantánea a cualquier estado anterior.