Render Terraform from your specs without applying. Ideal for reviews, CI, or migrating to raw Terraform.
Overview
pltf generate reads Environment or Service specs, auto-detects kind, and writes a workspace-ready Terraform directory (providers, backend, modules, outputs, versions, variables). No cloud credentials are required to render.
Generate Terraform
Environment:
pltf generate -f env.yaml -e prod -o .pltf/example/workspace
# produces:
# .pltf/example/workspace/
# ├─ modules/ # copied/embedded module code used by this stack
# ├─ providers.tf # provider blocks + required versions
# ├─ backend.tf # state backend (s3|gcs|azurerm)
# ├─ locals.tf # locals wired to variables for workspaces
# ├─ modules-*.tf # module instantiations
# ├─ outputs.tf # outputs
# ├─ variables.tf # input variables for workspace runs
# ├─ prod.tfvars # tfvars for the selected environment
# └─ versions.tf # provider/Terraform constraints
Migrate to Terraform
- Run
pltf generate(orpltf terraform planto generate+init) for each env/service workspace. - Commit the generated directory to VCS if you want to manage TF directly.
- Backends follow your spec; use a provider-compatible
backend.type(s3|gcs|azurerm) to point at your state bucket/container. Workspace mode usesworkspace_key_prefix(S3/Azure) orprefix(GCS).
Notes
- No provider calls during generation; safe to run without credentials.
- Supports custom modules (
source: custom) alongside embedded ones; the generatedmodules/directory is self-contained. - Use
pltf previewfirst to sanity check provider/backend/modules before generation.