GoogleCloudPlatform/terraformer

CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 32 minutes ago
Added to GitGenius on September 1st, 2021
Created on May 1st, 2019
Open Issues & Pull Requests: 0 (+0)
Number of forks: 1,841
Total Stargazers: 14,560 (+0)
Total Subscribers: 158 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 178.5 days
Mean response time: 365.5 days
90th percentile: 1329.7 days
Tracked items: 127

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 15% of issues opened in the past year have been closed. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • Stale (386)
  • GCP (34)
  • enhancement (28)
  • help wanted (20)
  • good first issue (14)
  • AWS (12)
  • Infra (6)
  • bug (6)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

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.

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.