GitOps com ArgoCD: deploy contínuo sem kubectl apply
Setup do ArgoCD, app-of-apps pattern, sync strategies e como implementar GitOps de verdade em clusters Kubernetes.
Se sua equipe ainda faz deploy com `kubectl apply` manual ou scripts imperativo, você está perdendo rastreabilidade, auditoria e a capacidade de rollback instantâneo. GitOps com ArgoCD resolve isso de forma elegante.
O que é GitOps
GitOps é um paradigma operacional onde o Git é a single source of truth para o estado desejado da infraestrutura e aplicações. O ArgoCD monitora repositórios Git e sincroniza automaticamente o cluster Kubernetes com o estado declarado.
Princípios GitOps:
Instalando ArgoCD
```bash
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd \
--namespace argocd \
--create-namespace \
--set server.service.type=LoadBalancer \
--set configs.params.server.insecure=true
kubectl -n argocd get secret argocd-initial-admin-secret \
-o jsonpath="{.data.password}" | base64 -d
```
Criando uma Application
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: api-producao
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/empresa/k8s-manifests.git
targetRevision: main
path: apps/api/overlays/producao
destination:
server: https://kubernetes.default.svc
namespace: producao
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
```
App-of-Apps Pattern
Para gerenciar dezenas de aplicações, use o pattern App-of-Apps: uma Application raiz que gerencia todas as outras.
```yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: root-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/empresa/k8s-manifests.git
path: apps
targetRevision: main
destination:
server: https://kubernetes.default.svc
namespace: argocd
```
Cada subdiretório em `apps/` contém a definição de uma Application. O ArgoCD descobre e gerencia todas automaticamente.
Sync Strategies
Auto-sync: o ArgoCD aplica mudanças automaticamente quando detecta diff entre Git e cluster. Ideal para ambientes de dev/staging.
Manual sync: mudanças são detectadas mas não aplicadas automaticamente. A equipe precisa aprovar via UI ou CLI. Recomendado para produção.
Self-heal: se alguém alterar um recurso diretamente no cluster (kubectl edit), o ArgoCD reverte para o estado do Git.
```bash
argocd app sync api-producao --prune
argocd app diff api-producao
```
Kustomize + ArgoCD
ArgoCD suporta Kustomize nativamente. Organize seus manifests com overlays por ambiente:
```
apps/api/
├── base/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── kustomization.yaml
└── overlays/
├── dev/
├── staging/
└── producao/
```
Rollback instantâneo
Com GitOps, rollback é um `git revert`. O ArgoCD detecta a mudança e sincroniza automaticamente. Sem scripts, sem SSH nos servidores, sem comandos manuais.
Conclusão
GitOps com ArgoCD elimina deploy manual, garante auditoria completa via Git history, detecta drift automaticamente e oferece rollback em segundos. É o padrão operacional para Kubernetes em produção.
Precisa de ajuda com DevOps?
Consultoria especializada com resultados mensuraveis. Fale com um especialista sem compromisso.
Artigos relacionados
Por que empresas brasileiras precisam de consultoria de TI com profundidade técnica real
Com 15+ anos em infraestrutura crítica, Cloud Azure/AWS, FinOps e Agentes de IA, a SENTINEL Tecnologia entrega resultados mensuráveis.
FinOpsFinOps na prática: como reduzimos até 30% dos custos de nuvem sem comprometer performance
Estudo de caso real: cliente reduziu R$ 47.000/mês no Azure com rightsizing. Metodologia FinOps da SENTINEL.