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

如何向helm_release传递字符串列表?部署遇YAML解析错误

问题原因与解决方案

核心问题在于:Kubernetes Ingress的注解仅支持字符串类型,即便ALB控制器文档标注alb.ingress.kubernetes.io/subnets为stringList类型,也要求传入逗号分隔的字符串,而非直接传递数组。直接传数组会导致Helm渲染出类似[subnet-xxxx,subnet-yyyy]的格式,K8s无法将其反序列化为注解所需的字符串类型,从而报错。

具体修正步骤:

  1. 修改Helm模板(ingress.yaml)
    将注解赋值逻辑改为用join函数把列表转为逗号分隔的字符串:

    annotations:
      alb.ingress.kubernetes.io/subnets: {{ join "," .Values.alb.subnets }}
    

    这样渲染后的注解值会是subnet-xxxx,subnet-yyyy的字符串格式,ALB控制器会自动将其解析为stringList。

  2. 确认Terraform配置无需额外调整
    main.tf中用set_list传递var.data_subnet_ids的配置是正确的,因为Helm values里的alb.subnets依然是列表类型,只是模板渲染时做了格式转换。

  3. 验证values.yaml默认值
    values.yaml中alb.subnets定义为字符串列表的配置保持不变即可,例如:

    alb:
      subnets:
        - subnet-xxxx
        - subnet-yyyy
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:54:55