Este repositório tem como objetivo nivelar o conhecimento sobre o ecossistema Argo, abordando seus principais componentes, conceitos e boas práticas de uso em pipelines modernos de Continuous Delivery (CD) e GitOps.
O Argo é um conjunto de ferramentas nativas do Kubernetes desenvolvidas para automatizar e gerenciar pipelines de CI/CD, fluxos de trabalho e eventos. Ele se divide em quatro projetos principais:
| Componente | Função Principal | Destaques |
|---|---|---|
| Argo CD | Continuous Delivery (CD) declarativo e GitOps | Sincroniza o estado do cluster com o Git |
| Argo Rollouts | Estratégias avançadas de deploy | Canary, Blue-Green, Rollback automático |
| Argo Workflows | Execução de pipelines complexos no Kubernetes | Workflows como código |
| Argo Events | Gerenciamento de eventos e automação | Triggers, sensores e integração com ferramentas externas |
graph TD
A[Desenvolvedor cria feature branch] --> B[Commit e Push no Git]
B --> C[Pipeline CI executa testes e build]
C --> D[ArgoCD monitora repositório Git]
D --> E[Sincronização automática com cluster Kubernetes]
E --> F[Argo Rollouts gerencia a estratégia de deploy]
F --> G[Observabilidade com métricas e alertas]
G --> H[Rollback automático se falhar]
H --> I["Versão promovida para ambientes superiores TST/PRD"]
| Termo | Descrição |
|---|---|
| Feature Branch | Ramificação criada para desenvolver uma nova funcionalidade. |
| Pull Request (PR) | Solicitação para mesclar código de uma feature branch no branch principal. |
| Main / Master Branch | Branch estável de produção. |
| GitOps | Prática onde o Git é a única fonte de verdade do estado de aplicações e infraestrutura. |
| Manifestos Kubernetes | Arquivos YAML que descrevem o estado desejado de objetos no cluster. |
| Sync Policy | Define como o ArgoCD sincroniza o cluster com o Git (manual ou automática). |
| Health Checks | Avaliação do estado dos recursos para garantir integridade pós-deploy. |
-
O que é Argo Rollouts?
Uma extensão do Kubernetes que oferece estratégias de implantação avançadas como Canary e Blue-Green. -
Quais estratégias NÃO são suportadas?
❌ Recreate e Rolling Update (são do deployment padrão). -
O Argo Rollouts substitui Deployments padrão?
✅ Verdadeiro — ele oferece recursos mais avançados e métricas integradas. -
Suporta integração com métricas e Ingress?
✅ Verdadeiro — pode se integrar com Prometheus, Istio, Linkerd e Ingress (NGINX/ALB). -
Possui painel e notificações integradas?
❌ Falso — o painel é simples, e as notificações precisam de integração (ex: Argo Notifications). -
Realiza rollback automático com base em métricas?
✅ Verdadeiro. -
Principal vantagem:
Controle fino sobre tráfego, métricas e versionamento durante o rollout.
-
O que é Argo Events?
Ferramenta para gerenciar eventos e gatilhos no Kubernetes. -
Componentes principais:
- Gateway
- Sensor
- Trigger
- (❌ Rollout não faz parte do Argo Events)
-
Pode acionar funções Lambda e enviar mensagens Kafka?
✅ Verdadeiro.
-
Função principal:
Criar pipelines complexos e paralelos no Kubernetes. -
Recurso usado:
Workflow— é o principal CRD (Custom Resource Definition) utilizado. -
Recursos principais:
- CLI e Dashboard próprios
- Suporte a artefatos e templates reutilizáveis
- Integração com Argo Events
-
Suporta Blue-Green Deployments?
❌ Não — isso é função do Argo Rollouts. -
Pode escalar para milhares de workflows/dia?
✅ Sim, é altamente escalável.
-
Função do ApplicationSet:
Criar, atualizar e gerenciar múltiplos Applications de forma dinâmica no ArgoCD. -
Pode direcionar múltiplos clusters?
✅ Verdadeiro. -
Geradores suportados:
- List Generator
- Git Generator
- Cluster Generator
(❌ Helm Generator não é suportado diretamente)
-
Suporte a monorepo e múltiplos repositórios Git?
✅ Verdadeiro. -
List Generator:
Gera manifests com base em uma lista fixa de aplicações.
-
Função:
Permite que um Application gerencie outros Applications. -
Vantagem principal:
Facilita implantações massivas e organizadas. -
Usos comuns:
- Ambientes DEV, TST, PRD
- Clusters multi-tenant
- Combinação com Helm e Kustomize
-
Pode ser usado com ApplicationSets?
✅ Sim, combinam perfeitamente para máxima flexibilidade.
- Organize os manifests por ambiente (dev, tst, prd).
- Automatize validações de YAML e policies com ferramentas como Kubeval ou OPA.
- Habilite Sync Policy automática apenas em ambientes controlados.
- Mantenha observabilidade integrada com Prometheus + Grafana.
- Utilize Argo Notifications para alertas em canais como Slack ou Teams.
- Documentação oficial ArgoCD
- Documentação Argo Rollouts
- Argo Workflows
- Argo Events
- Repositório oficial Argo Project
🧑💻 Autor: Pierre Santos
📅 Última atualização: Novembro/2025
🏷️ Objetivo: Nivelar o conhecimento sobre o ecossistema Argo e padronizar práticas de GitOps.