升级指导
概述
Karmada 使用 semver 发版机制,每个版本的格式为 vMAJOR.MINOR.PATCH:
PATCH版本不会引入破坏性的变更。MINOR版本可能引入少量破坏性的变更,但会提供一些应对办法。Major版本可能引入向后不兼容的重大变更。
常规升级流程
升级 API
对于引入 API 变更的版本,必须升级 Karmada 组件所依赖的 Karmada API (CRD) 来保持一致。
Karmada CRD 由两部分组成:
- bases:通过 API 结构生成的 CRD 定义。
- patches:针对 CRD 的转换设置。
为了支持多个版本的自定义资源,patches 应被注入到 bases 中。
为此我们引入了 kustomization.yaml 配置文件,然后使用 kubectl kustomize 构建最终的 CRD。
bases、patches 和 kustomization.yaml 现在位于代码仓库的 charts/_crds 目录。