此外,Helm 3默认添加了针对Kubernetes对象的OpenAPI验证,这意味着发送到Kubernetes API的请求将会被检查是否正确。这对于Chart维护者来说,是一项重大利好。
4、 Helm 测试Helm测试是一个小小的优化。尽管微小,但它也许实际上鼓励了维护者来写Helm测试以及用户在安装完每个chart之后执行helm test命令。在Helm 3之前,进行测试多少都显得有些奇怪:
1、 此前测试作为Pod执行(好像需要一直运行);现在你可以将其定义为Job。
2、 测试Pod不会自动被移除(除非你使用magic flag –cleanup),所以默认状态下,没有任何技巧,对于既定的版本你不能多次执行helm test。但幸运的是,现在可以自动删除测试资源(Pod、Job)。
当然旧的测试版本也并非不能使用,只需要使用Pod并始终记得执行helm test –cleanup。但也不得不承认,这一改进有助于提升测试体验。
5、 命令行语法最后一点是,Helm命令语法有所改变。从积极的一面来看,我认为所有的改变都是为了让体验更好;从消极的方面看,这一语法不与之前的版本兼容。因此,现在编写有关如何使用Helm安装东西的步骤时,需要明确指出所使用的命令是用于Helm 2还是用于Helm 3。
举个例子,从helm install开始说起。现在版本名称已经成为必填参数,尽管在Helm 2中你可以忽略它,名称也能够自动生成。如果在Helm3中要达成相同的效果,你需要添加参数--generate-name。所以,使用Helm 2进行标准的安装应该如下:
$ helm2 install --name my-release hazelcast/hazelcast在Helm 3中,需要执行以下命令:
$ helm3 install my-release hazelcast/hazelcast还有另一个比较好的改变是,删除Helm版本后,无需添加—purge。简单地输入命令helm uninstall <release-name>即可删除所有相关的资源。
还有一些其他改变,如一些命令被重命名(不过使用旧的名称作为别名),有一些命令则被删除(如 helm init)。如果你还想了解更多关于Helm 命令语法更改的信息,请参考官方文档:
结 论Helm 3的发布,使得这一工具迈向一个新的阶段。作为用户,我十分喜欢Helm现在只是一个单纯的客户端工具。作为Chart维护者,Helm Hub以及分布式仓库的方法深得我心。我希望能在未来看到更多更有意思的改变。
如果你想了解Helm 3中的所有变化,请查看官方文档:
原文链接:
https://dzone.com/articles/helm-3-top-five-improvements