0

拿一个伞形图来说,伞形图,有一个子图,sub_chart:

伞图在 Chart.yaml 中定义如下依赖项:

apiVersion: v2
name: umbrella_chart
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

appVersion: 0.1.0

dependencies:
  - name: sub_chart
    version: "~0.1.0"
    repository: "@local-development"

而 sub_chart 有一个 Chart.yaml 像:

apiVersion: v2
name: sub_chart
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

maintainers:
  - name: Me

appVersion: 0.1.0

作为我的 CI/CD 管道的一部分,我想在打包和推送之前将 Jenkins 内部版本号附加到 sub_chart 的版本号。这工作正常。对于 build 123,我最终将 0.1.0-123 版本推送到本地开发。

helm search repo --versions --devel
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                      
local-development/sub_chart       0.1.0-123      0.1.0           A Helm chart for Kubernetes   

但是,当我运行时,出现helm dep up umbrella_chart以下错误:

Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local-development" chart repository
Update Complete. ⎈Happy Helming!⎈
Error: can't get a valid version for repositories sub_chart. Try changing the version constraint in Chart.yaml

我认为使用波浪号可以让 helm 使用 >0.1.0 和 <0.2.0 的任何图表版本?我是否需要在我的仓库中有一个 0.1.0 版本的 sub_chart 才能构建伞形图?它会在那个实例中使用正确的 0.1.0-123 版本的 sub_chart 吗?

谢谢你的帮助

4

1 回答 1

0

似乎我的依赖项没有正确定义为接受预发布,我的修复基于.

我的新伞图/Chart.yaml 看起来像:

apiVersion: v2
name: umbrella_chart
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

appVersion: 0.1.0

dependencies:
  - name: sub_chart
    version: "~0.1.0-0"
    repository: "@local-development"

它正确地选择了预发布。

于 2021-11-02T15:16:32.643 回答