SelfCare-infrastructure
June 30, 2025 ยท View on GitHub
Self Care project infrastructure
Architecture
This is the architecture of Azure Selfcare

Requirements
1. terraform
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
Terraform modules
As PagoPA we build our standard Terraform modules, check available modules:
Apply changes
Before selecting the destination environment, it is necessary to set the environment variable.
export ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv)
To apply changes follow the standard terraform lifecycle once the code in this repository has been changed:
terraform.sh init [dev|uat|prod]
terraform.sh plan [dev|uat|prod]
terraform.sh apply [dev|uat|prod]
Terraform lock.hcl
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
rm .terraform.lock.hcl
terraform providers lock \
-platform=windows_amd64 \
-platform=darwin_amd64 \
-platform=darwin_arm64 \
-platform=linux_amd64
Precommit checks
Check your code before commit.
https://github.com/antonbabenko/pre-commit-terraform#how-to-install
pre-commit run -a