Verificando autenticación…

Skip to main content

GitOps Architecture with ArgoCD

ArgoCD is the declarative continuous delivery platform for Kubernetes adopted at LATAM Airlines. As part of the ANDES Delivery Plane, it provides developers with an automated workflow based on GitOps, where any configuration changes declared in Git are seamlessly and securely synchronized into our Google Kubernetes Engine (GKE) and Cloud Run clusters.

Image: ArgoCD Console

ArgoCD Main Dashboard in ANDES

Key Concepts in ANDES DX

To operate optimally within the Developer Experience (DX) ecosystem, it is essential to understand three structural concepts:

ConceptPlatform Description
ApplicationMinimal unit representing a set of Kubernetes manifests managed in a specific namespace.
AppProjectLogical and security boundary that groups multiple Applications.
App of AppsHierarchical design pattern where a root application orchestrates child apps.

Hierarchical Pattern: App of Apps

The ANDES platform uses the App of Apps pattern to initialize and maintain consistency across the Delivery Plane. The root application, known as andes-bootstrap, orchestrates two major configuration branches in an orderly fashion:

This approach enables:

  1. Atomic Bootstrap: Powering up an entire Kubernetes cluster from scratch with a single command.
  2. Configuration Drift Prevention (Self-Healing): If a resource in the cluster is manually modified, ArgoCD detects the divergence and automatically restores it to the state defined in Git.

Repository Architecture

The ANDES Delivery Plane segments operational responsibilities across core Git repositories, separating platform tooling from engineering team workloads:

  • andes-bootstrap: Root platform repository. It contains definitions for projects, global access control configurations, and application generators per cluster.
  • andes-applications: Managed under Helm charts by the Platform Engineering team. It holds transverse utilities and system components (monitoring, cert-manager, ingress).
  • latam-applications/{domain}: Isolated GitOps repositories segmented by business domain (e.g., latam-applications/ecargo). They store the flat Kubernetes manifests of development applications corresponding to each domain. This separation avoids concurrency bottlenecks and safeguards tenant security.

Deployment Sequencing (Sync Waves)

To prevent collisions during synchronization, ANDES implements Sync Waves, ensuring that critical components are spun up before the applications. The order is governed by the argocd.argoproj.io/sync-wave annotation:

metadata:
annotations:
argocd.argoproj.io/sync-wave: "1"
Wave (Priority)Functional GroupExample Components
Wave 0Prerequisites and SecurityCustom Resource Definitions, Namespaces, ServiceAccounts, GCP IAM
Wave 1Controllers and ConfigurationGCP Secrets (ExternalSecrets), Application ConfigMaps, Ingress
Wave 2WorkloadsDeployments, Services, HPAs, PDBs
Wave 3Verification and Tearing DownDatabase verification Jobs, Smoke Tests, Notifications

Next Step

Familiarize yourself with access requirements and login in the Getting Started guide.