gcloud resource-config を使ってみる
Google Cloud リソースを Terraform 形式にエクスポートする
gcloud beta resource-config | Google Cloud SDK
gcloud beta resource-config - commands for declarative management of Google Cloud Platform resources
gcloud beta resource-config bulk-export | Google Cloud SDK
gcloud beta resource-config bulk-export - export configurations for all assets within the specified project, organization, or folder
--resource-format
: Kubernetes Resource Model YAML (krm) or Terraform HCL (terraform)
gcloud beta resource-config list-resource-types | Google Cloud SDK
gcloud beta resource-config list-resource-types - list all resources supported by bulk-export
gcloud beta resource-config terraform generate-import | Google Cloud SDK
gcloud beta resource-config terraform generate-import - generate Terraform import script for exported resources
$ gcloud beta resource-config list-resource-types --format=flattened | head -n20
---
GVK.Group: accesscontextmanager.cnrm.cloud.google.com
GVK.Kind: AccessContextManagerAccessLevel
GVK.Version: v1beta1
ResourceNameFormat:
SupportsBulkExport: False
SupportsExport: False
SupportsIAM: False
---
GVK.Group: accesscontextmanager.cnrm.cloud.google.com
GVK.Kind: AccessContextManagerAccessLevelCondition
GVK.Version: v1alpha1
ResourceNameFormat:
SupportsBulkExport: False
SupportsExport: False
SupportsIAM: False
---
GVK.Group: accesscontextmanager.cnrm.cloud.google.com
GVK.Kind: AccessContextManagerAccessPolicy
GVK.Version: v1beta1
$ gcloud beta resource-config list-resource-types --format=flattened --format='value(GVK.Kind)'
resource ファイルを生成
$ gcloud beta resource-config bulk-export --project=$PROJECT_ID \
--path=$PWD \
--resource-format=terraform
それを import するコマンドの shell と module 定義ファイルを生成する
$ gcloud beta resource-config terraform generate-import $PWD \
--output-script-file=import.sh \
--output-module-file=modules.tf
terraform import コマンドが生成されて、import ブロックは生成されない