GCP 的 Terraform 和容器声明 - 缩进有多重要?
Terraform and container declaration for GCP - how much does indentation matter?
我在 GCP 中定义了一个虚拟机,运行宁一个 Memcached
容器。现在我正在将所有基础设施导入 Terraform。有一个小问题我不敢简单地忽略,那就是在 运行ning terraform plan
.
时生成的 YAML 的缩进
提供一些背景信息 - Memcached VM 是使用 GCP Launcher 启动的。我在 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"
}
在 consulting with the module creators 和执行测试之后,可以肯定地说 YAML 结构 是灵活的 因此没有任何问题执行此类转换时。
我在 GCP 中定义了一个虚拟机,运行宁一个 Memcached
容器。现在我正在将所有基础设施导入 Terraform。有一个小问题我不敢简单地忽略,那就是在 运行ning terraform plan
.
提供一些背景信息 - Memcached VM 是使用 GCP Launcher 启动的。我在 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"
}
在 consulting with the module creators 和执行测试之后,可以肯定地说 YAML 结构 是灵活的 因此没有任何问题执行此类转换时。