1 回答
TA贡献1851条经验 获得超4个赞
这可以通过全局值来解决,全局值允许父图表中的值覆盖(或提供未指定的)子子图表中的值。
来自关于子图和全局值的 Helm 文档:
子图被视为“独立”,这意味着子图永远不能显式依赖于其父图。
因此,子图无法访问其父图的值。
父图表可以覆盖子图表的值。
Helm 有一个全局值的概念,所有图表都可以访问它。
(起初我并没有想到要搜索“helm subchart”,但当我在互联网上搜索该术语时,这是第一个或第二个结果)
这是解决您的问题的最小示例:
目录结构
helm
├── Chart.yaml
├── charts
│ └── chart_a
│ ├── Chart.yaml
│ └── templates
│ └── configMap.yml
├── templates
│ └── _helpers.tpl
└── values.yaml
注意:我添加了Chart.yaml文件以使其实际工作,重命名values.yml为values.yaml,以便它默认工作而无需额外的标志,并删除requirements.yml,因为没有必要重现问题和解决方案。
values.yaml
global:
ldap:
enabled: true
type: opendj
extraHosts:
- host: opendj
port: 3434
ldapType: xxx
ldapPort: 123
关键是将你拥有的东西嵌套在一个特殊的global键下。请注意,我还添加了ldapType和 ,ldapPort因为它们在您的 中_helpers.tpl,并且我修复了您在 下的 YAML 结构extraHosts。host之前的内容实际上并不代表带有和键的地图列表port。如果没有此修复,该helm命令不会失败,但也不会输出您想要的内容。
结果
$ helm template .
---
# Source: helm/charts/chart_a/templates/configMap.yml
apiVersion: v1
kind: ConfigMap
metadata:
name: cm
data:
GLUU_LDAP_URL: release-name-xxx:123,opendj:3434
- 1 回答
- 0 关注
- 134 浏览
添加回答
举报