Terraformer is a command-line tool created by Waze SRE that generates Terraform configuration files and state files from existing cloud infrastructure, implementing a reverse Terraform workflow. The tool reads live infrastructure across multiple cloud providers and converts it into infrastructure-as-code format, allowing teams to adopt Terraform for environments that were previously managed manually or through other tools. It generates both .tf and .json configuration files alongside corresponding tfstate files that represent the current state of imported resources.
The tool supports an extensive range of cloud providers and services spanning multiple categories. Major cloud platforms include Google Cloud, AWS, Azure, AliCloud, and IBM Cloud. Beyond these, Terraformer integrates with numerous specialized cloud services including DigitalOcean, Equinix Metal, Fastly, Heroku, LaunchDarkly, Linode, OpenStack, TencentCloud, Vultr, and Yandex Cloud. Infrastructure software support covers Kubernetes, OctopusDeploy, and RabbitMQ. The tool also handles network services like Cloudflare and PAN-OS, version control systems including GitHub, GitLab, and Azure DevOps, monitoring platforms such as Datadog, New Relic, and PagerDuty, and identity providers like Okta, Auth0, and AzureAD. Community-supported providers include Keycloak, Vault, Grafana, and others.
Terraformer's core capabilities include generating both Terraform and JSON configurations from existing infrastructure, uploading remote state to cloud storage buckets, connecting resources using terraform_remote_state references, customizing folder structure patterns for generated files, importing resources by name and type, and supporting Terraform 0.13 and later versions. The tool requires only read-only permissions to list service resources, making it safe to run against production environments. Users can selectively import resources using the --resources parameter, import all services with --resources="*", or exclude specific services with --excludes. Advanced filtering allows importing resources based on identifiers, attributes, field names, and even dotted field paths, with multiple filters combinable for complex selection scenarios.
The tool provides a planning workflow where users can generate a planfile containing all resources scheduled for import, modify the planfile to rename or filter resources, and then execute the import. Resource organization is flexible, with default separation into individual files per resource at the path {output}/{provider}/{service}/{resource}.tf, but users can employ the --compact parameter to group resources into single files or adjust the --path-pattern parameter for custom directory structures.
According to GitGenius activity tracking, the repository has experienced significant community engagement with 151 tracked issues and pull requests. The median response latency for issues and PRs is 4283 hours, with a mean of 12147.1 hours, indicating variable response times across the project lifecycle. The most active labels are Stale with 73 occurrences, enhancement with 11, and good first issue with 8, suggesting the project has accumulated maintenance backlog. Primary contributors include slevenick with 57 tracked events, samveen with 10 events, and Shion1305 with 9 events. The repository shares contributors with major projects including Microsoft VSCode, Microsoft TypeScript, and the Rust language project, indicating crossover with significant open-source communities.
The project is written in Go and leverages existing Terraform providers, designed to support newly added resources through provider upgrades without requiring tool modifications. However, the repository is no longer maintained and was archived as of March 16, 2026, with no further updates, security patches, or support being provided.