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