Skip to content

ADR-001 — ArgoCD por site

Status

Vigente — 2026-05-01.

Contexto

CPPS opera 2 sites (Franca, SP) interligados via UnespNet. ArgoCD reconcilia o estado desejado (manifests no git) com o estado real do cluster.

Há dois modelos possíveis:

  • Centralizado: 1 ArgoCD num site gerenciando os 2 clusters
  • Distribuído: 1 ArgoCD por cluster, cada um gerenciando seu próprio site

Decisão

2 instâncias independentes — uma em Franca, outra em SP.

Cada ArgoCD observa seu sub-conjunto do repo:

apps/
├── franca/ ← ArgoCD Franca
├── sp/ ← ArgoCD SP
└── multi/ ← ApplicationSet propaga em ambos

Alternativas rejeitadas

  • ArgoCD central em Franca: se link UnespNet cai, SP perde reconciliação. Viola princípio de autonomia local.
  • ArgoCD central com clusters externos registrados: mesma fraqueza — partição de rede paralisa SP.

Consequências

Positivas:

  • Cada site sobrevive partição de rede; reconciliação local continua
  • Falha de ArgoCD num site não afeta o outro
  • Manifests próprios do site não atravessam link cross-site

Negativas:

  • 2 instâncias pra manter (upgrade, config, backup)
  • ApplicationSet ou propagação manual pra apps multi-site
  • 2 webhooks pra git
  • 2 conjuntos de RBAC sincronizados com Authentik

Critério de revisão

Reabrir se:

  • Operar 2 ArgoCDs virar mais doloroso que ganho de autonomia
  • Aparecer ferramenta que permita federação real sem dependência de link cross-site
  • Mais de 5 clusters virarem realidade (Karmada começa a fazer sentido)