├── .gitbook └── assets │ ├── cast-logo.png │ ├── cluster-dev-logo-site.png │ ├── coder-logo-for-sponsor.png │ ├── composition-1.png │ ├── ctf-logo.png │ └── speakeasy-logo.png ├── .github ├── FUNDING.yml └── ISSUE_TEMPLATE │ ├── bug-report.md │ └── feature_request.md ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── SUMMARY.md ├── assets ├── Terraform Best Practices_Book Cover_1.png └── Terraform Best Practices_Book Cover_2.png ├── code-structure.md ├── code-styling.md ├── drawings ├── .gitkeep └── Composition 1 (4).xml ├── examples.md ├── examples ├── README.md ├── large-terraform │ ├── README.md │ ├── modules │ │ └── network │ │ │ ├── main.tf │ │ │ ├── outputs.tf │ │ │ └── variables.tf │ ├── prod │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── terraform.tfvars │ │ └── variables.tf │ └── stage │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── terraform.tfvars │ │ └── variables.tf ├── medium-terraform │ ├── README.md │ ├── modules │ │ └── network │ │ │ ├── main.tf │ │ │ ├── outputs.tf │ │ │ └── variables.tf │ ├── prod │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── terraform.tfvars │ │ └── variables.tf │ └── stage │ │ ├── main.tf │ │ ├── outputs.tf │ │ ├── terraform.tfvars │ │ └── variables.tf ├── small-terraform │ ├── README.md │ ├── main.tf │ ├── outputs.tf │ ├── terraform.tfvars │ └── variables.tf ├── terraform.md ├── terraform │ ├── README.md │ ├── large-size-infrastructure-with-terraform.md │ ├── medium-size-infrastructure.md │ └── small-size-infrastructure.md └── terragrunt.md ├── faq.md ├── key-concepts.md ├── key-concepts ├── compositions.md ├── infrastructure-modules.md └── resource-modules.md ├── naming.md ├── not-best-practices └── sub-menu.md ├── references.md ├── snippets └── locals.tf ├── todo.md ├── workshop.md └── writing-terraform-configurations.md /.gitbook/assets/cast-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.gitbook/assets/cast-logo.png -------------------------------------------------------------------------------- /.gitbook/assets/cluster-dev-logo-site.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.gitbook/assets/cluster-dev-logo-site.png -------------------------------------------------------------------------------- /.gitbook/assets/coder-logo-for-sponsor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.gitbook/assets/coder-logo-for-sponsor.png -------------------------------------------------------------------------------- /.gitbook/assets/composition-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.gitbook/assets/composition-1.png -------------------------------------------------------------------------------- /.gitbook/assets/ctf-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.gitbook/assets/ctf-logo.png -------------------------------------------------------------------------------- /.gitbook/assets/speakeasy-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.gitbook/assets/speakeasy-logo.png -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.github/ISSUE_TEMPLATE/bug-report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/README.md -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/SUMMARY.md -------------------------------------------------------------------------------- /assets/Terraform Best Practices_Book Cover_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/assets/Terraform Best Practices_Book Cover_1.png -------------------------------------------------------------------------------- /assets/Terraform Best Practices_Book Cover_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/assets/Terraform Best Practices_Book Cover_2.png -------------------------------------------------------------------------------- /code-structure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/code-structure.md -------------------------------------------------------------------------------- /code-styling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/code-styling.md -------------------------------------------------------------------------------- /drawings/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /drawings/Composition 1 (4).xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/drawings/Composition 1 (4).xml -------------------------------------------------------------------------------- /examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples.md -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/README.md -------------------------------------------------------------------------------- /examples/large-terraform/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/README.md -------------------------------------------------------------------------------- /examples/large-terraform/modules/network/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/modules/network/main.tf -------------------------------------------------------------------------------- /examples/large-terraform/modules/network/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/modules/network/outputs.tf -------------------------------------------------------------------------------- /examples/large-terraform/modules/network/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/modules/network/variables.tf -------------------------------------------------------------------------------- /examples/large-terraform/prod/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/prod/main.tf -------------------------------------------------------------------------------- /examples/large-terraform/prod/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/prod/outputs.tf -------------------------------------------------------------------------------- /examples/large-terraform/prod/terraform.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/prod/terraform.tfvars -------------------------------------------------------------------------------- /examples/large-terraform/prod/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/prod/variables.tf -------------------------------------------------------------------------------- /examples/large-terraform/stage/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/stage/main.tf -------------------------------------------------------------------------------- /examples/large-terraform/stage/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/stage/outputs.tf -------------------------------------------------------------------------------- /examples/large-terraform/stage/terraform.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/stage/terraform.tfvars -------------------------------------------------------------------------------- /examples/large-terraform/stage/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/large-terraform/stage/variables.tf -------------------------------------------------------------------------------- /examples/medium-terraform/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/README.md -------------------------------------------------------------------------------- /examples/medium-terraform/modules/network/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/modules/network/main.tf -------------------------------------------------------------------------------- /examples/medium-terraform/modules/network/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/modules/network/outputs.tf -------------------------------------------------------------------------------- /examples/medium-terraform/modules/network/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/modules/network/variables.tf -------------------------------------------------------------------------------- /examples/medium-terraform/prod/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/prod/main.tf -------------------------------------------------------------------------------- /examples/medium-terraform/prod/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/prod/outputs.tf -------------------------------------------------------------------------------- /examples/medium-terraform/prod/terraform.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/prod/terraform.tfvars -------------------------------------------------------------------------------- /examples/medium-terraform/prod/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/prod/variables.tf -------------------------------------------------------------------------------- /examples/medium-terraform/stage/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/stage/main.tf -------------------------------------------------------------------------------- /examples/medium-terraform/stage/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/stage/outputs.tf -------------------------------------------------------------------------------- /examples/medium-terraform/stage/terraform.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/stage/terraform.tfvars -------------------------------------------------------------------------------- /examples/medium-terraform/stage/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/medium-terraform/stage/variables.tf -------------------------------------------------------------------------------- /examples/small-terraform/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/small-terraform/README.md -------------------------------------------------------------------------------- /examples/small-terraform/main.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/small-terraform/main.tf -------------------------------------------------------------------------------- /examples/small-terraform/outputs.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/small-terraform/outputs.tf -------------------------------------------------------------------------------- /examples/small-terraform/terraform.tfvars: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/small-terraform/terraform.tfvars -------------------------------------------------------------------------------- /examples/small-terraform/variables.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/small-terraform/variables.tf -------------------------------------------------------------------------------- /examples/terraform.md: -------------------------------------------------------------------------------- 1 | # Terraform 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/terraform/README.md: -------------------------------------------------------------------------------- 1 | # Terraform 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /examples/terraform/large-size-infrastructure-with-terraform.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/terraform/large-size-infrastructure-with-terraform.md -------------------------------------------------------------------------------- /examples/terraform/medium-size-infrastructure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/terraform/medium-size-infrastructure.md -------------------------------------------------------------------------------- /examples/terraform/small-size-infrastructure.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/examples/terraform/small-size-infrastructure.md -------------------------------------------------------------------------------- /examples/terragrunt.md: -------------------------------------------------------------------------------- 1 | # Terragrunt 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /faq.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/faq.md -------------------------------------------------------------------------------- /key-concepts.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/key-concepts.md -------------------------------------------------------------------------------- /key-concepts/compositions.md: -------------------------------------------------------------------------------- 1 | # Compositions 2 | 3 | -------------------------------------------------------------------------------- /key-concepts/infrastructure-modules.md: -------------------------------------------------------------------------------- 1 | # Infrastructure modules 2 | 3 | -------------------------------------------------------------------------------- /key-concepts/resource-modules.md: -------------------------------------------------------------------------------- 1 | # Resource modules 2 | 3 | -------------------------------------------------------------------------------- /naming.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/naming.md -------------------------------------------------------------------------------- /not-best-practices/sub-menu.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /references.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/references.md -------------------------------------------------------------------------------- /snippets/locals.tf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/snippets/locals.tf -------------------------------------------------------------------------------- /todo.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/todo.md -------------------------------------------------------------------------------- /workshop.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/workshop.md -------------------------------------------------------------------------------- /writing-terraform-configurations.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/HEAD/writing-terraform-configurations.md --------------------------------------------------------------------------------