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

如何从父Helm Chart访问依赖子Chart内定义的模板或代码块

报错根因

Bitnami 10.x 版本的 MongoDB Chart 已将 mongodb.service.nameOverride 这类内部辅助模板调整为私有状态,不会对外暴露给父Chart调用,所以会触发模板不存在的报错。

可用解决方案

方案1:按规则直接拼接服务名(最稳定)

Bitnami MongoDB 的 Headless 服务名遵循固定拼接规则,无需调用子Chart模板即可直接生成:
默认规则为 [Release名称]-mongodb-headless,如果你在values中为MongoDB配置了nameOverride或者fullnameOverride,替换对应的前缀即可。
示例配置:

- name: MONGO_HOST
  value: {{ printf "%s-mongodb-headless" .Release.Name }}

方案2:调用子Chart公开的公共模板

10.x版本的MongoDB Chart对外公开了mongodb.fullname公共模板,可以配合作用域参数调用后拼接服务名:
如果未自定义子Chart作用域,直接使用:

- name: MONGO_HOST
  value: {{ include "mongodb.fullname" . }}-headless

如果你将MongoDB的参数配置放在了父Chart values的mongodb字段下,需要传入子Chart的作用域:

- name: MONGO_HOST
  value: {{ include "mongodb.fullname" .Subcharts.mongodb }}-headless

使用该方案前请先执行helm dependency build,确保依赖的MongoDB Chart已完整拉取到本地charts/目录下。

方案3:修改子Chart模板导出(不推荐)

如果必须使用原模板,可手动修改charts/mongodb/templates/_helpers.tpl文件,将mongodb.service.nameOverride模板标记为可导出,但该修改会在后续更新依赖时被覆盖,仅可作为临时调试方案使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:24:00