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

如何在Helm Deployment文件中用Values变量动态引用Vault数据路径?

Helm Chart动态引用Vault数据路径的正确语法

问题场景

你当前在Helm Chart的deployment.yml中有一段硬编码引用Vault数据的代码:

{{- with secret "my/path/kv/key" }}
{{ .Data.data.key | indent 10 }}
{{- end }}

希望通过Values文件配置动态的数据路径,支持.Data.data.key、.Data.key、.Data.data.mykey等不同形式,于是在Values中配置:

vault:
  data_path: .Data.data.key

尝试修改deployment.yml为:

{{- with secret "my/path/kv/key" }}
{{ {{ .Values.vault.data_path }} | indent 10 }}
{{- end }}

但这种嵌套模板语法无法生效,输出仍为原代码块,未完成解析。

正确解决方案

Helm不支持直接嵌套{{ }}语法解析变量,需要使用tpl函数将Values中的字符串路径当作模板片段渲染,同时传递当前上下文(即secret对象的上下文)。

修改后的deployment.yml代码:

{{- with secret "my/path/kv/key" }}
{{ tpl (.Values.vault.data_path) . | indent 10 }}
{{- end }}

说明

  • tpl函数的第一个参数是Values中配置的路径字符串,第二个参数.表示将当前with块内的上下文(也就是secret对象)传递给模板片段,这样就能正确解析.Data.data.key这类路径。
  • Values中的配置无需修改,保持原有形式即可,比如:
    vault:
      data_path: .Data.key
    
    或者
    vault:
      data_path: .Data.data.mykey
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:42:36