取一张伞图,umbrum_chart,带有一个子图,sub_chart:
umbrella_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 的版本号中。这很好用。对于构建 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? Do I need to have a version 0.1.0 of sub_chart in my repo to be able to build umbrella_chart? Will it use the correct 0.1.0-123 version of sub_chart in that instance?
感谢您的帮助
似乎我的依赖项没有正确定义为接受预发布,我的修复基于this。
我的新伞_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-0"
repository: "@local-development"
并且它正确地获取了预发布版本。