Difference between revisions of "Terraform best practices"

From wikieduonline
Jump to navigation Jump to search
Tags: Mobile web edit, Mobile edit
 
(38 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  
 
* https://www.terraform.io/cloud-docs/guides/recommended-practices
 
* 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
 
* https://cloud.google.com/docs/terraform/best-practices-for-terraform
 +
 +
== Best practices from [[Google Cloud]] team ==
 +
https://cloud.google.com/docs/terraform/best-practices-for-terraform
 +
* Protect [[stateful resources]]: <code>[[lifecycle]] { [[prevent_destroy]] = true }</code>
 +
* Expose [[Terraform: output|outputs]]: <code>[[outputs.tf]]</code>
 +
* Use [[data sources]]: <code>[[data.]]</code>
 +
* Adopt a naming convention.
 +
* Use [[variables]] carefully: <code>[[variables.tf]]</code>
 +
* Limit the use of custom scripts
 +
* Follow a [[standard module structure]]
 +
* Include helper scripts in a separate directory: <code>[[helpers/]]</code>
 +
* Put static files in a separate directory: <code>[[files/]]</code>
 +
* Use built-in formatting: <code>[[terraform fmt]]</code>
 +
* Limit the complexity of expressions.
 +
* Use <code>[[Terraform meta argument: count|count]]</code> for conditional values.
 +
* Use <code>[[for_each]]</code> for [[iterated resources]].
 +
* Publish [[Terraform modules|modules]] to a [[registry]].
 +
 +
=== Operations ===
 +
* Don't modify [[Terraform state]] manually.
 +
* Always [[plan]] first, <code>[[terraform plan]]</code>
 +
* Implement an automated [[pipeline]].
 +
* Use [[service account]] credentials for CI.
 +
* Avoid [[terraform import|importing]] existing resources.
 +
* Regularly review version [[pins]].
 +
* Use application default credentials when running locally.
 +
* Set [[aliases]] to Terraform.
  
 
== Related ==
 
== Related ==
 
* [[Best practices]]
 
* [[Best practices]]
 
* [[main]]
 
* [[main]]
 +
* <code>[[prevent_destroy]]</code>
 +
 +
== Activities ==
 +
* Read https://www.digitalocean.com/community/tutorials/how-to-structure-a-terraform-project
  
 
== See also ==
 
== See also ==
 
* {{Terraform}}
 
* {{Terraform}}
 +
 +
[[Category:Terraform]]

Latest revision as of 11:12, 30 May 2024

Best practices from Google Cloud team[edit]

https://cloud.google.com/docs/terraform/best-practices-for-terraform

Operations[edit]

Related[edit]

Activities[edit]

See also[edit]

Advertising: