Terraform best practices
Jump to navigation
Jump to search
- https://www.terraform.io/cloud-docs/guides/recommended-practices
- One Workspace per Environment per Terraform configuration
- https://cloud.google.com/docs/terraform/best-practices-for-terraform
Best practices from Google Cloud team[edit]
https://cloud.google.com/docs/terraform/best-practices-for-terraform
- Protect stateful resources:
lifecycle { prevent_destroy = true } - Expose outputs:
outputs.tf - Use data sources:
data. - Adopt a naming convention.
- Use variables carefully:
variables.tf - Limit the use of custom scripts
- Follow a standard module structure
- Include helper scripts in a separate directory:
helpers/ - Put static files in a separate directory:
files/ - Use built-in formatting:
terraform fmt - Limit the complexity of expressions
- Use
countfor conditional values. - Use
for_eachfor iterated resources. - Publish modules to a registry.
Operations[edit]
- Don't modify Terraform state manually.
- Always plan first,
terraform plan - Implement an automated pipeline.
- Use service account credentials for CI.
- Avoid importing existing resources.
- Regularly review version pins.
- Use application default credentials when running locally.
- Set aliases to Terraform.
Related[edit]
Activities[edit]
See also[edit]
Advertising: