问题描述
我成功地使用了 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 (将#修改为@)