Terraform Extraction
Fractal Cloud can export your infrastructure definitions as Terraform HCL. This gives you an industry-standard representation of your infrastructure that works independently of Fractal Cloud.
Why this exists
We designed Fractal Cloud to remove lock-in, not create it. Terraform extraction is the ultimate proof: at any point, you can export your Fractal definitions as standard Terraform code and manage your infrastructure without Fractal Cloud.
This is useful when:
- You're evaluating Fractal Cloud and want assurance that you can leave at any time
- You need to hand off infrastructure to a team that uses Terraform
- Compliance requires that infrastructure definitions exist in a standard format outside any single platform
- You're migrating away from Fractal Cloud and want to continue managing your resources with Terraform
What gets exported
The export produces standard Terraform HCL files containing:
- Resource definitions — every cloud resource in your Live System, with all parameters and configurations
- Variable declarations — parameterized values (CIDR blocks, instance sizes, regions) extracted as Terraform variables
- Provider configuration — the cloud provider blocks (AWS, Azure, GCP) matching your environment
- Output values — connection strings, endpoints, and other output fields that your applications consume
- Dependencies — resource ordering that matches the dependency graph in your Fractal
The exported Terraform is standalone. It does not reference Fractal Cloud modules, providers, or state. You can run terraform plan and terraform apply directly.
How to extract
Using the Terraform Provider
The Fractal Cloud Terraform Provider supports bidirectional workflows:
- Define Fractals in Terraform — use the provider to declare your Fractals using HCL syntax
- Extract from Fractal Cloud to Terraform — export existing Fractal definitions as standalone HCL
Using the SDK
var terraform = fractalCloud.extractTerraform(liveSystemId);
terraform.writeTo("./output/");
Using the API
GET /livesystems/{liveSystemId}/terraform
Returns the Terraform HCL files as a downloadable archive.
After extraction
Once you have the Terraform files:
- Initialize Terraform state — run
terraform importfor each resource to build the state file from your existing cloud resources - Validate — run
terraform planto confirm there are no differences between the Terraform definition and the actual infrastructure - Manage independently — from this point, Terraform owns the lifecycle of these resources
If you're also deleting the environment, do the extraction first. After deletion, the Cloud Agent is removed but the resources remain — you'll manage them through Terraform going forward.
What this means for lock-in
Every resource Fractal Cloud creates is a standard cloud resource. There are no proprietary agents embedded in your VPCs, no sidecar processes in your Kubernetes clusters, no custom hooks in your databases. The Terraform export proves this: the output is plain Terraform that describes plain cloud resources.
If your infrastructure can be fully described in Terraform without referencing Fractal Cloud, then Fractal Cloud has no hold on your infrastructure.
That's the point.