【发布时间】:2019-11-28 11:54:47
【问题描述】:
我在 GCP 中定义了一个虚拟机,运行一个 Memcached 容器。现在我正在将所有基础设施导入 Terraform。我害怕忽略一个小问题,那就是运行 terraform plan 时生成的 YAML 的缩进。
提供一些背景信息 - Memcached VM 是使用 GCP 启动器 启动的。我在 TF 中创建了一个最低限度的资源,将其导入,现在我正在回溯并尝试将所有丢失的数据添加到资源定义中以完全符合实际部署。 完全正确的一件事是元数据,即容器规范 (gce-container-declaration)。
我按照示例on GitHub 创建了一个模块,我在其中定义了我所知道的所有内容。但是,当我运行 terraform plan 时,缩进会略有不同:
~ metadata = {
~ "gce-container-declaration" = <<~EOT
+ ---
spec:
containers:
- - name: service-memcached
- image: launcher.gcr.io/google/memcached1
- stdin: false
- tty: false
+ - image: launcher.gcr.io/google/memcached1
+ name: service-memcached
+ stdin: false
+ tty: false
restartPolicy: Always
-
- # This container declaration format is not public API and may change without notice. Please
- # use gcloud command-line tool or Google Cloud Console to run Containers on Google Compute Engine.
+ volumes: []
EOT
"google-logging-enabled" = "true"
}
缩进差异可以忽略不计,还是我在定义中遗漏了什么?
模块定义:
module "gce-container" {
source = "github.com/terraform-google-modules/terraform-google-container-vm"
container = {
name = "service-memcached"
image = "launcher.gcr.io/google/memcached1"
stdin = false
tty = false
}
restart_policy = "Always"
}
【问题讨论】:
-
您的项目是新项目还是已有 TF 部署?如果有,是什么?
-
无 TF 部署。该项目有多个部署,都通过 UI 或
gcloud命令完成。 -
申请是否按预期工作?
-
我还没有做任何事情。我不想盲目地击中它并将其击倒。这就是我问 SO 的原因。
-
对我来说,它看起来不错!
标签: google-cloud-platform yaml containers terraform terraform-provider-gcp