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

hac*_*ain 7 yaml kubernetes 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
Run Code Online (Sandbox Code Playgroud)

我想定义一个继承父图表的customapp图表.

结构如下:

customapp-service
    - customapp
                - Chart.yaml
        - charts
        - requirements.yaml
        - values.yaml
    - src
Run Code Online (Sandbox Code Playgroud)

requirements.yaml如下:

dependencies:
    - name: base-microservice
      repository: https://mycompany.github.com/pages/base-microservice
      version: 0.1.0
Run Code Online (Sandbox Code Playgroud)

当我做

helm install --repo https://mycompany.github.com/pages/base-microservice --name customapp --values customapp/values.yaml
Run Code Online (Sandbox Code Playgroud)

它创建并部署base-microservice而不是customapp ..换句话说,我的自定义应用程序图表中的Chart.yaml和values.yaml不会覆盖在基础app中定义的内容.

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

小智 17

您可能想要阅读Helm的repo中的Subcharts和Global Values文档页面.它包括创建子图,向子图添加值和模板,从父图表覆盖值,全局图表值以及使用子图表共享模板.听起来您想要从父图表覆盖值中的示例.请注意,从父级传递到子图的所有值都嵌套在YAML键下方,其名称与子图相同.--set语法是相同的概念,只是在键前面加上子图名称(--set subchartname.subchartkey=myvalue.

此外,docs.helm.sh具有良好的,整合的Helm文档,并且Intro To Charts 的Scope,Dependencies和Values部分为上面的用例以及其他用例提供了更多上下文.