如何解决将 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 举报,一经查实,本站将立刻删除。