Blocks · Terraform
Your infrastructure, drawn from the code.
What a Terraform project declares, across files and modules, as a map for each environment. Read from the .tf files: nothing is planned, applied or fetched.
What it does.
- A map per environment
- Production, staging and the rest from their .tfvars, inside their regions, networks and subnets.
- Modules opened up
- Local modules are expanded, and dependencies drawn between the resources they connect.
- What matters first
- Compute, services, ingress and data stores; turn on any other type from Resources.
- Straight to the line
- Select a resource to see its settings and open its declaration in Files.
The map.
- Opens where the project is
- ⇧⌘T → Terraform, or the lightbulb in a terminal's header. It reads the checkout, or the folder outside git.
- Areas that wrap
- Regions, zones, VPCs and subnets enclose the resources declared in them, from literal values, locals, module arguments and provider settings.
- Connections the way requests travel
- From a declaration to what it refers to: a load balancer to its backend, a service to its database.
- The internet, where it is declared
- Internet stands left of the map when a declaration names itself public, such as a public load balancer, CloudFront or an ingress. Nothing else is assumed public.
- Cards that say what is configured
- Name, type and plain values. No health and no status: configuration does not know them.
- Pan and zoom
- Drag or scroll to move, ⌘-scroll to zoom, and fit to see the whole of it.
Find a resource.
- Resources
- Which types have cards, N of M, with a count and a search per type. Policies, IAM, monitoring and data sources start hidden.
- The list
- Every declaration with its type, module, key attributes and file, with a search by address or name.
- Inspect it
- Its settings and full address; Source opens the declaration in Files, at its line.
- Areas too
- Click a region or subnet for its metadata and the resources inside it.
Reads the files, and nothing else.
- No terraform, no state
- No command runs, no module is downloaded and no cloud is called. count and for_each show as configuration, not as instances.
- Values stay on the host
- From .tfvars only environment, location and network names are kept; credentials and other values are dropped before anything leaves the host.
- Notes, not surprises
- Syntax errors, duplicates and conflicting values are listed under Notes. A failed read keeps the previous map.
- Fresh when you ask
- Refresh reads only the files that changed since the last time.
Start on this machine.
The desktop app comes with a local host. Add a remote one when you need it.