Bird
Raised Fist0
Terraformcloud~5 mins

Default workspace 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 you use Terraform to manage infrastructure, it organizes your work into workspaces. The default workspace is the first and main workspace where your infrastructure state is stored. It helps keep track of what resources Terraform manages.
When you start managing infrastructure with Terraform and have not created any additional workspaces.
When you want to keep your infrastructure state simple and do not need multiple environments like dev or prod.
When you want to run Terraform commands without specifying a workspace explicitly.
When you want to test Terraform configurations quickly without workspace switching.
When you want to understand how Terraform stores state by default.
Commands
This command shows the current workspace you are working in. By default, it should show 'default'.
Terminal
terraform workspace show
Expected OutputExpected
default
This command lists all the workspaces available in your Terraform setup. Initially, only the 'default' workspace exists.
Terminal
terraform workspace list
Expected OutputExpected
* default
This command initializes the Terraform working directory. It prepares Terraform to manage infrastructure and creates the default workspace if it does not exist.
Terminal
terraform init
Expected OutputExpected
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/aws... - Installing hashicorp/aws v4.0.0... - Installed hashicorp/aws v4.0.0 (signed by HashiCorp) Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work.
This command applies the Terraform configuration to create or update infrastructure in the current workspace, which is 'default' unless changed.
Terminal
terraform apply -auto-approve
Expected OutputExpected
aws_instance.example: Creating... aws_instance.example: Still creating... [10s elapsed] aws_instance.example: Creation complete after 15s [id=i-1234567890abcdef0] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
-auto-approve - Automatically approve the apply without prompting for confirmation
Key Concept

If you remember nothing else from this pattern, remember: the default workspace is where Terraform stores your infrastructure state unless you create and switch to other workspaces.

Common Mistakes
Trying to create resources without running 'terraform init' first
Terraform needs initialization to set up the backend and plugins; without it, commands fail.
Always run 'terraform init' before applying or planning infrastructure.
Assuming multiple workspaces exist by default
Only the 'default' workspace exists initially; others must be created explicitly.
Use 'terraform workspace new <name>' to create additional workspaces.
Not checking the current workspace before applying changes
Applying in the wrong workspace can cause changes in unintended environments.
Use 'terraform workspace show' to confirm your workspace before running 'terraform apply'.
Summary
The 'default' workspace is the initial workspace Terraform uses to store state.
'terraform workspace show' and 'terraform workspace list' help you see your current and available workspaces.
'terraform init' prepares your directory and creates the default workspace if needed.

Practice

(1/5)
1. What is the default workspace in Terraform?
easy
A. A workspace only for remote backends
B. A workspace you must create manually before use
C. A temporary workspace that deletes after each run
D. The main workspace Terraform uses automatically to store state

Solution

  1. Step 1: Understand Terraform workspaces

    Terraform uses workspaces to manage different states. The default workspace is created automatically.
  2. Step 2: Identify the role of the default workspace

    The default workspace stores the state unless you create and switch to others.
  3. Final Answer:

    The main workspace Terraform uses automatically to store state -> Option D
  4. Quick Check:

    Default workspace = main automatic workspace [OK]
Hint: Default workspace is automatic and stores state by default [OK]
Common Mistakes:
  • Thinking default workspace must be created manually
  • Assuming default workspace deletes after runs
  • Confusing default workspace with remote backend only
2. Which command shows the current active workspace in Terraform?
easy
A. terraform workspace list
B. terraform workspace show
C. terraform workspace current
D. terraform workspace status

Solution

  1. Step 1: Recall Terraform workspace commands

    Common commands include list to see all workspaces and show to display the current one.
  2. Step 2: Identify the command to show active workspace

    terraform workspace show outputs the current active workspace name.
  3. Final Answer:

    terraform workspace show -> Option B
  4. Quick Check:

    Show current workspace = terraform workspace show [OK]
Hint: Use 'terraform workspace show' to see active workspace [OK]
Common Mistakes:
  • Using 'terraform workspace list' to show current workspace
  • Assuming 'terraform workspace current' is valid
  • Confusing 'status' with workspace commands
3. Given this Terraform CLI output after running terraform workspace list:

  default
* dev
  staging
Which workspace is currently active?
medium
A. default
B. staging
C. dev
D. No workspace is active

Solution

  1. Step 1: Understand workspace list output format

    The asterisk (*) marks the currently active workspace in the list.
  2. Step 2: Identify the active workspace

    The workspace with * is dev, so it is active.
  3. Final Answer:

    dev -> Option C
  4. Quick Check:

    Asterisk marks active workspace = dev [OK]
Hint: Look for * in workspace list to find active workspace [OK]
Common Mistakes:
  • Choosing 'default' because it sounds like default
  • Ignoring the asterisk symbol
  • Assuming no workspace is active if not obvious
4. You run terraform workspace new test but get an error: "Workspace 'test' already exists." What should you do next?
medium
A. Run terraform workspace select test to switch to it
B. Delete the existing workspace with terraform workspace delete test
C. Rename the existing workspace before creating a new one
D. Run terraform init again to fix the error

Solution

  1. Step 1: Understand the error message

    The error says the workspace already exists, so you cannot create it again.
  2. Step 2: Choose the correct action

    Since it exists, you should switch to it using terraform workspace select test.
  3. Final Answer:

    Run terraform workspace select test to switch to it -> Option A
  4. Quick Check:

    Workspace exists? Select it, don't create [OK]
Hint: Select existing workspace instead of creating it again [OK]
Common Mistakes:
  • Trying to create workspace again without switching
  • Deleting workspace unnecessarily
  • Running init does not fix workspace existence
5. You want to manage two environments, prod and dev, using Terraform workspaces. Which approach correctly uses the default workspace?
hard
A. Use default workspace for dev and create/select prod workspace
B. Create both prod and dev workspaces and never use default
C. Rename default workspace to prod and create dev workspace
D. Use the default workspace for prod and create/select dev workspace

Solution

  1. Step 1: Understand default workspace role

    The default workspace is ready to use and often used for simpler or initial environments.
  2. Step 2: Apply best practice for environment separation

    Use default for dev (development) and create/select a separate workspace for prod (production) to isolate states.
  3. Final Answer:

    Use default workspace for dev and create/select prod workspace -> Option A
  4. Quick Check:

    Default workspace = dev environment [OK]
Hint: Use default for dev, create prod workspace for safety [OK]
Common Mistakes:
  • Using default for prod which risks accidental changes
  • Ignoring default workspace and creating all manually
  • Trying to rename default workspace (not supported)