helm 从基本模板图表中覆盖图表和值 yaml

helm overriding Chart and Values yaml from a base template chart

我定义了一个名为 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-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

它创建和部署基础微服务而不是自定义应用程序.. 换句话说,自定义应用图表中的 Chart.yaml 和 values.yaml 不会覆盖基础中定义的内容 一个..

请教如何构建应用程序?

您可能想阅读 Subcharts and Global Values doc page within Helm's repo. It covers Creating a Subchart, Adding Values and a Template to the Subchart, Overriding Values from a Parent Chart, Global Chart Values, and Sharing Templates with Subcharts. It sounds like you want the example in Overriding Values from a Parent Chart。请注意,从父图表传递到子图表的所有值都嵌套在与子图表同名的 YAML 键下。 --set 语法是相同的概念,只是在键前面加上子图名称 (--set subchartname.subchartkey=myvalue.

另外,docs.helm.sh 有很好的综合 Helm 文档,图表介绍的 Scope, Dependencies, and Values 部分为上述用例和其他用例提供了更多上下文。