variable "environment" {
type = string
description = "Deployment environment"
validation {
condition = contains(["dev", "staging", "prod"], var.environment)
error_message = "Environment must be dev, staging, or prod."
}
}
locals {
environment_config = {
dev = {
cost_center = "dev-001"
owner = "dev-team"
}
staging = {
cost_center = "staging-002"
owner = "qa-team"
}
prod = {
cost_center = "prod-003"
owner = "platform-team"
}
}
}
module "tags" {
source = "registry.patterneddesigns.ca/standardnat/tagging-policy/aws"
version = "1.1.0"
required_tags = ["Environment", "Owner", "CostCenter"]
default_tags = {
ManagedBy = "terraform"
Environment = var.environment
Owner = local.environment_config[var.environment].owner
CostCenter = local.environment_config[var.environment].cost_center
}
enforce_lowercase = true
}
provider "aws" {
default_tags {
tags = module.tags.merged_tags
}
}