helm 版本不规范问题

问题背景:最开始是发现使用3.2.x这个变量作为参数打包时,在jenkins打包完成后发现helm的chart包中依赖的subchart版本是3.2.1的。是之前打包的版本。
解决过程:
首先排查jenkins的配置,在添加了版本打印日志后,发现3.2.x这个版本确实是作为参数传入了。检查最外层的chart包中的Chart.yaml文件也可以看到版本是对的。
但是charts文件夹下的依赖却是3.2.1的。这就很奇怪了,这也是另一个同事之前看了很久没有问题。那也是从这个地方接手了这个工作。

我分析既然charts文件夹下存在3.2.1的版本,那整个chart包应该就会有这种定义。于是我在chart包中搜索3.2.1的内容。果然,发现Chart.lock这个文件里面写的依赖
版本就是3.2.1。

看了一下官网,Chart.lock是helm dep update这个命令中通过Chart.yaml生成的,但是它们中的依赖版本号却不相同。我感觉是helm的一个bug。搜索之后发现确实有一个
fix "Chart.lock is out of sync with Chart.yaml"的bug,不过我们使用的版本已经修复了。不过,虽然不是这个bug,也可能是其他bug。我就还是升级了helm版本到3.7.3。

升级之后,我再次执行helm dep update 时就报错了,报错3.2.x是错误的版本号。这时候我就比较疑惑了,因为之前的版本并没有报过这种错。于是我通过helm create一个新
的helm包,并且把我之前的依赖拷贝到新包,再次执行helm dep update 就报错了一大堆依赖包版本错误。并且最终拉下来的依赖版本是3.2.1的。

到这里基本就清楚了,就是helm 不支持chart版本为3.2.x这种写法。应该是3.2.后面不能使用字母,字母只能存在于3.2-98r这种-的后面。最终将版本号改为前面一段不使用字母就
正常了。后面查了一下发现官网也确实指出了helm需要支持Semantic Versioning 2.0.0的版本要求。 https://semver.org/spec/v2.0.0.html

只是我最开始用的helm版本不报错,所以花了些时间排查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值