Terraform Workspaces Explained - Manage Multiple Environments
Master Terraform workspaces for managing dev, staging, and production environments. Covers workspace commands, state isolation, and CI/CD integration.
Terraform
Set up Terraform CI-CD with GitHub Actions. Covers plan on PR, apply on merge, state locking, secrets management, and environment protection.
This comprehensive guide covers everything you need to know with practical, copy-paste examples for your Terraform projects.
Understanding this topic is essential for writing production-ready Terraform code that scales across teams and environments.
terraform {
required_version = ">= 1.5"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = var.region
}variable "environment" {
type = string
description = "Deployment environment"
default = "dev"
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Must be dev, staging, or prod."
}
}
locals {
name_prefix = "myapp-${var.environment}"
common_tags = {
Environment = var.environment
ManagedBy = "terraform"
Project = var.project_name
}
}
resource "aws_instance" "app" {
ami = data.aws_ami.latest.id
instance_type = local.is_prod ? "t3.large" : "t3.micro"
tags = merge(local.common_tags, { Name = "${local.name_prefix}-app" })
}resource "aws_security_group" "app" {
name = "${local.name_prefix}-sg"
dynamic "ingress" {
for_each = var.ingress_rules
content {
from_port = ingress.value.port
to_port = ingress.value.port
protocol = "tcp"
cidr_blocks = ingress.value.cidrs
}
}
}Apply these patterns in your next project for cleaner, more maintainable infrastructure code.
Master Terraform workspaces for managing dev, staging, and production environments. Covers workspace commands, state isolation, and CI/CD integration.
Configure Terraform backends for remote state. Complete guide for S3 + DynamoDB, Azure Blob, GCS, Terraform Cloud, and Consul with encryption and locking.
Understand the Terraform state file, its purpose, and best practices for managing it. Learn remote state, locking, and recovery techniques for teams.
Master Terraform variables with practical examples. Learn input, output, local, and environment variables for flexible infrastructure as code configurations.