GoogleCloudPlatform / terraformer
- воскресенье, 5 мая 2019 г. в 00:17:20
Go
CLI tool to generate terraform files from existing infrastructure (reverse Terraform).
CLI tool to generate tf and tfstate files from existing infrastructure
(reverse Terraform).
tf + tfstate files from existing infrastructure for all
supported objects by resource.terraform_remote_state (local and bucket).tf files with custom folder tree pattern.Terraformer use terraform providers and built for easy to add new supported resources. For upgrade resources with new fields you need upgrade only terraform providers.
Import current state to terraform configuration from google cloud
Usage:
import google [flags]
Flags:
-b, --bucket string gs://terraform-state
-c, --connect (default true)
-h, --help help for google
-o, --path-output string (default "generated")
-p, --path-patter string {output}/{provider}/custom/{service}/ (default "{output}/{provider}/{service}/")
-r, --resources strings firewalls,networks
-s, --state string local or bucket (default "local")
--projects strings
-z, --zone string
Readonly permissions
git clone <terraformer repo>GO111MODULE=on go mod vendorgo build -v~/.terraform.d/plugins/{darwin,linux}_amd64, as appropriate.Links for download terraform providers:
Information on provider plugins: https://www.terraform.io/docs/configuration/providers.html
terraformer import google --resources=gcs,forwardingRules,httpHealthChecks --connect=true --zone=europe-west1-a --projects=aaa,fff
List of supported GCP services:
addressesautoscalersbackendBucketsbackendServicesdisksfirewallsforwardingRulesglobalAddressesglobalForwardingRuleshealthCheckshttpHealthCheckshttpsHealthChecksimages (bug: Either raw_disk or source_disk configuration is required.)instanceGroupManagersinstanceGroupsinstanceTemplatesinstancesnetworksregionAutoscalersregionBackendServicesregionDisksregionInstanceGroupManagersroutersroutessecurityPoliciessslPoliciessubnetworkstargetHttpProxies (bug with proxy_id uint64 issue)targetHttpsProxiestargetSslProxiestargetTcpProxiesurlMapsvpnTunnelsgcsmonitoringdnscloudsql (bug, bug)Your tf and tfstate files are written by default to
generated/gcp/zone/service.
Example:
terraformer import aws --resources=vpc,subnet --connect=true --regions=eu-west-1
Import current State to terraform configuration from aws
Usage:
import aws [flags]
Flags:
-b, --bucket string gs://terraform-state
-c, --connect (default true)
-h, --help help for aws
-o, --path-output string (default "generated")
-p, --path-patter string {output}/{provider}/custom/{service}/ (default "{output}/{provider}/{service}/")
--regions strings eu-west-1,eu-west-2,us-east-1
-r, --resources strings vpc,subnet,nacl
-s, --state string local or bucket (default "local")
List of support AWS services:
elbalbauto_scalingrdsiamigwnacls3sgsubnetvpcvpn_connectionvpn_gatewayroute53elasticacheIf you have improvements or fixes, we would love to have your contributions. Please read CONTRIBUTING.md for more information on the process we would like contributors to follow.
Terraformer built for easy to add new providers and not only cloud providers.
Process for generating tf + tfstate files:
tf files.tfstate files.All mapping of resource is made by providers and Terraform. Upgrades are needed only for providers.
For GCP compute resources, use generated code from
gcp_terraforming/gcp_compute_code_generator.
To regenerate code:
go run gcp_terraforming/gcp_compute_code_generator/*.go