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

如何在Helm Chart中为valueFrom引用的值添加引号?

解决Kubernetes环境变量添加引号的问题

要让环境变量的值带上双引号(比如FTP_USER="user"),直接用secretKeyRef无法实现——它只会读取并解码Secret里的原始值。你需要改用value字段,通过模板语法把值包裹在引号里,具体分两种场景处理:

场景1:FTP用户值来自Chart的Values配置

如果ftp_user是从Chart的Values中定义的(比如Values.ftp.user),直接在env中这么写:

spec:
  ...
  env:
    - name: FTP_USER
      value: '"{{ .Values.ftp.user }}"'

生成的YAML会自动处理引号转义,最终环境变量的值就是带双引号的字符串。

场景2:Secret已存在于集群中,需动态获取值

如果Secret是独立创建的,或者值不在Values里,用Helm的lookup函数读取Secret内容,解码后再包裹引号:

spec:
  ...
  env:
    - name: FTP_USER
      value: '"{{ (lookup "v1" "Secret" .Values.metadata.namespace "ftp-credentials").data.ftp_user | b64dec }}"'
  • lookup函数会去指定命名空间获取名为ftp-credentials的Secret
  • b64dec用来解码Secret里base64编码的ftp_user值
  • 外层的"和模板内的"组合,最终给值加上双引号

你之前写法的错误原因

你写的{{ ftp_user | quote }}是错误的——ftp_user既不是Helm模板的内置函数,也不是已定义的变量,所以会报function "ftp_user" not defined错误。另外valueFrom.secretKeyRef只能直接引用密钥的key,无法对值做拼接或修改,因此没法实现加引号的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:55:17