【问题标题】:Specifying local helm dependency指定本地 helm 依赖项
【发布时间】:2021-08-26 22:49:48
【问题描述】:

我正在尝试使用 bitnami helm 图表添加 rabbitmq 服务。该图表包含一个称为通用的相关舵图。 整个应用程序本身使用父 helm chart 进行部署,每个服务都有自己单独的 helm chart。 Helm 图表结构如下所示-

\myapp
    \charts
        \service1
        \service2
        \service3
        \messaging
            \charts 
                \common
            \templates
                \chart.yml
                \values.yml

当我从“消息”目录运行“helm 依赖项更新”时,它下载了一个 common-1.x.x.tgz 文件。我提取了内容并将其放在 \messaging\charts\common 文件夹中 原始消息\模板\chart.yml(rabbitmq helm chart)包含以下条目

dependencies:
  - name: common
    repository: https://charts.bitnami.com/bitnami
    tags:
      - bitnami-common
    version: 1.x.x

因为在“Helm install”执行期间我无法下载,我必须事先下载依赖的 helm 图表并将它们保存为本地依赖项。下载common.tgz文件后,我提取内容并更新messaging\templates\chart.yml中的依赖关系如下

dependencies:
  - name: common
    repository: 'file://charts/messaging/charts/common'
    tags:
      - bitnami-common
    version: 1.x.x

如果我执行“掌舵安装消息传递”。从 \myapp\charts\messaging 目录,该服务得到部署没有任何错误。但是当部署应用程序的父掌舵图时,我总是会收到此错误

"Error: found in Chart.yaml, but missing in charts/ directory: messaging"

有人可以指出配置中的错误吗?我在多个位置移动了公共文件夹的内容,将它们作为 tgz 文件,更新了相对于消息传递目录而不是父掌舵图位置的存储库路径,但在所有情况下,消息传递服务的安装都因上述原因而失败错误

【问题讨论】:

    标签: kubernetes-helm


    【解决方案1】:

    您无需解压charts/*.tgz 文件。如果它们在该目录中(并且仍然打包),那么 Helm 将使用它们来运行部署。 Helm 不会自行联系外部图表存储库,只有在您运行 helm dependency 命令时。

    运行helm dep up 后,您的文件系统布局应如下所示

    myapp
    \-- charts
      \-- messaging
        +-- charts
        | \-- rabbitmq-8.15.3.tgz
        |-- templates
        | +-- deployment.yaml
        | \-- service.yaml
        +-- Chart.yaml
        \-- values.yaml
    

    您已准备好进入此状态。不要打开任何东西。

    如果您需要跨网络边界复制此设置,请在执行此操作时包含 charts/*.tgz 文件。 Chart.yamlrequirements.yaml 引用 Internet 位置无关紧要; helm install 只会使用那些本地档案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2018-07-19
      相关资源
      最近更新 更多