Terraform workspace management for multi-environment deployments
View on GitHubpluginagentmarketplace/custom-plugin-terraform
terraform-assistant
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/pluginagentmarketplace/custom-plugin-terraform/blob/main/skills/terraform-workspace/SKILL.md -a claude-code --skill terraform-workspaceInstallation paths:
.claude/skills/terraform-workspace/# Terraform Workspace Skill
Manage multiple environments with Terraform workspaces.
## Workspace Commands
```bash
# List workspaces
terraform workspace list
# Create workspace
terraform workspace new dev
terraform workspace new staging
terraform workspace new prod
# Switch workspace
terraform workspace select prod
# Show current
terraform workspace show
# Delete workspace
terraform workspace delete dev
```
## Configuration Patterns
### Environment-Specific Variables
```hcl
locals {
env_config = {
dev = {
instance_type = "t3.micro"
min_size = 1
max_size = 2
}
staging = {
instance_type = "t3.small"
min_size = 2
max_size = 4
}
prod = {
instance_type = "t3.medium"
min_size = 3
max_size = 10
}
}
config = local.env_config[terraform.workspace]
}
resource "aws_autoscaling_group" "app" {
min_size = local.config.min_size
max_size = local.config.max_size
# ...
}
```
### Workspace-Aware Naming
```hcl
locals {
name_prefix = "${var.project}-${terraform.workspace}"
}
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
tags = {
Name = "${local.name_prefix}-vpc"
Environment = terraform.workspace
}
}
```
### Conditional Resources
```hcl
resource "aws_cloudwatch_alarm" "cpu" {
count = terraform.workspace == "prod" ? 1 : 0
alarm_name = "${local.name_prefix}-cpu-alarm"
# ...
}
resource "aws_db_instance" "main" {
multi_az = terraform.workspace == "prod"
deletion_protection = terraform.workspace == "prod"
# ...
}
```
## Backend Configuration
### S3 with Workspace Prefix
```hcl
terraform {
backend "s3" {
bucket = "company-terraform-state"
key = "app/terraform.tfstate"
region = "us-east-1"
workspace_key_prefix = "workspaces"
dynamodb_table = "terraform-locks"
}
}
# State paths:
# - workspaces/dev/app/terraform.tfstate
# - workspaces/