将 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 的其他错误。这似乎是合理的,因为 organization 不在 main.tf 中。

一种解决方法是将 backend.hcl内容包含在 main.tf 中,但这不适合我们的架构,需要编辑 main.tf 仅用于测试。

有没有办法告诉 terratest 在 terraform 初始化时包含 backend.hcl

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

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

如果我能让这个工作,这将提供一个解决方法,因为我可以添加一些代码来读取 backend.hcl 并注入信息,但是工作区格式不正确,我有点迷茫应该怎么看。

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...