在 KubeSphere 2.1 版本我们与 Jenkins 社区共同对 kubernetes-cd 插件进行了大更新,在这个版本中能接受的部署文件与之前版本的有所不同,我们在这里进行一些说明。
原因
https://github.com/jenkinsci/kubernetes-cd-plugin/pull/94
我们对kubernetes cd 插件进行了底层 sdk 的切换由 https://github.com/fabric8io/kubernetes-client 切换到 https://github.com/kubernetes-client/java 。
配置不兼容
- 在之前版本中可以支持 yaml 文件中不填写 apiVersion,但在KubeSphere 2.1开始,所有的部署文件都应该写入对应的 apiVersion
原因:kubernetes java client 需要使用 apiVersion 解析出对应的资源类型
ref: https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-apiversion-definition-guide.html
- yaml文件对齐方式不兼容
在 2.1 版本之前支持混用 Tab 与空格进行对齐,在 2.1 版本之后需要用空格进行对齐
原因:kubernetes java client 所使用的 Yaml 工具不同
- PVC配置不兼容( 2.1.1 会提供修复)
在2.1版本之前允许输入PVC的部分字段
在升级2.1版本之后,需要输入全量spec
原因 PVC replcae 语义理解错误
修复:https://github.com/jenkinsci/kubernetes-cd-plugin/pull/119
- 滚动更新不支持证书类型 (2.1.1 会提供修复)
在2.1版本之前滚动更新可以使用整数类型与百分比形式两种格式
在2.1版本之后滚动更新仅可以使用百分比形式
原因:kubernetes java client 5.0.0不支持IntOrString,7.0.0 支持
修复:https://github.com/jenkinsci/kubernetes-cd-plugin/pull/116