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

如何将ArgoCD场景下values.yaml的字符串转为可迭代列表供Helm遍历

实现方案

你可以通过Helm内置的字符串处理函数直接将空格分隔的字符串转为可遍历的列表,完全兼容ArgoCD ApplicationSet只能传字符串参数的限制,以下是两种常用实现:

方案1:使用splitList切割(适合固定单空格分隔的场景)

先对传入的字符串做首尾去空格处理,再按空格切割为列表:

{{- /* 切割字符串为列表 */}}
{{- $urlList := splitList " " (trim .Values.urls) }}
{{- /* 遍历列表 */}}
{{ range $url := $urlList }}
{{ $url }}
{{ end }}

方案2:使用正则匹配提取(容错性更高,推荐动态传参场景使用)

如果传参可能出现多空格、制表符等任意空白分隔的情况,可以直接用正则提取所有非空白的url片段,自动忽略无效空白:

{{- /* 匹配所有非空白连续字符,返回列表 */}}
{{- $urlList := regexFindAll `\S+` .Values.urls -1 }}
{{- /* 遍历列表 */}}
{{ range $url := $urlList }}
{{ $url }}
{{ end }}

如果需要兼容urls为空的场景,可以加一层非空判断:

{{- if .Values.urls }}
{{- $urlList := regexFindAll `\S+` .Values.urls -1 }}
{{ range $url := $urlList }}
{{ $url }}
{{ end }}
{{- end }}
  • 两种方案都不需要修改现有传值逻辑,直接在Helm模板层处理即可。
  • 注意不要混淆split和splitList:split返回的是索引为键的字典,需要列表遍历场景请使用splitList。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:51:02