我正在测试 helm 打包和 helm 包安装,并且我已将多个版本推送到我的 helm 存储库 (Sonatype Nexus)。这些是我推送的版本:
现在当我这样做时
helm upgrade --install myRepo/myChart
我将安装 1.0.0 版本。不过我可以
helm upgrade --install myRepo/myChart --version 1.3.0-dev-RC
它将安装该版本 1.3.0-dev-RC 就好了。
helmfile
同样的问题。给定这个 helm 文件:
releases:
- name: myChart
chart: myRepo/myChart
version: ">=1.0.0"
当
apply
ing时,我也会部署1.0.0版本。
这是为什么呢?如果我不指定,我会假设 helm 将安装最新版本。
带有连字符的版本号是语义版本控制预发布版本(§9)。
helm install
文档注释
[Helm] 将安装该图表的最新稳定版本,直到您指定 '--devel' 标志以还包括开发版本(alpha、beta 和发布候选版本),或使用 '--version' 提供版本号旗帜。
Helmfile 对于仅使用稳定版本有类似的规则,或者有一个
devel: true
选项并行 helm install --devel
。
如果您想要最新的非必需发布版本,那么您可以使用这些选项
helm upgrade --install --devel myRelease myRepo/myChart
releases:
- name: myChart
chart: myRepo/myChart
devel: true
请注意,
--devel
和--version
无法有效组合,--devel
相当于设置--version '>=0.0.0-0'
。另请注意,根据 semver 规则,1.3.0-dev-RC
小于版本 1.3.0
;因此,如果您需要任何 1.3 之前或更高版本,但不需要 1.2 版本,则需要类似的语法
helm upgrade --install --version '>= 1.3.0-0' ...