Difference between revisions of "Terraform best practices"
Jump to navigation
Jump to search
Tags: Mobile web edit, Mobile edit |
Tags: Mobile web edit, Mobile edit |
||
Line 4: | Line 4: | ||
== Best practices from Google Cloud team == | == Best practices from Google Cloud team == | ||
https://cloud.google.com/docs/terraform/best-practices-for-terraform | https://cloud.google.com/docs/terraform/best-practices-for-terraform | ||
− | * Protect [[stateful resources]]: <code>lifecycle { prevent_destroy = true }</code> | + | * Protect [[stateful resources]]: <code>[[lifecycle]] { [[prevent_destroy]] = true }</code> |
* Follow a standard module structure. | * Follow a standard module structure. | ||
* Adopt a naming convention. | * Adopt a naming convention. |
Revision as of 13:22, 3 July 2022
Best practices from Google Cloud team
https://cloud.google.com/docs/terraform/best-practices-for-terraform
- Protect stateful resources:
lifecycle { prevent_destroy = true }
- Follow a standard module structure.
- Adopt a naming convention.
- Use variables carefully.
- Expose outputs.
- Use data sources.
- Limit the use of custom scripts.
- Include helper scripts in a separate directory.
- Put static files in a separate directory.
- Use built-in formatting.
- Limit the complexity of expressions.
- Use count for conditional values.
- Use for_each for iterated resources.
- Publish modules to a registry.
Related
See also
- Terraform, OpenTofu, Terrakube.org, Installation, Terraform AWS, Terraform GCP, Terraform commands, Terraform Cloud, Terraform Enterprise (TFE), HCL, HIL, meta-arguments, providers, modules, resource, provisioners, data sources, backends: remote backends, examples, configuration files, state files, variables, types, Terraform Registry, conditionals:
depends_on
, functions, Blocks, dynamic blocks, errors, Terragrunt, Terraformer, Terratest, Terraform certifications, Terraform map type, Terraform Associate, Terraform: list type,TF_VAR_, TF_LOG
, Terraform provider versioning, Terraform Style Conventions, Required version, Terraform plugin, Terraform Named Values, tags, Changelog,tfsec, tflint
, Operators, Expressions:for, splat
, Debugging, Namespaces, Terraform Landing Zones, CDKTF, Atmos
Advertising: