Workspaces und ihre Grenzen
Ein Workspace = eigener State bei gleicher Config und gleichem Backend. Gut für kurzlebige Varianten (Feature-Test, Review-Umgebung).
Grenze: Prod/Non-Prod-Trennung, gleiche Credentials, gleicher State-Bucket,
terraform.workspace-Verzweigungen im Code.
Dafür getrennte Root-Module + Backends verwenden.
terraform workspace new review-142
terraform workspace select review-142
terraform workspace list
# im Code: name = "app-${terraform.workspace}"
terraform test (1.6+)
Tests in *.tftest.hcl: run-Blöcke
führen command = plan (legt nichts an, braucht
ohne Mock aber Provider-Zugang) oder apply aus, Default ist
apply, und prüfen assert-Bedingungen. Seit 1.7:
mock_provider + Overrides, Provider-Antworten simulieren statt echte Infrastruktur
anzulegen.
# tests/naming.tftest.hcl
run "prod_prefix" {
command = plan
variables { env = "prod" }
assert {
condition = local.name_prefix == "app-prod"
error_message = "Prefix-Schema verletzt"
}
}