Kubernetes扩展status子资源字段 是否需要发布新API版本?
问题解答
针对你为自定义资源(CR)的status新增ErrMsg字段的需求,结论是不需要发布新的API版本,直接修改对应管理Operator填充字段值即可,具体依据如下:
- Kubernetes官方API兼容性约定明确允许在现有稳定API版本的
status子资源中新增可选、向后兼容的字段。你新增的字段带有omitempty标签,未填充时不会出现在CR的序列化结果中,旧版本的Operator、第三方客户端读取该CR时会自动忽略未知的errmsg字段,不会产生序列化错误,也不会破坏现有业务逻辑。 - 你只需要同步更新对应CRD的OpenAPI Schema定义,补充
errmsg字段的描述说明即可,不需要调整CRD的API版本号,也不需要做存量CR的迁移操作。
仅当出现以下场景时才需要考虑发布新的API版本:对CR的
spec字段做不兼容修改(如删除现有字段、修改字段类型、新增必填字段)、修改status现有字段的语义导致旧客户端逻辑出错。
内容的提问来源于stack exchange,提问作者chris_f
相关产品推荐
相关产品推荐

