Arc (Area Riservata Cittadino) project infrastructure
In order to manage the suitable version of terraform it is strongly recommended to install the following tool:
- tfenv: Terraform version manager inspired by rbenv.
Once these tools have been installed, install the terraform version shown in:
- .terraform-version
After installation install terraform:
tfenv install
In order to properly populate terraform variables for each environment, a script located at scripts/terraform.sh
is provided.
Terraform invocations described here where environent parameters are required can be replaced with invocations to terraform.sh
by passing an environment specification. For example:
./terraform.sh plan itn-dev
NOTE: terraform.sh
must be run from the project folder.
As PagoPA we build our standard Terraform modules, check available modules:
We have both developers who work with your Terraform configuration on their Linux, macOS or Windows workstations and automated systems that apply the configuration while running on Linux. https://www.terraform.io/docs/cli/commands/providers/lock.html#specifying-target-platforms
So we need to specify this in terraform lock providers:
terraform init
terraform providers lock \
-platform=linux_arm64 \
-platform=linux_amd64 \
-platform=darwin_amd64 \
-platform=windows_amd64
Check your code before commit.
https://github.com/antonbabenko/pre-commit-terraform#how-to-install
pre-commit run -a