Code vs. Configuration
The philosophy behind separating Terraform Logic from Environment Data.
In traditional Terraform implementations, it is common to see values hardcoded into modules or duplicative `.tfvars` files scattered across directories. IaCConsole enforces a strict separation between Units (Logic) and Dimensions (Configuration).
The Problem with Monolithic Terraform
When code and configuration are mixed, you end up with "ClickOps" drift or massive copy-pasted folders for `dev`, `staging`, and `prod`. Changing a resource definition requires patching multiple files.
The IaCConsole Solution
1. Units (The Code)
A Unit is a pure Terraform module. It accepts variables and creates resources. It does not know about "prod" or "dev".
variable "instance_type" {}
resource "aws_instance" "app" {
instance_type = var.instance_type
# ...
}2. Dimensions (The Config)
A Dimension is a slice of configuration data stored in the IaCConsole Inventory. It defines the values for a specific context.
// Dimension: env=prod
{
"instance_type": "t3.large",
"region": "us-east-1"
}