Architecture_GitHub_Actions - basedosdados/iac GitHub Wiki

Continuous Deployment [Terraform]

Atualmente o projeto consiste em um ambiente denominado development no qual se reflete no projeto GCP basedosdados-dev.

A action é acionada quando ocorre um push para a branch main do repositório e a modificação sob o diretório terraform. É necessário uma aprovação de uma pessoa do time de infra para que a action possa ser executada.

Os passos da action cd-terraform.yaml são:

  1. [manual] Aprovação de execução da action via interface do GitHub;
  2. Inicia o processo de deploy no ambiente development;
    1. Clona o repositório do projeto;
    2. Importa as credenciais do GCP armazenadas no Vault;
    3. Configuração do Terraform;
    4. Inicializa o Terraform;
    5. Verifica a formatação dos arquivos do Terraform;
    6. Valida as configurações dos arquivos do Terraform;
    7. Aplica as modificaçãos
    8. Caso falhe em algum passo a action é cancelada;
  3. Reporta as falhas

Imagem: Action: cd-terraform.yaml

Continuous Integration [Terraform]

Esta etapa consiste em validar as configurações do Terraform e notificar na pull request via comentário o planejamento do deploy.

A action é acionada quando aberto um pull request que contenha alterações no diretório terraform.

Os passos da action ci-terraform.yaml são:

  1. [manual] Criação de uma nova branch para o pull request;
  2. [manual] Commit das alterações;
  3. Clona o repositório do projeto;
  4. Importa as credenciais do GCP armazenadas no Vault;
  5. Configuração do Terraform;
  6. Inicializa o Terraform;
  7. Verifica a formatação dos arquivos do Terraform;
  8. Valida as configurações dos arquivos do Terraform;
  9. Planejamento do deploy;
  10. Adiciona/Atualiza o comentário na pull request com o saída do terraform plan;
  11. Caso falhe em algum passo a action é cancelada;

Imagem: Action: ci-terraform.yaml

Infracost

A action tem como objetivo calcular o custo de infraestrutura dos componentes declarados no Terraform e adicionar um comparativo via comentário na pull request.

A action é acionada na criação de uma pull request que contenha alterações no diretório terraform.

Os passos da action infracost.yaml são:

  1. Clona o repositório do projeto;
  2. Importa as credenciais do GCP armazenadas no Vault;
  3. Configuração do Infracost;
  4. Altera para a branch principal;
  5. Altera para a branch corrente;
  6. Gera uma diferença entre as duas branches;
  7. Adiciona um comentário na pull request com o saída do infracost --diff;

Imagem: Action: infracost.yaml