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

如何通过Helm将.jks文件正确导入Kubernetes Secret?

解决Helm模板中JKS文件无法正确导入Secret的问题

问题根源

  1. 文件路径错误:Helm的.Files对象路径基于Chart根目录,你在templates目录下的secret.yaml中使用../trust.jks,若trust.jks未放置在Chart根目录(与templates文件夹同级),Glob将匹配不到文件,.AsSecrets返回空map,最终被转为字符串{}并二次base64编码为e30=。
  2. 重复base64编码:.AsSecrets方法已自动对文件内容做base64编码,额外添加的| b64enc会导致编码两次,即使路径正确也会出现内容异常。

正确实现方式

方式一:直接获取单个文件(推荐)

将trust.jks放在Chart根目录(与templates文件夹同级),修改secret.yaml:

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
data:
  truststore.jks: {{ .Files.Get "trust.jks" | b64enc }}

方式二:使用Glob匹配并取值(适用于多文件场景)

若需通过Glob匹配文件,需从返回的map中取出对应文件的base64值(无需再次编码):

apiVersion: v1
kind: Secret
metadata:
  name: my-secret
data:
  truststore.jks: {{ index (.Files.Glob "trust.jks").AsSecrets "trust.jks" }}

验证方法

执行helm install --dry-run查看生成的Secret内容,确认truststore.jks的值为一段较长的base64字符串,而非e30=,即可验证文件已被正确读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 19:35:25