You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Terraform的helm_release资源中传入对象类型变量

Terraform中给Helm Chart传入对象类型变量的解决方法

方法1:拆分属性为多个set块

Terraform的helm_release单个set块仅支持字符串值,但可以借助Helm的嵌套参数语法,把对象的每个属性拆成单独的set项:

resource "helm_release" "cluster_autoscaler" {
  name       = "cluster-autoscaler"
  chart      = "cluster-autoscaler"
  repository = "https://kubernetes.github.io/autoscaler"
  version    = "9.9.2"

  set {
    name  = "extraArgs.balance-similar-node-groups"
    value = "true"
  }

  set {
    name  = "extraArgs.skip-nodes-with-system-pods"
    value = "false"
  }
}

通过.指定参数的嵌套路径,每个属性对应一个set块,就能满足Chart对对象类型参数的要求。

方法2:用values参数传入完整YAML配置

如果对象属性较多,更推荐直接用values参数传入YAML格式的配置,完整表达对象结构:

resource "helm_release" "cluster_autoscaler" {
  name       = "cluster-autoscaler"
  chart      = "cluster-autoscaler"
  repository = "https://kubernetes.github.io/autoscaler"
  version    = "9.9.2"

  values = [
    <<-EOT
    extraArgs:
      balance-similar-node-groups: true
      skip-nodes-with-system-pods: false
    EOT
  ]
}

这里用Terraform的heredoc语法编写YAML内容,Helm会直接解析这个对象结构,完全匹配Chart的参数预期。

补充说明

直接在set块里传HCL对象会报错,是因为Terraform的set块value字段仅接受字符串类型,无法直接传递对象。上面两种方法都能绕过这个限制,让Helm正确接收对象类型的配置。

内容的提问来源于stack exchange,提问作者kirsie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:02:15