Neste post, vamos deixar tudo pronto pra você montar uma pipeline de build e deploy da sua aplicação usando GitHubActions e ArgoCD. Se você já manja de GitHub e ArgoCD, melhor ainda, porque aqui a ideia é ir direto ao ponto.
Bora lá?
Passo 1: Organize a casa com uma pasta para os objetos do Kubernetes
Vamos criar uma pasta chamada deploy com dois arquivos:
$ cd /path/to/your/repository
$ mkdir deploy
A estrutura final vai ficar da seguinte forma:
deploy/
├── deployment.yaml
└── service.yaml
Crie o arquivodeployment.yaml dentro da pasta deploy e adicione o conteúdo abaixo:
$ cd deploy
$ touch deployment.yaml
Arquivodeploy/service.yaml
$ cd deploy
$ touch service.yaml
Passo 2: Prepare o Dockerfile pra rodar tudo em contêiner
Crie mais um arquivo no seu repositório com o nome "Dockerfile". Cada aplicação pode necessitar de um Dockerfile específico, mas aqui vai um exemplo de Dockerfile que funciona bem para uma aplicação Golang:
$ cd /path/to/your/repository
$ touch Dockerfile
Passo 3: Configure a Action para build e deploy
Agora vem o toque final: configurar a GitHub Action. Com ela, toda vez que você fizer um push, a pipeline vai cuidar de construir e fazer o deploy da aplicação. Neste exemplo vamos utilizar Kaniko para fazer build e push da imagem para o seu repositório de imagens. Crie um arquivo .github/workflows/deploy.yml com o conteúdo a seguir:
$ cd /path/to/your/repository
$ mkdir .github/workflows
$ cd .github/workflows/
$ touch deploy.yml
Conclusão
E pronto! Basta commitar este código no seu Github que a pipeline deve iniciar. Esse workflow faz o checkout do código, instala as dependências, roda os testes, constrói a aplicação e a imagem Docker, e finaliza com o deploy usando o ArgoCD. Agora é só relaxar e deixar a pipeline fazer o trabalho pesado.
Precisa implementar fluxos de pipelines mais complexos? Nós da Cloudscript estamos aqui pra te auxiliar. Fique a vontade entrar em contato com a gente.