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

Helm chart模板中如何将字典转换为指定结构的字典变量

Helm 字典变量转换实现

Helm 依赖的 Go Template + Sprig 函数库没有原生单行字典推导式语法,可通过「初始化空字典+遍历写入键值对」的方式完成纯变量层面的转换,全程不会产生多余渲染输出,完全适配你的场景。

核心赋值代码

直接替换你模板里的$aliases赋值段即可:

{{- /* 初始化空字典 */ -}}
{{- $aliases := dict -}}
{{- /* 遍历proxy下所有配置项,提取alias写入目标字典 */ -}}
{{- range $proxyName, $proxyConf := .Values.proxy -}}
  {{- $_ := set $aliases $proxyName $proxyConf.alias -}}
{{- end -}}

语法说明

  • dict:Sprig 提供的字典初始化函数,这里用于生成空的目标字典
  • range:遍历.Values.proxy下的所有键值对,键为public/private这类代理实例名,值为对应实例的配置块
  • set:Sprig 提供的字典写操作函数,接收3个参数:目标字典、键名、键值,会直接修改原字典;用$_ :=捕获函数返回值,避免意外把返回内容渲染到模板输出里

后续使用验证

你原有的配置片段不需要做任何修改,可直接使用:

data:
  aliases: {{ $aliases | toJson | quote }}

渲染后生成的最终值完全符合预期结构:

{"public": "proxy-public.somedomain.com", "private": "proxy-private.somedomain.com"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:15:38