簡體   English   中英

terraform.Options for Terratest 和 terraform.tfvars 中傳遞的變量之間的差異?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM