finds.dev← search

// the find

dtan4/terraforming

★ 4,258 · Ruby · MIT · updated Dec 2021

Export existing AWS resources to Terraform style (tf, tfstate) / No longer actively maintained

Terraforming is a Ruby gem that reads your live AWS infrastructure and spits out `.tf` files and `tfstate` JSON so you can bring existing resources under Terraform management. It targets teams that built AWS infrastructure manually and want to stop doing that without starting over. The author explicitly deprecated it in 2021 and points to Terraformer as the replacement.

The resource coverage was genuinely broad for its era — VPC, IAM (users, roles, groups, policies, attachments), RDS, ElastiCache, Route53, KMS, ELB/ALB, DynamoDB, and more, each as a separate subcommand. The ERB template approach per resource type is clean: adding a resource means adding one `.rb` file and one `.erb` file, no sprawling conditionals. The `--merge` flag for merging exported tfstate into an existing state file was the hard part of adoption and it handled it. Test coverage per resource type was thorough — every resource has its own spec file with stubbed AWS responses.

It's dead. Terraform's provider schema has changed substantially since 2021; resources like `aws_s3_bucket` split into multiple resources in provider v4, so generated configs will fail validation against any current provider version. The tfstate format it outputs is v1 (Terraform 0.9 era) — current Terraform uses a completely different state format and will refuse to import it. AWS has released dozens of new resource types since 2021 that this will never support. Use Terraformer instead, as the author says.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →