Camada 7 — GitOps & app lifecycle (ArgoCD)
Esta camada gerencia o lifecycle de apps no K8s de forma declarativa. Manifest no git é a fonte de verdade; ArgoCD detecta diferenças e reconcilia.
Componentes
| Componente | Papel |
|---|---|
| ArgoCD server | API + UI + autenticação |
| ArgoCD application controller | Detecta drift, faz sync |
| ArgoCD repo server | Render templates (Helm, Kustomize) |
| ApplicationSet controller | Propagação multi-cluster (substitui Karmada pra casos simples) |
Decisões CPPS
- 2 ArgoCDs independentes (1 por site) — autonomia local (ADR-001)
- Repo single (
colabhd/devops) com estruturaapps/franca/,apps/sp/,apps/multi/ - Helm + Kustomize como templating engines
- ApplicationSet pra propagação cross-cluster
Estado atual
- ✅ ArgoCD Franca em produção (12 apps)
- ❌ ArgoCD SP pendente
- ❌ Refactor
apps/em estrutura por site - ❌ ApplicationSet pra apps multi-site
Princípio “Zero SSH manual”
O repositório é a única fonte de verdade. Toda mudança na infraestrutura é um commit. ArgoCD sincroniza automaticamente — edições manuais no cluster são revertidas.
Implica:
kubectl editdireto → ArgoCD reverte em ~5 min (selfHeal)- Arquivo removido do git → recurso removido do cluster (prune)
- Commit em main → deploy automático
Referência cruzada
- Camada 8 (multi-cluster): /camadas/8-multi-cluster/
- ADR-001: ArgoCD por site