helm template未加载values.yaml,Nginx子Chart未应用自定义配置
Helm模板未加载自定义values.yaml的问题解决
问题现象
执行以下命令时,生成的Nginx配置始终是默认Chart配置,而非values.yaml中定义的自定义配置:
helm template --debug nginx charts/transport-latency -f charts/transport-latency/values.yaml > .ignore/nginx-out.yaml
debug输出显示Chart路径正确,但配置未生效:
install.go:178: [debug] Original chart version: "" install.go:195: [debug] CHART PATH: /Users/<userName>/src/Repos/helm_charts/charts/transport-latency
根因分析
你的values.yaml直接使用了根级配置项,但Helm中父Chart传递配置给子Chart时,必须以子Chart的名称作为顶级键。当前子Chart名称是nginx,根级的namespaceOverride、replicaCount等配置不会被Nginx子Chart识别,因此它会使用自身默认值。
解决方案
修改charts/transport-latency/values.yaml,将所有Nginx相关配置嵌套在nginx键下:
nginx: namespaceOverride: airflow replicaCount: 2 service: type: ClusterIP
修改后重新执行原命令,生成的模板就会加载自定义配置了。
额外说明
如果需要单独验证Nginx子Chart的模板渲染,可以解压charts/nginx-13.1.0.tgz,直接针对子Chart执行helm template命令,但通过父Chart的values.yaml以子键传递配置是更规范的依赖管理方式。
内容的提问来源于stack exchange,提问作者rf guy
相关产品推荐
相关产品推荐

