Kubernetes v1.36:声明式验证升级为通用认证 笔记

Kubernetes v1.36:声明式验证升级为通用认证

Kubernetes v1.36 现已普遍可用,引入了原生类型的声明式验证。该功能将验证规则的定义方式从手写 Go 代码转向 IDL 标签,从而提升了 API 的可靠性与可预测性。此前对手写代码的依赖导致了技术债务、不一致性以及不透明的 API 接口。该解决方案利用 validation-gen 代码生成器,通过解析标签自动生成 Go 验证函数。该框架包含多种标记标签,用于处理存在性、约束、集合、联合类型及不可变性。其关键优势在于“环境式棘轮”(ambient ratcheting),允许在不破坏现有对象的前提下即时收紧或放宽验证规则。声明式验证使得 API 审查更加便捷,并与 kube-api-linter 等工具保持一致。该项目计划迁移剩余的遗留代码,并强制要求新 API 采用声明式验证。此举还将释放未来生态系统的诸多益处,例如支持 kubectl 等工具进行客户端验证,以及与 Kubebuilder 等工具的集成。迁移工作正在进行中,并提供了参与 Kubernetes 代码库贡献的机会。文档最后向贡献者致谢,欢迎 Kubernetes 验证的声明式未来。