Argo CD: GitOps continuous delivery per Kubernetes

Argo CD (Intuit → CNCF): declarative GitOps per Kubernetes. Git come source of truth, sync automatico di stato desiderato vs cluster, UI web, progetti e application sets. CNCF Incubating dal 2020, Graduated dal 2022.

Open SourceWeb Argo CDGitOpsKubernetesIntuitCNCFDevOpsCloudOpen Source

GitOps come pattern

GitOps — termine coniato da Alexis Richardson (Weaveworks) nel 2017 — è un paradigma di continuous delivery dove:

  1. Git è la source of truth della configurazione desiderata del sistema
  2. Un controller nel cluster osserva sia Git sia lo stato reale
  3. Quando lo stato reale devia dal desiderato, il controller riconcilia

Differenza dal CI/CD tradizionale (push model): il pull dal cluster riduce esposizione di credenziali CI e uniforma rollback/rollforward come commit Git.

Argo CD

Argo CD — sviluppato internamente da Intuit e rilasciato open source nel 2018 — è uno dei due GitOps controller mainstream (insieme a Flux). CNCF Incubating da aprile 2020, Graduated dicembre 2022. Licenza Apache 2.0.

Al luglio 2020 la versione 1.6 consolida la maturità di produzione con sync waves, phases, hooks pre/post sync.

Funzionamento

Argo CD introduce il concetto di Application: custom resource K8s che punta a:

  • Git repository + path + revision (branch, tag, commit) come sorgente
  • Destination cluster + namespace come target
  • Sync policy (manuale, automatico con prune/self-heal)

Argo CD:

  1. Clona il repo Git
  2. Renderizza i manifest (helm, kustomize, plain YAML, jsonnet)
  3. Confronta con lo stato corrente del cluster
  4. Mostra le differenze in UI e calcola il piano
  5. Applica le modifiche (sync) manualmente o automaticamente

Architettura multi-cluster

Un’installazione Argo CD può gestire molti cluster da un punto centrale:

  • Un cluster di controllo (management)
  • N cluster target (staging, production, edge)

Le Application in un cluster di controllo possono targettare cluster remoti via kubeconfig. L’UI web aggrega lo stato di tutti.

App of Apps e ApplicationSets

Per gestire decine/centinaia di applicazioni:

  • App of Apps — un’Application che deploy altre Application (ricorsivo)
  • ApplicationSet (dalla 2.0, 2021) — template + generator che crea N Application da matrix (es. una per cluster + app)

Scala a migliaia di applicazioni con gestione dichiarativa.

Argo Workflows, Argo Events, Argo Rollouts

Ecosistema Argo Project più ampio:

  • Argo Workflows — orchestratore di pipeline in K8s native
  • Argo Events — event-driven trigger
  • Argo Rollouts — progressive deployments (canary, blue/green) avanzati

Concorrente: Flux

Flux CD (Weaveworks, poi CNCF) è l’alternativa principale:

  • Flux v2 (2021) supera la v1 con architettura modulare basata su controller separati
  • Più focus su GitOps puro senza UI web built-in
  • Più “piccolo” e componibile

Argo CD domina per progetti che vogliono UI ricca, Flux per chi preferisce pura CLI/kubectl.

Nel contesto italiano

Argo CD diventa standard in team K8s italiani tra 2020-2022:

  • Banche e assicurazioni con multi-cluster prod/dev
  • Telco su Kubernetes managed
  • PA che adottano GitOps come pattern di governance

Riferimenti: Argo CD 1.6 (luglio 2020). Intuit (sviluppo originale, 2018). CNCF Incubating (aprile 2020) → Graduated (dicembre 2022). Licenza Apache 2.0. GitOps (Alexis Richardson, Weaveworks, 2017). Argo Project: CD, Workflows, Events, Rollouts.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi