Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
File Naming Conventions for Terraform (.tf) Files
📖 Scenario: You are working on a Terraform project to manage cloud infrastructure. To keep your project organized and easy to understand, you need to follow proper file naming conventions for your Terraform files.Good file names help your team quickly find and update the right files without confusion.
🎯 Goal: Create Terraform files with clear and standard names that describe their purpose. This will help you and others maintain the infrastructure code easily.
📋 What You'll Learn
Create a Terraform file named main.tf for the primary configuration.
Create a Terraform file named variables.tf to declare input variables.
Create a Terraform file named outputs.tf to declare output values.
Create a Terraform file named providers.tf to configure providers.
💡 Why This Matters
🌍 Real World
Terraform projects often grow large. Using clear file names helps teams find and update code quickly.
💼 Career
Cloud engineers and DevOps professionals must organize infrastructure code well to collaborate and maintain systems efficiently.
Progress0 / 4 steps
1
Create the main Terraform configuration file
Create a Terraform file named main.tf that will hold the primary resource definitions.
Terraform
Hint
The main.tf file usually contains your main infrastructure resources.
2
Create the variables declaration file
Create a Terraform file named variables.tf to declare an input variable called region of type string.
Terraform
Hint
The variables.tf file holds all input variable declarations.
3
Create the outputs declaration file
Create a Terraform file named outputs.tf to declare an output called resource_id that outputs the ID of the null_resource.example.
Terraform
Hint
The outputs.tf file holds all output declarations to expose values after deployment.
4
Create the providers configuration file
Create a Terraform file named providers.tf to configure the null provider with no extra settings.
Terraform
Hint
The providers.tf file configures the providers your Terraform code uses.
Practice
(1/5)
1. Which of the following is the most common file name used to define the main Terraform configuration?
easy
A. terraform.tf
B. config.tf
C. setup.tf
D. main.tf
Solution
Step 1: Understand common Terraform file names
The main Terraform configuration is typically placed in a file named main.tf to keep it clear and standard.
Step 2: Compare options with common practice
Among the options, only main.tf is widely recognized and recommended for the main configuration.
Final Answer:
main.tf -> Option D
Quick Check:
Main configuration file = main.tf [OK]
Hint: Main config file is usually named main.tf [OK]
Common Mistakes:
Choosing uncommon names like config.tf
Using generic names like terraform.tf
Confusing setup files with main config
2. Which file name is conventionally used to declare input variables in Terraform?
easy
A. variables.tf
B. inputs.tf
C. vars.tf
D. params.tf
Solution
Step 1: Identify the standard file for input variables
Terraform commonly uses variables.tf to declare input variables for clarity and consistency.
Step 2: Check other options for correctness
Other names like inputs.tf, vars.tf, and params.tf are not standard and may confuse team members.
Final Answer:
variables.tf -> Option A
Quick Check:
Input variables file = variables.tf [OK]
Hint: Input variables go in variables.tf file [OK]
Common Mistakes:
Using inputs.tf instead of variables.tf
Shortening to vars.tf which is non-standard
Naming it params.tf which is unclear
3. Given these files in a Terraform project: main.tf, variables.tf, and outputs.tf, what is the purpose of outputs.tf?
medium
A. To define the resources to create
B. To declare input variables
C. To specify values to show after apply
D. To configure backend storage
Solution
Step 1: Understand the role of outputs.tf
The outputs.tf file is used to declare output values that Terraform will display after applying the configuration.
Step 2: Differentiate from other files
main.tf defines resources, variables.tf declares inputs, and backend configuration is usually in backend.tf or inside main.tf.
Final Answer:
To specify values to show after apply -> Option C
Quick Check:
outputs.tf shows output values [OK]
Hint: Outputs.tf shows results after apply [OK]
Common Mistakes:
Confusing outputs.tf with variables.tf
Thinking outputs.tf defines resources
Assuming outputs.tf configures backend
4. You have a Terraform project with files named main.tf, variables.tf, and output.tf. Why might this violate standard conventions?
medium
A. Because main.tf must contain outputs
B. Because the outputs file is misnamed; it should be outputs.tf
C. Because variables.tf is missing output declarations
D. Because Terraform requires outputs in a .json file
Solution
Step 1: Check file naming conventions for outputs
The conventional file name for outputs is outputs.tf (plural). Naming it output.tf (singular) violates standard conventions.
Step 2: Understand Terraform file loading
Terraform loads all .tf files regardless of name for functionality, but standard names improve clarity and teamwork.
Final Answer:
Because the outputs file is misnamed; it should be outputs.tf -> Option B
Quick Check:
outputs file = outputs.tf [OK]
Hint: Outputs file should be named outputs.tf [OK]
Common Mistakes:
Assuming outputs can be in variables.tf
Thinking main.tf must have outputs
Expecting outputs in JSON files
5. You want to organize a large Terraform project by splitting configurations into multiple files. Which naming approach best supports teamwork and maintenance?
hard
A. Use descriptive names like network.tf, compute.tf, variables.tf, outputs.tf
B. Name all files config1.tf, config2.tf, config3.tf for simplicity
C. Put all code in main.tf to avoid confusion
D. Use random names to avoid predictable patterns
Solution
Step 1: Consider clarity and teamwork in file naming
Descriptive file names like network.tf and compute.tf help team members quickly find and understand code sections.
Step 2: Evaluate other naming options
Generic names like config1.tf or random names cause confusion and make maintenance harder. Putting all code in one file reduces clarity.
Final Answer:
Use descriptive names like network.tf, compute.tf, variables.tf, outputs.tf -> Option A
Quick Check:
Descriptive file names improve teamwork [OK]
Hint: Use clear, descriptive file names for easier teamwork [OK]