Verificando autenticación…

Saltar al contenido principal

Arquitectura GitOps con ArgoCD

ArgoCD es la plataforma de entrega continua declarativa para Kubernetes adoptada en LATAM Airlines. Como parte del Delivery Plane de ANDES, proporciona a los desarrolladores un modelo automatizado basado en GitOps, donde cualquier cambio en la configuración declarada en Git se sincroniza de forma transparente y segura en nuestros clusters de Google Kubernetes Engine (GKE) y Cloud Run.

Imagen: Consola de ArgoCD

Pantalla principal de ArgoCD en ANDES

Conceptos Clave en ANDES DX

Para operar de forma óptima en el ecosistema de Developer Experience (DX), es fundamental comprender tres conceptos estructurales:

ConceptoDescripción en la Plataforma
ApplicationUnidad mínima que representa un conjunto de manifiestos K8s en un namespace.
AppProjectFrontera lógica y de seguridad que agrupa múltiples Applications.
App of AppsPatrón jerárquico de diseño de orquestación de aplicaciones.

Patrón Jerárquico: App of Apps

La plataforma ANDES utiliza el patrón App of Apps para inicializar y mantener la consistencia del Delivery Plane. La aplicación raíz, conocida como andes-bootstrap, orquesta de forma ordenada dos grandes ramas de configuración:

Este enfoque permite:

  1. Bootstrap Atómico: Levantar un cluster de Kubernetes completo desde cero con un solo comando.
  2. Evitar Deriva de Configuración (Self-Healing): Si algún recurso en el cluster es modificado, ArgoCD detecta la desviación y restablece automáticamente la configuración definida en Git.

Arquitectura de Repositorios

El Delivery Plane de ANDES segmenta las responsabilidades operacionales en repositorios Git centrales, separando las herramientas de plataforma de las cargas de trabajo de desarrollo:

  • andes-bootstrap: Repositorio raíz de la plataforma. Contiene las definiciones de proyectos, configuraciones globales de control de accesos y los generadores de aplicaciones por cluster.
  • andes-applications: Administrado bajo Helm charts por el equipo de Platform Engineering. Sostiene utilitarios transversales y componentes del sistema (monitoreo, ingress, cert-manager).
  • latam-applications/{dominio}: Repositorios GitOps aislados por dominio de negocio (ej: latam-applications/ecargo). Almacenan los manifiestos planos de las aplicaciones de desarrollo. Esta separación evita cuellos de botella de concurrencia y resguarda el aislamiento de seguridad.

Secuenciación de Despliegues (Sync Waves)

Para evitar colisiones durante la sincronización, ANDES implementa Sync Waves, asegurando que los componentes críticos se levanten antes que las aplicaciones. El orden está regido por la anotación argocd.argoproj.io/sync-wave:

metadata:
annotations:
argocd.argoproj.io/sync-wave: "1"
Wave (Prioridad)Grupo FuncionalEjemplo de Componentes
Wave 0Prerrequisitos y SeguridadCRDs, Namespaces, ServiceAccounts, Políticas IAM
Wave 1Controladores y ConfiguraciónSecretos de GCP, ConfigMaps, Ingress
Wave 2Cargas de Trabajo (Workloads)Deployments, Services, HPAs, PDBs
Wave 3Verificación y CierreJobs de verificación, Smoke Tests, Notificaciones

Siguiente Paso

Familiarízate con los requisitos de acceso y login en la guía de Primeros pasos.