terraformer
CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code
File Explorer
- linter.yml
- release.yaml
- stale.yaml
- test.yml
- dependabot.yml
- waze-sre-logo.png
- main.go
- main.go
- import.go
- plan.go
- provider_cmd_alicloud.go
- provider_cmd_auth0.go
- provider_cmd_aws.go
- provider_cmd_azure.go
- provider_cmd_azuread.go
- provider_cmd_azuredevops.go
- provider_cmd_cloudflare.go
- provider_cmd_commercetools.go
- provider_cmd_datadog.go
- provider_cmd_digitalocean.go
- provider_cmd_equinixmetal.go
- provider_cmd_fastly.go
- provider_cmd_github.go
- provider_cmd_gitlab.go
- provider_cmd_gmailfilter.go
- provider_cmd_google.go
- provider_cmd_grafana.go
- provider_cmd_heroku.go
- provider_cmd_honeycombio.go
- provider_cmd_ibm.go
- provider_cmd_ionoscloud.go
- provider_cmd_keycloak.go
- provider_cmd_kubernetes.go
- provider_cmd_launchdarkly.go
- provider_cmd_linode.go
- provider_cmd_logzio.go
- provider_cmd_mackerel.go
- provider_cmd_mikrotik.go
- provider_cmd_myrasec.go
- provider_cmd_newrelic.go
- provider_cmd_ns1.go
- provider_cmd_octopusdeploy.go
- provider_cmd_okta.go
- provider_cmd_opal.go
- provider_cmd_openstack.go
- provider_cmd_opsgenie.go
- provider_cmd_pagerduty.go
- provider_cmd_panos.go
- provider_cmd_rabbitmq.go
- provider_cmd_tencentcloud.go
- provider_cmd_vault.go
- provider_cmd_vultr.go
- provider_cmd_xenorchestra.go
- provider_cmd_yandex.go
- root.go
- version.go
- alicloud.md
- auth0.md
- aws.md
- azure.md
- azuread.md
- azuredevops.md
- cloudflare.md
- commercetools.md
- datadog.md
- digitalocean.md
- equinixmetal.md
- fastly.md
- gcp.md
- github.md
- gitlab.md
- gmailfilter.md
- grafana.md
- heroku.md
- honeycombio.md
- ibmcloud.md
- ionoscloud.md
- keycloak.md
- kubernetes.md
- launchdarkly.md
- linode.md
- logz.md
- mackerel.md
- mikrotik.md
- myrasec.md
- ns1.md
- octopus.md
- okta.md
- opal.md
- openstack.md
- opsgenie.md
- pagerduty.md
- panos.md
- rabbitmq.md
- relic.md
- tencentcloud.md
- vault.md
- vultr.md
- xen.md
- yandex.md
- client.go
- config.go
- endpoint.go
- regions.go
- alicloud_provider.go
- alicloud_service.go
- dns.go
- ecs.go
- key_pair.go
- nat_gateway.go
- pvtz.go
- ram.go
- rds.go
- sg.go
- slb.go
- vpc.go
- vswitch.go
- action.go
- auth0_provider.go
- auth0_service.go
- branding.go
- client.go
- client_grant.go
- custom_domain.go
- email.go
- hook.go
- log_stream.go
- prompt.go
- resource_server.go
- role.go
- rule.go
- rule_config.go
- tenant.go
- trigger_binding.go
- user.go
- accessanalyzer.go
- acm.go
- alb.go
- api_gateway.go
- api_gatewayv2.go
- appsync.go
- autoscaling.go
- aws_facade.go
- aws_provider.go
- aws_service.go
- batch.go
- budgets.go
- cloud9.go
- cloud_front.go
- cloudformation.go
- cloudhsm.go
- cloudtrail.go
- cloudwatch.go
- codebuild.go
- codecommit.go
- codedeploy.go
- codepipeline.go
- cognito.go
- config.go
- customer_gateway.go
- datapipeline.go
- devicefarm.go
- docdb.go
- dx.go
- dynamodb.go
- ebs.go
- ec2.go
- ecr.go
- ecrpublic.go
- ecs.go
- efs.go
- eip.go
- eks.go
- elastic_beanstalk.go
- elasticache.go
- elb.go
- emr.go
- eni.go
- es.go
- firehose.go
- glue.go
- iam.go
- identitystore.go
- igw.go
- iot.go
- kinesis.go
- kms.go
- lambda.go
- logs.go
- media_package.go
- media_store.go
- medialive.go
- mq.go
- msk.go
- nacl.go
- nat_gateway.go
- opsworks.go
- organization.go
- qldb.go
- rds.go
- redshift.go
- resourcegroups.go
- route53.go
- route_table.go
- s3.go
- secretsmanager.go
- securityhub.go
- servicecatalog.go
- ses.go
- sfn.go
- sg.go
- sg_test.go
- sns.go
- sqs.go
- ssm.go
- subnet.go
- swf.go
- transit_gateway.go
- vgw.go
- vpc.go
- vpc_endpoint.go
- vpc_peering.go
- vpn_connection.go
- waf.go
- waf_regional.go
- wafv2.go
- workspaces.go
- xray.go
- analysis.go
- app_service.go
- application_gateway.go
- azure_provider.go
- azure_service.go
- container.go
- cosmosdb.go
- data_factory.go
- database.go
- databricks.go
- disk.go
- dns.go
- eventhub.go
- helper.go
- keyvault.go
- load_balancer.go
- management_lock.go
- network_interface.go
- network_security_group.go
- network_watcher.go
- private_dns.go
- private_endpoint.go
- public_ip.go
- purview.go
- redis.go
- resource_group.go
- route_table.go
- scaleset.go
- security_center_contact.go
- security_center_subscription_pricing.go
- ssh_public_key.go
- storage_account.go
- storage_blob.go
- storage_container.go
- subnet.go
- synapse.go
- virtual_machine.go
- virtual_network.go
- app_role_assignment.go
- application.go
- azuread_provider.go
- azuread_service.go
- group.go
- service_principal.go
- user.go
- azuredevops_provider.go
- azuredevops_service.go
- git_repository.go
- group.go
- helpers.go
- project.go
- access.go
- account_member.go
- cloudflare_provider.go
- cloudflare_service.go
- dns.go
- firewall.go
- page_rule.go
- client.go
- config.go
- api_extension.go
- channel.go
- commercetools_provider.go
- commercetools_service.go
- custom_object.go
- helpers.go
- product_type.go
- shipping_method.go
- shipping_zone.go
- state.go
- store.go
- subscription.go
- tax_category.go
- types.go
- dashboard.go
- dashboard_json.go
- dashboard_list.go
- datadog_provider.go
- datadog_service.go
- downtime.go
- integration_aws.go
- integration_aws_lambda_arn.go
- integration_aws_log_collection.go
- integration_azure.go
- integration_gcp.go
- integration_pagerduty.go
- integration_pagerduty_service_object.go
- integration_slack_channel.go
- logs_archive.go
- logs_archive_order.go
- logs_custom_pipeline.go
- logs_index.go
- logs_index_order.go
- logs_integration_pipeline.go
- logs_metric.go
- logs_pipeline_order.go
- metric_metadata.go
- monitor.go
- role.go
- security_monitoring_default_rule.go
- security_monitoring_rule.go
- service_level_objective.go
- synthetics_global_variable.go
- synthetics_private_location.go
- synthetics_test_.go
- user.go
- cdn.go
- certificate.go
- database_cluster.go
- digitalocean_provider.go
- digitalocean_service.go
- domain.go
- droplet.go
- droplet_snapshot.go
- firewall.go
- floating_ip.go
- kubernetes_cluster.go
- loadbalancer.go
- project.go
- ssh_key.go
- tag.go
- token_source.go
- volume.go
- volume_snapshot.go
- vpc.go
- device.go
- equinixmetal_provider.go
- equinixmetal_service.go
- spot_market_request.go
- ssh_key.go
- volume.go
- fastly_provider.go
- fastly_service.go
- service_v1.go
- tls_subscription.go
- user.go
- backendServices.go
- basicGcpResource.go
- globalForwardingRules.go
- instanceGroupManagers.go
- main.go
- resources.go
- addresses_gen.go
- autoscalers_gen.go
- backendBuckets_gen.go
- backendServices_gen.go
- bigquery.go
- cloudbuild.go
- clouddns.go
- cloudFunctions.go
- cloudsql.go
- cloudtasks.go
- compute.go
- dataproc.go
- disks_gen.go
- externalVpnGateways_gen.go
- firewall_gen.go
- forwardingRules_gen.go
- gcp_facade.go
- gcp_provider.go
- gcp_service.go
- gcs.go
- gke.go
- globalAddresses_gen.go
- globalForwardingRules_gen.go
- healthChecks_gen.go
- httpHealthChecks_gen.go
- httpsHealthChecks_gen.go
- iam.go
- images_gen.go
- instanceGroupManagers_gen.go
- instanceGroups_gen.go
- instances.go
- instanceTemplates_gen.go
- interconnectAttachments_gen.go
- kms.go
- logging.go
- memoryStore.go
- monitoring.go
- networkEndpointGroups_gen.go
- networks_gen.go
- nodeGroups_gen.go
- nodeTemplates_gen.go
- packetMirrorings_gen.go
- project.go
- pubsub.go
- regionAutoscalers_gen.go
- regionBackendServices_gen.go
- regionDisks_gen.go
- regionHealthChecks_gen.go
- regionInstanceGroupManagers_gen.go
- regionInstanceGroups_gen.go
- regionSslCertificates_gen.go
- regionTargetHttpProxies_gen.go
- regionTargetHttpsProxies_gen.go
- regionUrlMaps_gen.go
- reservations_gen.go
- resourcePolicies_gen.go
- routers_gen.go
- routes_gen.go
- schedulerJobs.go
- securityPolicies_gen.go
- sslCertificates_gen.go
- sslPolicies_gen.go
- subnetworks_gen.go
- targetHttpProxies_gen.go
- targetHttpsProxies_gen.go
- targetInstances_gen.go
- targetPools_gen.go
- targetSslProxies_gen.go
- targetTcpProxies_gen.go
- targetVpnGateways_gen.go
- urlMaps_gen.go
- vpnTunnels_gen.go
- github_organization.go
- github_provider.go
- github_service.go
- members.go
- organization_block.go
- organization_project.go
- organizationWebhooks.go
- repositories.go
- teams.go
- user_ssh_keys.go
- gitlab_provider.go
- gitlab_service.go
- group.go
- project.go
- filter.go
- gmailfilter_provider.go
- gmailfilter_service.go
- label.go
- dashboard.go
- folder.go
- grafana_provider.go
- grafana_service.go
- account_feature.go
- app.go
- heroku_provider.go
- heroku_service.go
- pipeline.go
- pipeline_coupling.go
- team_collaborator.go
- team_member.go
- board.go
- burn_alert.go
- column.go
- dataset.go
- derived_column.go
- honeycomb_provider.go
- honeycomb_service.go
- query.go
- query_annotation.go
- slo.go
- trigger.go
- cis.go
- cloud_functions.go
- cloud_log_analysis.go
- cloud_log_atracker.go
- cloud_monitoring.go
- cloud_watson_machine_learning.go
- cloud_watson_studio.go
- container_cluster.go
- continuous_delivery.go
- cos.go
- database_elasticsearch.go
- database_etcd.go
- database_mongo.go
- database_postgresql.go
- database_rabbitmq.go
- database_redis.go
- helpers.go
- iam.go
- ibm_cd_toolchain.go
- ibm_certificate_manager.go
- ibm_cloudant.go
- ibm_code_engine.go
- ibm_dl.go
- ibm_is_floating_ip.go
- ibm_is_flow_log.go
- ibm_is_ike_policy.go
- ibm_is_image.go
- ibm_is_instance.go
- ibm_is_instance_template.go
- ibm_is_ipsec_policy.go
- ibm_is_lb.go
- ibm_is_network_acl.go
- ibm_is_public_gateway.go
- ibm_is_security_group.go
- ibm_is_ssh_key.go
- ibm_is_subnet.go
- ibm_is_virtual_endpoint_gateway.go
- ibm_is_volume.go
- ibm_is_vpc.go
- ibm_is_vpc_address_prefix.go
- ibm_is_vpc_route.go
- ibm_is_vpc_routing_table.go
- ibm_is_vpn_gateway.go
- ibm_kp.go
- ibm_private_dns.go
- ibm_provider.go
- ibm_secret_manager.go
- ibm_service.go
- ibm_tg.go
- instance_groups.go
- satellite_control_plane.go
- satellite_data_plane.go
- utils.go
- vpc_cluster.go
- constants.go
- helper_dependencies_list.go
- application_load_balancer.go
- application_load_balancer_forwarding_rule.go
- backup_unit.go
- certificate.go
- container_registry.go
- container_registry_token.go
- datacenter.go
- dataplatform_cluster.go
- dataplatform_node_pool.go
- dbaas_mongo_cluster.go
- dbaas_mongo_user.go
- dbaas_pgsql_cluster.go
- dbaas_pgsql_database.go
- dbaas_pgsql_user.go
- dns_record.go
- dns_zone.go
- firewall.go
- group.go
- ionoscloud_provider.go
- ionoscloud_service.go
- ip_block.go
- ipfailover.go
- kubernetes_cluster.go
- kubernetes_node_pool.go
- lan.go
- load_balancer.go
- logging_pipeline.go
- nat_gateway.go
- nat_gateway_rule.go
- network_load_balancer.go
- network_load_balancer_forwarding_rule.go
- nic.go
- private_crossconnect.go
- s3_key.go
- server.go
- share.go
- target_group.go
- user.go
- volume.go
- authentication.go
- generator.go
- group.go
- helpers.go
- keycloak_provider.go
- keycloak_service.go
- openid_client.go
- realm.go
- role.go
- scope.go
- user.go
- kind.go
- kubernetes_provider.go
- kubernetes_service.go
- utils.go
- feature_flags.go
- launchdarkly_provider.go
- launchdarkly_service.go
- project.go
- segment.go
- domain.go
- image.go
- instance.go
- linode_provider.go
- linode_service.go
- nodebalancer.go
- rdns.go
- sshkey.go
- stackscript.go
- token.go
- volume.go
- alert_notification_endpoints.go
- alerts.go
- logzio_provider.go
- logzio_service.go
- alert_group_setting.go
- aws_integration.go
- channel.go
- downtime.go
- mackerel_provider.go
- mackerel_service.go
- monitor.go
- notification_group.go
- role.go
- service.go
- dhcp_leases.go
- mikrotik_provider.go
- mikrotik_service.go
- cache_setting.go
- dns_record.go
- domain.go
- error_page.go
- ip_filter.go
- maintenance.go
- myrasec_provider.go
- myrasec_service.go
- ratelimit.go
- redirect.go
- settings.go
- waf_rule.go
- alert.go
- alertchannel.go
- alertcondition.go
- alertpolicy.go
- helpers.go
- infra.go
- newrelic_provider.go
- newrelic_service.go
- synthetics.go
- tags.go
- monitoringjob.go
- ns1_provider.go
- ns1_service.go
- team.go
- zone.go
- generic_resources.go
- octopusdeploy_provider.go
- octopusdeploy_service.go
- app.go
- app_auto_login.go
- app_basic_auth.go
- app_bookmark.go
- app_oauth.go
- app_saml.go
- app_secure_password_store.go
- app_signon_policy.go
- app_signon_policy_rule.go
- app_swa.go
- app_three_field.go
- app_user_schema.go
- authenticator.go
- authorization_server.go
- authorization_server_claim.go
- authorization_server_policy.go
- authorization_server_policy_rule.go
- authorization_server_scope.go
- event_hook.go
- factor.go
- group.go
- group_rule.go
- helpers.go
- idp_oidc.go
- idp_saml.go
- idp_social.go
- inline_hook.go
- network_zone.go
- okta_provider.go
- okta_service.go
- policy_mfa.go
- policy_password.go
- policy_rule_mfa.go
- policy_rule_password.go
- policy_rule_signon.go
- policy_signon.go
- template_sms.go
- trusted_origin.go
- user.go
- user_schema.go
- user_type.go
- group.go
- helpers.go
- message_channel.go
- on_call_schedule.go
- opal_provider.go
- opal_service.go
- owner.go
- resource.go
- blockstorage.go
- compute.go
- networking.go
- openstack_provider.go
- openstack_service.go
- opsgenie_provider.go
- opsgenie_service.go
- service.go
- team.go
- user.go
- business_service.go
- escalation_policy.go
- pagerduty_provider.go
- pagerduty_service.go
- ruleset.go
- schedule.go
- service.go
- team.go
- user.go
- firewall_device_config.go
- firewall_networking.go
- firewall_objects.go
- firewall_policy.go
- helpers.go
- panorama_device_config.go
- panorama_networking.go
- panorama_objects.go
- panorama_plugins.go
- panorama_policy.go
- panos_provider.go
- panos_service.go
- binding.go
- exchange.go
- helpers.go
- permissions.go
- policy.go
- queue.go
- rabbitmq_provider.go
- rabbitmq_service.go
- shovel.go
- user.go
- vhost.go
- acl.go
- as.go
- cbs.go
- cdn.go
- cfs.go
- clb.go
- cos.go
- cvm.go
- dnspod.go
- eip.go
- elasticsearch.go
- gaap.go
- key_pair.go
- mongodb.go
- mysql.go
- nat_gateway.go
- pts.go
- redis.go
- route_table.go
- scf.go
- security_group.go
- ses.go
- ssl.go
- subnet.go
- tat.go
- tcaplus.go
- tencentcloud_helpers.go
- tencentcloud_provider.go
- tencentcloud_service.go
- vpc.go
- vpn.go
- vault_provider.go
- vault_service_generator.go
- bare_metal_server.go
- block_storage.go
- dns_domain.go
- firewall_group.go
- network.go
- reserved_ip.go
- server.go
- snapshot.go
- ssh_key.go
- startup_script.go
- user.go
- vultr_provider.go
- vultr_service.go
- acls.go
- resource_sets.go
- xenorchestra_provider.go
- xenorchestra_service.go
- compute_disk.go
- compute_instance.go
- util.go
- vpc_network.go
- vpc_subnet.go
- yandex_provider.go
- yandex_service.go
- snapcraft.yaml
- provider.go
- provider_test.go
- string.go
- bucket.go
- hcl.go
- test1.json
- test2.json
- test3.json
- test4.json
- test5.json
- test6.json
- test7.json
- test8.json
- test9.json
- base_provider.go
- connect.go
- connect_test.go
- flatmap.go
- flatmap_test.go
- hcl.go
- hcl_test.go
- json.go
- providers_mapping.go
- resource.go
- service.go
- service_test.go
- tfstate_converter_test.go
- utils.go
- walk.go
- walk_test.go
- main.go
- main.go
- dashboard.tf
- downtime.tf
- monitor.tf
- outputs.tf
- synthetics.tf
- user.tf
- helper.go
- main.go
- README.md
- main.go
- main.go
- channel.tf
- environment.tf
- feed.tf
- library_variable_set.tf
- lifecycle.tf
- main.tf
- project.tf
- project_group.tf
- provider.tf
- README.md
- tagset.tf
- main.go
- main.go
- .gitignore
- .golangci.json
- AUTHORS
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- go.mod
- go.sum
- LICENSE
- main.go
- README.md
- SECURITY.md
# Installation Guide
goSetup Steps
git clone https://github.com/GoogleCloudPlatform/terraformer.git
Clone the repository locally.
go mod download
Download Go module dependencies.
go build -o terraformer main.go
Build the terraformer binary.
./terraformer import aws --resources=vpc,subnet --regions=eu-west-1
Import existing infrastructure to Terraform code.
Key Commands
go build -o terraformer main.go
Compile the Terraformer source code into an executable binary.
terraformer import aws --resources=vpc,subnet --regions=eu-west-1
Convert existing infrastructure resources of the specified cloud provider into HCL and tfstate.
terraformer plan google --resources=networks,firewall --projects=my-project
Generate a plan file for the resources to be imported.
terraform state replace-provider -auto-approve "registry.terraform.io/-/aws" "hashicorp/aws"
Migrate the provider registry source in the Terraform state file.
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Release Timeline
Command Glossary
Commands referenced in this DOCs, explained below.
aws
View Details ▼
aws
The official CLI tool for Amazon Web Services.
Some subcommands such as `s3` have their own usage documentation.
aws configure wizard
Configure the AWS Command-line:
aws configure sso
Configure the AWS Command-line using SSO:
aws sts get-caller-identity
Get the caller identity (used to troubleshoot permissions):
brew install
View Details ▼
brew install
Install a Homebrew formula or cask.
brew install {{formula|cask}}
Install a formula/cask:
brew install {{[-s|--build-from-source]}} {{formula}}
Build and install a formula from source (dependencies will still be installed from bottles):
brew install {{[-n|--dry-run]}} {{formula|cask}}
Download the manifest, print what would be installed but don't actually install anything:
git clone
View Details ▼
git clone
Clone an existing repository.
git clone {{remote_repository_location}} {{path/to/directory}}
Clone an existing repository into a new directory (the default directory is the repository name):
git clone --recursive {{remote_repository_location}}
Clone an existing repository and its submodules:
git clone {{[-n|--no-checkout]}} {{remote_repository_location}}
Clone only the `.git` directory of an existing repository:
go build
View Details ▼
go build
Compile Go sources.
go build {{path/to/main.go}}
Compile a 'package main' file (output will be the filename without extension):
go build -o {{path/to/binary}} {{path/to/source.go}}
Compile, specifying the output filename:
go build -o {{path/to/binary}} {{path/to/package}}
Compile a package:
go mod
View Details ▼
go mod
Module maintenance.
go mod init {{module_name}}
Initialize new module in current directory:
go mod download
Download modules to local cache:
go mod tidy
Add missing and remove unused modules:
go run
View Details ▼
go run
Compile and run Go code without saving a binary.
go run {{path/to/file.go}}
Run a Go file:
go run {{path/to/package}}
Run a main Go package:
terraform init
View Details ▼
terraform init
Initialize a new or existing Terraform working directory.
terraform init
Initialize the current working directory:
terraform init -upgrade
Initialize and upgrade modules and providers to the latest allowed versions:
terraform init -reconfigure
Initialize and reconfigure the backend, ignoring any saved configuration:
terraform
View Details ▼
terraform
Create and deploy infrastructure as code to cloud providers.
terraform init
Initialize a new or existing Terraform configuration:
terraform validate
Verify that the configuration files are syntactically valid:
terraform fmt
Format configuration according to Terraform language style conventions:
choco install
View Details ▼
choco install
Install one or more packages with Chocolatey.
choco install {{package1 package2 ...}}
Install one or more packages:
choco install {{path\to\packages_file.config}}
Install packages from a custom configuration file:
choco install {{path\to\file}}
Install a specific `.nuspec` or `.nupkg` file:
