Deploy de aplicações no Kubernetes usando Argo CD com suporte a Helm, Sops e Multiple Sources

Em outro tutorial, eu falei sobre a abordagem GitOps e uso do Argo CD para deploy de aplicações em clusters Kubernetes… Recomendo a leitura para entender alguns conceitos antes de partir para o assunto que será explicado aqui.

Multiple Sources

Quando eu escrevi o tutorial anterior, o Argo CD estava na versão 2.1.1 e não tinha suporte a deploy de aplicações obtendo simultaneamente o helm chart de um repositório helm e os arquivos de values de um repositório git. Este tipo de deploy só funcionava se o helm chart e os arquivos de values da aplicação estivessem no mesmo repositório git.

Com o lançamento da versão 2.6.0-rc1 (release candidate), o Argo CD ganhou entre outras funcionalidades, a capacidade de fazer o deploy de uma aplicação obtendo o helm chart e os arquivos de values de diferentes repositórios simultaneamente. Essa era uma funcionalidade muito aguardada pela comunidade e demorou alguns anos para ser implementada. Algumas das novas funcionalidades estão explicadas neste tutorial: https://blog.argoproj.io/draft-argo-cd-v2-6-release-candidate-ced1853bbfdb.

Suporte a criptografia com Sops e AWS KMS

Conforme explicado nesta página https://argoproj.github.io/argo-cd/operator-manual/secret-management/, o Argo CD não possui uma integração nativa com uma ferramenta que cifre ou decifre os dados sensíveis de uma aplicação Helm. Há vários jeitos e ferramentas de implementar isso e o Argo CD deixa os usuários bem à vontade para decidir como isso será implementado.

Uma das abordagens é customizar uma imagem Docker do Argo CD para adicionar as ferramentas e implementar o método para cifra e decifrar os arquivos.

Eu optei por utilizar o Sops integrado ao AWS-KMS. Junto com Isaac Mecchi, criei uma imagem Docker customizada para o Argo CD, que possui as seguintes ferramentas: Sops, Helm wrapper (script que possibilita a integração do Helm com alguns plugins), helm-secrets e helm-diff.

O repositório https://github.com/aeciopires/custom-argocd, apresenta um tutorial sobre como:

  • customizar a imagem Docker para o Argo CD;
  • configurar o Sops;
  • adicionar as credenciais da AWS;
  • fazer o deploy de uma aplicação Helm em um cluster Kubernetes usando a funcionalidade Multiple Sources do Argo CD.

Espere que isso ajude no uso da abordagem GitOps e fique à vontade para colaborar com melhorias ou correções.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *