Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Terraform folder structure

I am new to terraform, moving from cloudformation and need a help in folder structure. I am creating bunch of aws services and have the folders structured as below. Is this the right way?

Development
     |
     services
         |
        lambda_function
          |
          main.tf
          vars.tf
          output.tf
        ecs
          |
          main.tf
          vars.tf
          output.tf

Question is, if we import existing VPC information, should it be in each layers? like a separate tf? or part of main.tf. There are many services who having the folder structure will help rather 3000 lines of single main.tf. Thanks

like image 526
Adi334 Avatar asked Feb 18 '26 16:02

Adi334


1 Answers

Like Filip Dupanović said, read the best practice guide on Hashicorp's site, but for folder structure, the gist of them are:

  • put your resources in a main.tf file
  • put inputs in variables.tf
  • put outputs in outputs.tf
  • put any private sub-modules you make (private means they are not intended for use in other modules) in a modules sub-folder.
  • create an examples folder that contains examples in subfolders.
  • create a README that describes the module's use. Consider using terraform-docs to generate part of it.

Example for mymodule in the git repo terraform-aws-mymodule:

terraform-aws-mymodule
 +- examples
 |   +- simple
 |      + main.tf
 +- modules
 |   +- lambda_function
 |       + main.tf
 |       + variables.tf
 |       + outputs.tf
 |   +- ecs
 |       + main.tf
 |       + variables.tf
 |       + outputs.tf
 + main.tf
 + variables.tf
 + outputs.tf
 + README.md
like image 69
mhvelplund Avatar answered Feb 21 '26 14:02

mhvelplund



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!