Bird
Raised Fist0
Terraformcloud~5 mins

Workspace naming conventions in Terraform - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

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
Introduction
When working with Terraform, you often manage different environments like development, testing, and production. Workspace naming conventions help you keep these environments organized and avoid mistakes by giving each workspace a clear, consistent name.
When you want to separate infrastructure for development and production to avoid accidental changes.
When multiple team members work on the same Terraform project but need isolated environments.
When you deploy the same infrastructure in different regions or accounts and want clear labels.
When you automate Terraform runs and need predictable workspace names for scripts.
When you want to track infrastructure changes per environment easily.
Commands
This command creates a new workspace named 'dev' for development environment to isolate its infrastructure state.
Terminal
terraform workspace new dev
Expected OutputExpected
Created and switched to workspace "dev" You are now on a new workspace called "dev".
Creates a new workspace named 'prod' for production environment to keep its state separate from other environments.
Terminal
terraform workspace new prod
Expected OutputExpected
Created and switched to workspace "prod" You are now on a new workspace called "prod".
Lists all existing workspaces so you can see which environments are available and their exact names.
Terminal
terraform workspace list
Expected OutputExpected
* dev prod
Switches to the 'dev' workspace so that Terraform commands affect the development environment.
Terminal
terraform workspace select dev
Expected OutputExpected
Switched to workspace "dev".
Key Concept

If you remember nothing else from this pattern, remember: use clear, consistent workspace names to keep your environments separate and avoid mistakes.

Common Mistakes
Using inconsistent or unclear workspace names like 'test1' or 'env2'.
It causes confusion and increases the risk of applying changes to the wrong environment.
Use descriptive names like 'dev', 'staging', 'prod' that clearly indicate the environment purpose.
Not switching to the correct workspace before running Terraform commands.
Terraform will apply changes to the wrong environment, causing potential outages or data loss.
Always run 'terraform workspace select <name>' to switch to the right workspace before applying changes.
Summary
Create workspaces with clear names to separate environments.
List workspaces to verify available environments.
Switch workspaces before running Terraform commands to target the correct environment.

Practice

(1/5)
1.

What is the main purpose of using workspace names in Terraform?

easy
A. To store Terraform code files
B. To organize different environments like development and production
C. To define cloud provider credentials
D. To create virtual machines automatically

Solution

  1. Step 1: Understand workspace role

    Workspaces in Terraform separate different environments or states, like dev and prod.
  2. Step 2: Match purpose to options

    Only To organize different environments like development and production describes organizing environments, which is the workspace's main use.
  3. Final Answer:

    To organize different environments like development and production -> Option B
  4. Quick Check:

    Workspace names = environment organization [OK]
Hint: Workspaces separate environments, not code or credentials [OK]
Common Mistakes:
  • Confusing workspace with code storage
  • Thinking workspace manages credentials
  • Assuming workspace creates resources directly
2.

Which of the following workspace names follows best naming conventions in Terraform?

terraform workspace new ?
easy
A. staging-1
B. dev_environment
C. Prod-Env
D. TestEnv

Solution

  1. Step 1: Review naming rules

    Best practice is lowercase letters, hyphens allowed, no underscores or uppercase.
  2. Step 2: Check each option

    staging-1 uses lowercase and hyphen, fitting the rules. Others use uppercase or underscores.
  3. Final Answer:

    staging-1 -> Option A
  4. Quick Check:

    Lowercase + hyphen = staging-1 [OK]
Hint: Use lowercase and hyphens, avoid underscores and capitals [OK]
Common Mistakes:
  • Using uppercase letters
  • Using underscores instead of hyphens
  • Including spaces or special characters
3.

What will happen if you run the command terraform workspace select prod-env but the workspace prod-env does not exist?

medium
A. Terraform shows an error saying workspace not found
B. Terraform deletes the current workspace
C. Terraform switches to the default workspace
D. Terraform creates a new workspace named prod-env automatically

Solution

  1. Step 1: Understand workspace select behavior

    The select command switches to an existing workspace; it does not create one.
  2. Step 2: Check command outcome

    If the workspace does not exist, Terraform returns an error message.
  3. Final Answer:

    Terraform shows an error saying workspace not found -> Option A
  4. Quick Check:

    Select non-existent workspace = error [OK]
Hint: Select only switches; create with 'terraform workspace new' [OK]
Common Mistakes:
  • Assuming select creates workspace
  • Thinking Terraform switches to default silently
  • Believing workspace gets deleted
4.

Identify the error in this workspace creation command:

terraform workspace new Dev_Env
medium
A. Workspace names cannot contain uppercase letters
B. Workspace names must start with a number
C. Workspace names must be longer than 10 characters
D. Workspace names cannot contain underscores

Solution

  1. Step 1: Check naming rules for characters

    Workspace names should use lowercase letters and hyphens; underscores are not recommended.
  2. Step 2: Analyze the command

    The name 'Dev_Env' contains an underscore, which breaks the naming convention.
  3. Final Answer:

    Workspace names cannot contain underscores -> Option D
  4. Quick Check:

    Underscores disallowed in workspace names [OK]
Hint: Avoid underscores; use hyphens instead [OK]
Common Mistakes:
  • Thinking uppercase letters are forbidden (they are discouraged but allowed)
  • Believing names must start with numbers
  • Assuming length restrictions apply
5.

You want to create workspaces for three environments: development, testing, and production. Which set of workspace names follows best practices for naming conventions?

hard
A. dev, test_env, production
B. development, testing, production
C. dev-01, test-01, prod-01
D. Dev, Test, Prod

Solution

  1. Step 1: Review naming best practices

    Use lowercase letters, hyphens allowed, no underscores or uppercase letters.
  2. Step 2: Evaluate each option

    dev-01, test-01, prod-01 uses lowercase and hyphens with numbers, fitting best practices. dev, test_env, production uses underscore, B is long but valid, D uses uppercase.
  3. Step 3: Choose best consistent and clear naming

    dev-01, test-01, prod-01 is concise, consistent, and follows all rules.
  4. Final Answer:

    dev-01, test-01, prod-01 -> Option C
  5. Quick Check:

    Lowercase + hyphens + numbers = best practice [OK]
Hint: Use lowercase, hyphens, and numbers for clarity [OK]
Common Mistakes:
  • Using uppercase letters
  • Using underscores
  • Choosing inconsistent naming styles