Skip to main content

Quick Migration

ubx convert --from terraform ./terraform/
ubx convert --from terraform main.tf
ubx convert --from terraform ./tf/ --out ./iac/
Generates .iac files, a ubx.yaml scaffold, and MIGRATION_NOTES.md for anything needing manual review.

Conversion Mapping

Terraformubx
resource "aws_s3_bucket" "assets" {}unit "aws_s3_bucket_v2" "assets" {}
variable "region" {}input "region" {}
output "endpoint" {}output "endpoint" {}
locals { name = "x" }local "name" { value = "x" }
module "vpc" {}component "vpc" {}
${var.region}${input.region}
${aws_s3_bucket.assets.bucket}~unit.aws_s3_bucket_v2.assets.bucket
data "aws_vpc" "main" {}data "aws_vpc" "main" {}

Example

Input (main.tf):
variable "env" {
  default = "staging"
}

resource "aws_s3_bucket" "assets" {
  bucket = "${var.env}-assets"
}

output "bucket_name" {
  value = aws_s3_bucket.assets.bucket
}
Output (main.iac):
input "env" {
  default = "staging"
}

unit "aws_s3_bucket_v2" "assets" {
  bucket = "${input.env}-assets"
}

output "bucket_name" {
  value = ~unit.aws_s3_bucket_v2.assets.bucket
}

Key Differences

ConceptTerraformubx
Resource referenceaws_s3_bucket.assets.bucket~unit.aws_s3_bucket_v2.assets.bucket
Output wiringManualNative ~ sigil
Modulesmodule blockcomponent block
Variablesvariable blockinput block
Localslocals {}local "name" {}
Data sourcesdata blockdata block

After Migration

ubx validate          # check for errors
ubx plan              # preview what will deploy
ubx explain           # understand the converted infrastructure