使用 Terraform 的 helm_release,如何设置数组或列表值?

use*_*182 5 terraform kubernetes-helm terraform-provider-azure

例如,根据Drupal 的 helm 图表文档,默认值 isaccessModes转换["ReadWriteOnce"]为 YAML 中的以下内容:

...
accessModes
- ReadWriteOnce
Run Code Online (Sandbox Code Playgroud)

使用 Terraform helm_release资源时,以下内容不起作用,并且 yaml 文件始终显示上面的默认值:

  set {
    name  = "persistence.accessModes"
    value = "ReadWriteMany"
  }
Run Code Online (Sandbox Code Playgroud)
  set {
    name  = "persistence.accessModes"
    value = "[\"ReadWriteMany\"]"
  }
Run Code Online (Sandbox Code Playgroud)
  set {
    name  = "persistence.accessModes"
    value = "- ReadWriteMany"
  }
Run Code Online (Sandbox Code Playgroud)

The*_*ool 11

您可以按照与 helm CLI --set标志相同的方式设置它。例如,使用索引表示法。

从 Helm 2.5.0 开始,可以使用数组索引语法访问列表项。例如,--set 服务器[0].port=80

set {
  name  = "persistence.accessModes[0]"
  value = "ReadWriteMany"
}
Run Code Online (Sandbox Code Playgroud)

另一种语法是使用花括号。您可以在其中添加列表项,并在大括号之间用逗号分隔。

列表可以通过将值括在 { 和 } 中来表达。例如,--set name={a, b, c}

set {
  name  = "persistence.accessModes"
  value = "{ReadWriteMany}"
}
Run Code Online (Sandbox Code Playgroud)