Argo CD 3.5 eleva nível de segurança em GitOps com mTLS e validação de commits
Aprofundamento CEVIU
Aprofundamento
O ApplicationSet é um recurso do ecossistema Argo CD que automatiza a criação de múltiplas instâncias de aplicações a partir de templates parametrizados, por exemplo, implantar a mesma aplicação em dezenas de namespaces ou clusters com variações controladas. Ele funciona como uma camada de geração declarativa: você define um template (como um Application) e um conjunto de parâmetros (via Git, Cluster, ou HTTP), e o controller do ApplicationSet renderiza os Application objects reais no cluster. Até o v3.4, não havia suporte nativo na UI para visualizar, filtrar ou prever essas instâncias, operadores dependiam de kubectl get applicationset ou leitura de YAML. A versão 3.5 fecha essa lacuna com uma interface dedicada, incluindo Preview Apps, que mostra exatamente quais Applications serão criados antes do sync, evitando surpresas em produção.
O mTLS interno resolve uma dívida técnica antiga: comunicação entre repo-server, API server e controllers era feita via gRPC sem criptografia, mesmo em clusters com mTLS externo ativo. Agora, o repo-server emite certificados autoassinados em memória (sem depender de arquivos no disco) e exige certificados válidos dos clientes, isso protege contra escuta interna e ataques de 'man-in-the-middle' entre componentes, especialmente relevante em ambientes multi-tenant ou com políticas de zero trust. Já a Source Integrity não é apenas verificação de assinatura GPG: ela impõe uma política explícita no Application spec (sourceIntegrity.required: true) ou via CLI, bloqueando syncs se o commit mais recente não tiver assinatura válida, algo que nem Flux nem Fleet oferecem nativamente como mecanismo integrado ao ciclo de sincronização.
O que mudou
Na cobertura CEVIU de 26/06, destacamos o lançamento do RC com ApplicationSet UI e beta de impersonation e Source Hydrator. Agora, com o release oficial em 03/07, o mTLS interno passa de RFC para funcionalidade estável, e não é só ativação: o comportamento padrão agora exige certificados, com fallback seguro para self-signed em memória. Também houve refinamento prático na Source Integrity: o flag --source-integrity-required foi expandido para suportar exclusões por branch ou tag via sourceIntegrity.exclude, algo não mencionado no RC mas confirmado na documentação final. Além disso, o ApplicationSet UI ganhou a capacidade de comparar dois previews lado a lado, útil para validar mudanças em templates antes de merge, feature ausente no anúncio inicial.
Por que isso importa
Para equipes que operam GitOps em escala, essas atualizações reduzem três riscos críticos: 1) exposição de tráfego interno entre componentes do Argo CD, que poderia ser explorada em ambientes com múltiplos tenants; 2) deploy acidental de manifests de commits adulterados ou não assinados, um vetor real de supply chain attack já observado em incidentes com repositórios comprometidos; 3) falhas de configuração em ApplicationSets que só aparecem após o sync, gerando downtime ou inconsistência entre ambientes. O fato de o Source Hydrator ter atingido beta com suporte a drySource e syncSource em repositórios distintos também permite separar responsabilidades: time de plataforma mantém templates, time de produto controla manifestos renderizados, sem depender de webhooks ou pipelines externos.
Linha do tempo
Argo CD 3.3 adiciona PreDelete hooks, clonagem shallow opcional e melhorias iniciais no Source Hydrator
Lançamento do RC do Argo CD 3.5 com ApplicationSet UI e status beta para impersonation e Source Hydrator
Publicação da interface visual nativa para ApplicationSets, com preview, comparação e análise de recursos
Lançamento oficial do Argo CD 3.5 com mTLS interno estável, Source Integrity obrigatória por política e refinamentos no ApplicationSet Preview
Perguntas frequentes
O mTLS interno do Argo CD 3.5 substitui o mTLS no ingress?
Não. O mTLS interno protege a comunicação entre componentes do Argo CD (repo-server, API server, controllers). O mTLS no ingress protege o tráfego externo, como acesso da UI ou CLI. Ambos são complementares e devem ser usados juntos em ambientes com políticas de zero trust.
Como o ApplicationSet Preview evita erros de implantação?
Ele renderiza os Application objects reais a partir do template e parâmetros, mostrando nomes, namespaces, destinos de cluster e até valores de variáveis, tudo antes do sync. Isso permite validar se o número de aplicações geradas, os labels e as referências a secrets estão corretos, sem precisar aplicar e depois corrigir.
O Source Integrity funciona com todos os provedores Git?
Funciona com qualquer repositório Git que suporte assinaturas de commit (GPG, S/MIME ou SSH). Mas a validação depende do cliente Git configurado no repo-server. Para Azure DevOps, há suporte específico a Service Principal desde esta versão, o que elimina a necessidade de PATs para clonagem segura.
O que muda no dia a dia com o impersonation em beta?
Agora, todas as operações do servidor (log streaming, sync, delete) são executadas sob a identidade do usuário que disparou a ação, não mais sob a conta de serviço do Argo CD. Isso gera auditoria precisa em RBAC e permite políticas de rede baseadas em usuário, como restrição de acesso a determinados namespaces conforme a identidade.
Fontes
- infoq.comfonte original
- Categoria
- CEVIU DevOps
- Publicado
- 03 de julho de 2026
- Editoria
- CEVIU DevOps

