dnf install reads metadata for every enabled repo and downloads the
vendored vault RPM on every pipeline run. Fetch the pinned upstream zip
from the artifactapi hashicorp-releases remote instead, matching
terraform-vault and terraform-artifactapi.
- Replace dnf install vault with a pinned curl of the vault zip from the
artifactapi hashicorp-releases remote, extracted to /usr/local/bin.
PR plan pipelines were failing with "Error acquiring the state lock"
when they collided with a concurrent apply (or another plan) holding
the lock on the same Consul-backed state.
- plan: pass -lock=false to terragrunt plan; apply keeps locking
The versions.tf conflicts with terragrunt's generated backend.tf which
already has required_providers. Exclude modules/ from tofu-validate and
tflint pre-commit hooks since they can't init without the full terragrunt
context.
The generated backend.tf defines a terraform variable, so the Makefile
must export the API key as TF_VAR_prowlarr_api_key rather than PROWLARR_API_KEY.