如何通过Terraform Provider将数组值传入Helm Chart的values.yaml?
解决Terraform Helm Provider传递数组值到values.yaml的问题
你当前用join的方式不对,因为join只会把数组元素拼成逗号分隔的字符串,Helm会把它识别成单个字符串值,而非数组。针对你需要的两种格式,给你两个直接可行的方案:
方案1:生成JSON数组格式
用Terraform的jsonencode函数直接将数组序列化为JSON格式字符串,Helm能自动识别为数组类型:
set { name = "my_test_groups" value = jsonencode(each.value.test_groups) }
最终在values.yaml中会生成:
my_test_groups: ["TEST_GROUP_1", "TEST_GROUP_2"]
方案2:生成YAML列表格式
使用Helm Provider自带的set_list块(专门用于传递数组/列表类型的值),无需手动处理格式:
set_list { name = "my_test_groups" values = each.value.test_groups }
最终在values.yaml中会生成:
my_test_groups: - TEST_GROUP_1 - TEST_GROUP_2
这两种方案都能满足你的需求,推荐根据values.yaml的预期格式选择对应方式。
内容的提问来源于stack exchange,提问作者Ricky18
相关产品推荐
相关产品推荐

