helm覆盖基础模板图表中的图表和值yaml

时间:2018-03-30 20:21:25

标签: kubernetes yaml kubernetes-helm

我已经定义了一个名为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不会覆盖基础中定义的内容 一个..

请建议如何构建应用程序?

1 个答案:

答案 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部分为上述用例和其他用例提供了更多上下文。