【问题标题】:helm chart install - will failed if dependency already installedhelm chart install - 如果已安装依赖项将失败
【发布时间】:2021-09-23 07:46:16
【问题描述】:

我有一些掌舵图(每个都是微服务),但其中一些依赖于 常用图表(一些秘密、pvcs 等) 可以声明图表和普通图表之间的依赖关系,但如果一个包 已作为依赖项安装 - helm chart 安装将失败。

我正在寻找一种方法来安装具有依赖关系的 helm 图表,但如果已经安装了一个依赖图表,请输入或打印消息,但不会导致安装过程失败。

有什么聪明的方法来处理吗? 就像,检查是否已经安装了先决条件图表并绕过它而不会在整个过程中失败。 谢谢

【问题讨论】:

    标签: kubernetes kubernetes-helm


    【解决方案1】:

    理想情况下,您可以使用

    https://helm.sh/docs/helm/helm_dependency/

    # Chart.yaml
    dependencies:
    - name: nginx
      version: "1.2.3"
      repository: "https://example.com/charts"
    - name: memcached
      version: "3.2.1"
      repository: "https://another.example.com/charts"
    

    Helm 图表将其依赖项存储在“charts/”中。对于图表 开发人员,在“Chart.yaml”中管理依赖项通常更容易 它声明了所有依赖项。

    依赖命令对该文件进行操作,使其易于 在所需依赖项和实际依赖项之间同步 依赖项存储在 'charts/' 目录中。

    您也可以使用子图表和父图表格式来管理依赖关系

    文件夹结构会是这样的

    ├── Chart.yaml
    ├── charts
    │   └── django
    │       ├── Chart.yaml
    │       ├── templates
    │       │   ├── deployment.yaml
    │       │   ├── ingress.yaml
    │       │   └── service.yaml
    │       └── values.yaml
    ├── templates
    └── values.yaml
    

    例如:https://medium.com/craftech/one-chart-to-rule-them-all-3f685e0f25a9

    您也可以在官方文档中阅读更多内容:https://helm.sh/docs/chart_template_guide/subcharts_and_globals/

    到目前为止,我们只使用一张图表。但是图表可以 有依赖关系,称为子图,它们也有自己的值 和模板。在本节中,我们将创建一个子图表并查看 我们可以通过不同的方式从模板中访问值。

    【讨论】:

    • 您好,谢谢您的回答-但我谈到了一个不同的用例...我已经声明了依赖项-可以找到。但是如果 2 个 helm 图表使用相同的依赖关系会发生什么?第一个将毫无问题地部署,第二个将失败 - 出现已安装依赖项的错误我正在寻找一种方法,如果已安装依赖项,帮助将忽略并仅在需要时安装它。依赖项已经安装...
    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2016-06-12
    • 2023-03-26
    • 2018-06-18
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多