Closed gomex closed 3 years ago
O PR #8 resolveu os testes locais executando no pipeline o make test
a partir do diretório examples/terraform/local-backend
.
Falta a definição do global.vars
@gomex necessitamos mesmo definir um arquivo global.vars
?
Acredito que o módulo poderia ser consumido usando os valores padrão de Input Variables, ou seja, terraform.tfvars
, terraform.tfvars.json
, *.auto.tfvars
.
Podemos criar exemplos de utilização de um desses arquivos dentro do diretório examples
.
@marcelomansur eu apoio sim. O arquivo global.vars
foi a escolha dessa implementação, mas curto muito mais a ideia de usar esses arquivos da forma que sugeriu sim.
Decidimos colocar informação sobre como passar variável para o terraform dentro da documentação do terraform: https://github.com/mentoriaiac/Makefiles/tree/main/examples/terraform
A forma como executamos os comandos hoje obriga que a pessoa utilize o backend S3. Ele pode ser o backend indicado por nosso projeto a ser usado. Isso é bom e não tenho nada contra isso, mas precisa oferecer uma forma de teste local que não precise disse, afinal o nosso código terraform que está na pasta
test/terraform
não precisa de credencial na AWS para nada, sendo assim seria muito bom que a pessoa a usar isso localmente para testar também não tivesse.Isso seria muito bom para o CI/CD também, pois poderíamos colocar um
make test
e assim testar um fluxo mais completo do uso desse terraform.inc.Isso envolve mudar alguns pontos:
O backend precisa ser variável
Ao invés de:
echo -e "terraform {\nbackend "s3" {}\n}" > backend.tf
Poderia ser:
echo -e "terraform {\nbackend "${TERRAFORM_BACKEND}" {}\n}" > backend.tf
A configuração do backend precisa sair do init
Hoje o init demanda esse tipo de configuração por padrão:
Minha sugestão é que ele saia desse passo e vá para
terraform-generate-backend
mas podemos sugerir outro local, sem problemas.Onde está o global.vars?
Precisamos colocar um valor default para isso, para evitar que isso quebre o uso no teste local. A necessidade desse arquivo não está no README, mas mesmo que estivesse, eu optaria por colocar um valor default, mas podemos discutir sobre isso.