[英]Difference between variables passed in terraform.Options for Terratest and terraform.tfvars?
我得到 terraform。Options 用於測試目的,但是當我的 Terratest 可以從 tfvars 文件中獲取變量值時,它的目的是什么? 我怎樣才能最大限度地利用它?
此外,我在 tfvars 中的大部分變量都是嵌套的。 我怎么會在terraform.Options中把map那個出來?
#variable in tfvars
resource_group = {
resource_group1 = {
rg_name = "Terratest1"
#resource group location
location = "us"
#tags
tags = {
foo = "foo"
bar = "bar"
}
}
resource_group2= {
rg_name = "Terratest2"
location = "us"
tags = {
foo = "foo"
bar = "bar"
}
}
}
#how would I map in terraform.Options?
terraformOptions := &terraform.Options{
// The path to where our Terraform code is located
TerraformDir: "../../examples/azure/terraform-azure-resourcegroup-example",
Vars: map[string]interface{}{
"postfix": uniquePostfix,
},
}
我得到 terraform。Options 用於測試目的,但是當我的 Terratest 可以從 tfvars 文件中獲取變量值時,它的目的是什么?
測試的一個重要方面是改變輸入,並根據這些輸入驗證行為和輸出。 您可以使用terraform.Options
為模塊提供各種輸入,然后確定模塊的行為和輸出是否符合預期。 如果這是一個根模塊配置,那么該值將大大減少。 如果這是一個可重用且經常聲明的模塊,那么它就有很大的價值。
我怎么會在terraform.Options中把map那個出來?
使用嵌套類型構造函數最容易:
terraformOptions := &terraform.Options{
// path to terraform module
TerraformDir: "../../examples/azure/terraform-azure-resourcegroup-example",
// map of input variables to module
Vars: map[string]interface{}{
"resource_group1": map[string]interface{}{
"rg_name": "Terratest1",
"location": "us",
"tags ": map[string]string{
"foo": "foo",
"bar": "bar",
},
},
"resource_group2": map[string]interface{}{
"rg_name": "Terratest2",
"location": "us",
"tags ": map[string]string{
"foo": "foo",
"bar": "bar",
},
},
},
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.