Skip to content

Guides

Import from Terraform

Draft an isoloom.yml from a Terraform configuration: VMs and subnets of AWS, Azure, Google Cloud and Proxmox, with a note for every other resource.

isoloom import terraform path/to/terraform

Isoloom reads the folder's .tf files without running Terraform: no init, no provider, no credentials. It evaluates variable defaults and locals, expands for_each and count, and follows references between resources, so a machine's address is found even when it lives on a network interface in a subnet.

What it carries over

TerraformBecomes
aws_subnet, azurerm_subnet, google_compute_subnetwork (and DigitalOcean, Linode, Oracle)networks (a block bigger than a /24 keeps its first /24)
aws_instance (address directly or through aws_network_interface)machines
azurerm_linux_virtual_machine, azurerm_windows_virtual_machine (through their network interfaces)machines
google_compute_instancemachines
proxmox_virtual_environment_vm (bpg)machines, with their CPUs and memory
common instance sizes (t3.large, Standard_B2s, e2-medium…)resources

Every other resource gets its coverage verdict as a note:

  • VPCs, gateways, route tables, security groups: the same effect another way, since Isoloom builds an environment's networks itself.
  • Buckets, databases, functions: left out, as managed services no other VM target has.

What a static read can't know is noted too: a size from a function, an address from DHCP (the machine is placed on a network at the next free address), the OS (read from image names and tags: check it).