dtan4/terraforming sits at 4.3k stars on GitHub, written primarily in Ruby. Export existing AWS resources to Terraform style (tf, tfstate) / No longer actively maintained
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Project Status (2021-12-11): No longer actively maintained
Terraforming is no longer actively maintained.
If you want to generate Terraform configurations from existing cloud resources, consider using other tools, such as
Terraformer which supports many cloud providers not only AWS but also GCP, Azure, GitHub, Kubernetes, etc., and is able to generate configurations based on the latest provider's resource schema.
Terracognita
Thank you for your contributions and supports in the past 6 years.
Export existing AWS resources to Terraform style (tf, tfstate)
Supported version
Installation
Prerequisites
Usage
Export tf
Export tfstate
Example: Export all
Run as Docker container
Development
Contributing
Similar projects
License
Supported version
Ruby 2.3 or higher is required
Terraform v0.9.3 or higher is recommended
Some resources (e.g. iam_instance_profile) uses newer resource specification
You can force the AWS SDK to utilize the CA certificate that is bundled with the SDK for systems where the default OpenSSL certificate is not installed (e.g. Windows) by utilizing the --use-bundled-cert option.
PS C:\> terraforming ec2 --use-bundled-cert
Usage
$ terraforming
Commands:
terraforming alb # ALB
terraforming asg # AutoScaling Group
terraforming cwa # CloudWatch Alarm
terraforming dbpg # Database Parameter Group
terraforming dbsg # Database Security Group
terraforming dbsn # Database Subnet Group
terraforming ddb # DynamoDB
terraforming ec2 # EC2
terraforming ecc # ElastiCache Cluster
terraforming ecsn # ElastiCache Subnet Group
terraforming efs # EFS File System
terraforming eip # EIP
terraforming elb # ELB
terraforming help [COMMAND] # Describe available commands or one specific command
terraforming iamg # IAM Group
terraforming iamgm # IAM Group Membership
terraforming iamgp # IAM Group Policy
terraforming iamip # IAM Instance Profile
terraforming iamp # IAM Policy
terraforming iampa # IAM Policy Attachment
terraforming iamr # IAM Role
terraforming iamrp # IAM Role Policy
terraforming iamu # IAM User
terraforming iamup # IAM User Policy
terraforming igw # Internet Gateway
terraforming kmsa # KMS Key Alias
terraforming kmsk # KMS Key
terraforming lc # Launch Configuration
terraforming nacl # Network ACL
terraforming nat # NAT Gateway
terraforming nif # Network Interface
terraforming r53r # Route53 Record
terraforming r53z # Route53 Hosted Zone
terraforming rds # RDS
terraforming rs # Redshift
terraforming rt # Route Table
terraforming rta # Route Table Association
terraforming s3 # S3
terraforming sg # Security Group
terraforming sn # Subnet
terraforming snst # SNS Topic
terraforming snss # SNS Subscription
terraforming sqs # SQS
terraforming vgw # VPN Gateway
terraforming vpc # VPC
Options:
[--merge=MERGE] # tfstate file to merge
[--overwrite], [--no-overwrite] # Overwrite existng tfstate
[--tfstate], [--no-tfstate] # Generate tfstate
[--profile=PROFILE] # AWS credentials profile
[--region=REGION] # AWS region
[--use-bundled-cert], [--no-use-bundled-cert] # Use the bundled CA certificate from AWS SDK
If you want to merge exported tfstate to existing terraform.tfstate, specify --tfstate --merge=/path/to/terraform.tfstate option.
You can overwrite existing terraform.tfstate by specifying --overwrite option together.
After writing exported tf and tfstate to files, execute terraform plan and check the result.
There should be no diff.
$ terraform plan
No changes. Infrastructure is up-to-date. This means that Terraform
could not detect any differences between your configuration and
the real physical resources that exist. As a result, Terraform
doesn't need to do anything.
Example: Export all
Example assuming you want to export everything from us-west-2 and you are using ~/.aws/credentials with a default profile
export AWS_REGION=us-west-2
terraforming help | grep terraforming | grep -v help | awk '{print "terraforming", $2, "--profile", "default", ">", $2".tf";}' | bash
# find files that only have 1 empty line (likely nothing in AWS)
find . -type f -name '*.tf' | xargs wc -l | grep ' 1 .'
Caveats
terraforming kmsk does not export EXTERNAL origin key, bacause Terraform does not support it.
Run as Docker container
Terraforming Docker Image is available at quay.io/dtan4/terraforming and developed at dtan4/dockerfile-terraforming.
After checking out the repo, run script/setup to install dependencies. Then, run script/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Please read Contribution Guide at first.
Fork it ( https://github.com/dtan4/terraforming/fork )
Create your feature branch (git checkout -b my-new-feature)
Commit your changes (git commit -am 'Add some feature')
Push to the branch (git push origin my-new-feature)
Create a new Pull Request
Similar projects
There are some similar tools to import your existing infrastructure to Terraform configuration.
How does dtan4/terraforming compare to other Developer Tools projects?
dtan4/terraforming is tracked by TopGit in the Developer Tools category, with 4.3k GitHub stars and written in Ruby. Browse the Developer Tools topic page on TopGit to compare it against similar projects by stars and activity.
Is dtan4/terraforming open source?
Yes — dtan4/terraforming ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/dtan4/terraforming.
What else is in the Developer Tools space?
dtan4/terraforming is tracked by TopGit under the Developer Tools category, alongside 4 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What is dtan4/terraforming?
dtan4/terraforming (dtan4/terraforming) is a Ruby project on GitHub. From the project's own README: Export existing AWS resources to Terraform style (tf, tfstate) / No longer actively maintained
Where do I read more about dtan4/terraforming?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/dtan4/terraforming is the definitive source.
Why is dtan4/terraforming categorized under Developer Tools?
TopGit places dtan4/terraforming in the Developer Tools category based on its GitHub topics and description (tagged: "aws", "ruby-gem", "terraform"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Is terraforming worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of terraforming.