我是新手,我想知道如何将变量从父包传递给子包。 我有一个多微服务应用程序,其中包含以下不同的头盔包:
$ tree parent/
parent/
├── charts/
│ ├── child-A-0.0.1.tgz
│ ├── child-B-0.0.1.tgz
│ └── child-C-0.0.1.tgz
├── Chart.yaml
├── templates/
│ ├── NOTES.txt
│ └── secret.yaml
└── values.yaml
例如,我想在父级public-IP
中设置values.yaml
,并在安装public-IP
通过的父级并将其设置在子级中时。
答案 0 :(得分:2)
Overriding values of a child chart在Helm文档中进行了描述。
在父图表的values.yaml
文件(或传递给helm install -f
的外部文件)中,您可以显式覆盖子图表的值:
childA:
publicIP: 10.10.10.10
顶级值键global
也总是传递给子图,但是该图需要知道如何查找。
global:
publicIP: 10.10.10.10
env:
- name: PUBLIC_IP
value: {{ .Values.global.publicIP }}
此解析发生在Helm设置阶段的早期,因此无法将计算值传递到子图表,也无法将父图表的顶级配置中的相同值传递到子图表中,而无需将事物重构为{{1 }}。