首页 > 解决方案 > 将 terratest 与单独的 backend.hcl 文件一起使用

问题描述

我成功地使用了 terratest,但是自从切换到远程后端(详细信息在单独的backend.hcl文件中定义)后,我遇到了麻烦。

情况:我的main.tf开始是这样的:

terraform {
  required_version = "~> 0.14.0"
  backend "remote" {}
}

我的backend.hcl

workspaces { name = "foobar" }
hostname     = "app.terraform.io"
organization = "ACME"

然后在使用 terraform 时,我喜欢terraform init -backend-config=./backend.hcl. 到目前为止,一切都很好。使用 terratest 时,它现在会抱怨关于organization未定义的其他错误。这似乎是合理的,因为organizationmain.tf.

一种解决方法是包含backend.hclin的内容main.tf,但这不适合我们的架构,它只需要进行编辑main.tf以进行测试。

有没有办法告诉 terratest 包括backend.hcl何时 terraform 初始化?

编辑1:我看到有一种方法可以将后端信息添加到terraformOptions,但是我无法正确格式化这些:

BackendConfig: map[string]interface{}{
  "organization": "ACME",
  "hostname": "app.terraform.io",
  "workspaces": "{ name = "foobar" }",
},

如果我能让它工作,这将提供一种解决方法,因为我可以添加一些代码来读取backend.hcl和注入信息,但是工作区格式不正确,我对它的外观有点迷茫。

编辑 2:好的,现在我发现编辑 1 中提到的解决方法不起作用,因为工作区是一个块值,目前不支持。该问题自 2019 年以来一直开放...... https://github.com/hashicorp/terraform/issues/21830

因此,如果 terratest 支持文件中的后端配置,那将非常有帮助。

标签: terratest

解决方案


推荐阅读