GitOps
ArgoCD
Kubernetes
CI/CD
Deploy Declarativo
Infraestrutura como Código
Fluxo de Trabalho
Observabilidade
Helm
Kustomize

GitOps com ArgoCD: Automação de Deploys Declarativos

GitOps com ArgoCD: Automação de Deploys Declarativos

GitOps é a prática de gerenciar a infraestrutura e os deployments a partir de repositórios Git, tratando o repositório como a única fonte de verdade. O ArgoCD é a ferramenta líder para aplicar esse padrão em clusters Kubernetes, oferecendo sincronização automática, visualização de diff e auditoria completa.

Por que adotar GitOps?

  • Consistência, o estado desejado está versionado no Git; qualquer desvio pode ser revertido.
  • Auditoria, cada mudança tem histórico de commit, autor e revisão.
  • Rollback instantâneo, basta reverter o commit e o ArgoCD reconcilia o cluster.
  • Colaboração, pull-requests permitem revisão de alterações de infra antes de aplicar.

Arquitetura básica do ArgoCD

  1. Repository Server, armazena manifests (YAML, Helm, Kustomize).
  2. Application Controller, compara o estado do cluster com o manifesto no Git e aplica diferenças.
  3. API Server, expõe UI e API REST para gerenciamento.
  4. Dex / SSO, integração com provedores de identidade (GitHub, Okta).

O fluxo de trabalho é direto: o ArgoCD Controller faz git pull do repositório, aplica os manifestos no cluster Kubernetes via kubectl apply e lê continuamente o status do cluster para compará-lo com o estado desejado. Usuários interagem com o controller pela UI ou pela API. Assim, o repositório permanece como a única fonte de verdade e o cluster é mantido sincronizado de forma automática.

Configurando o repositório

A estrutura recomendada separa uma camada base/, com recursos compartilhados como namespace.yaml e rbac.yaml, de uma camada apps/, na qual cada aplicação (por exemplo, frontend e backend) tem seus próprios kustomization.yaml e deployment.yaml. O Kustomize permite sobrepor configurações por ambiente (dev, staging, prod) sem duplicar manifestos.

Manifesto de aplicação ArgoCD (YAML), 7 linhas

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/yourorg/infra.git targetRevision: HEAD path: apps/frontend destination: server: https://kubernetes.default.svc namespace: production syncPolicy: automated: prune: true selfHeal: true

O syncPolicy.automated habilita sincronização automática e limpeza de recursos obsoletos.

Estratégias de sincronização

  • Automática, ideal para ambientes de staging onde a velocidade é crítica.
  • Manual (PR-driven), para produção, onde cada mudança passa por revisão antes de ser aplicada.
  • Hooks, scripts que rodam antes ou depois da sincronização (ex.: migrações de DB).

Observabilidade e auditoria

  • UI, mostra diff entre o estado desejado e o real, com botão “Sync”.
  • Webhooks, notifica Slack/Teams em eventos de sync ou falha.
  • Metrics, expõe Prometheus metrics (argocd_app_sync_total, argocd_app_health_status).
  • Logs, centralize com Loki ou Elasticsearch para rastrear ações.

Segurança

  • RBAC, defina papéis (admin, read-only, dev) no namespace argocd.
  • SSO, integre com OAuth2/OIDC (GitHub, Google, Okta).
  • TLS mutuo, entre ArgoCD e o API server do Kubernetes.
  • Política de branch protection, exija revisões e status checks antes de merge.

Checklist de implementação

  • Criar repositório Git com estrutura base/ e apps/.
  • Instalar ArgoCD (kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml).
  • Configurar SSO/Dex para autenticação corporativa.
  • Definir Application CRDs para cada micro-serviço.
  • Habilitar syncPolicy.automated nos ambientes de teste.
  • Configurar alertas no Prometheus/Alertmanager para falhas de sync.
  • Documentar fluxo de PR → Merge → Sync.

Conclusão

GitOps com ArgoCD traz controle de versão, auditabilidade e automação para a entrega de aplicações Kubernetes. Ao seguir as boas-práticas de estrutura de repositório, segurança e observabilidade, sua equipe pode implantar mudanças com confiança e rapidez.


Já usa ArgoCD? Compartilhe suas dicas e desafios nos comentários!

Leia também