我已经定义了一个名为base-microservice的父图表,可以在mycompany.github.com/pages/base-microservice上找到
结构如下:
base-microservice
- templates
- deployment.yaml
- ingress.yaml
- service.yaml
- Chart.yaml
- values.yaml
- index.yaml
- base-microservice-0.1.0.tgz
我想定义一个继承父图表的customapp图表。
结构如下:
customapp-service
- customapp
- Chart.yaml
- charts
- requirements.yaml
- values.yaml
- src
requirements.yaml如下:
dependencies:
- name: base-microservice
repository: https://mycompany.github.com/pages/base-microservice
version: 0.1.0
当我这样做时
helm install --repo https://mycompany.github.com/pages/base-microservice --name customapp --values customapp/values.yaml
它创建并部署base-microservice而不是customapp .. 换句话说,我的自定义应用程序图表中的Chart.yaml和values.yaml不会覆盖基础中定义的内容 一个..
请建议如何构建应用程序?
答案 0 :(得分:10)
您可能需要阅读Helm的回购中的Subcharts and Global Values文档页面。它包括创建子图,向子图添加值和模板,从父图表覆盖值,全局图表值以及使用子图表共享模板。听起来你想要Overriding Values from a Parent Chart中的例子。请注意,从父级传递到子图的所有值都嵌套在YAML键下方,其名称与子图相同。 --set
语法是相同的概念,只是在键前面加上子图名称--set subchartname.subchartkey=myvalue
。
此外,docs.helm.sh具有良好的整合Helm文档,而Intro To Charts的Scope, Dependencies, and Values部分为上述用例和其他用例提供了更多上下文。