概要
validation-gen フレームワーク(KEP-5073)の複数のタグが安定性レベルを昇格しました。OpenAPI互換の検証タグはBeta → Stable(GA)に、モード識別タグはAlpha → Betaに昇格しています。
背景・前提知識
validation-genのタグ安定性レベル: Alpha(実験的・変更あり得る) → Beta(概ね安定) → Stable/GA(後方互換性保証)という段階があります。
なぜ安定性が重要か: controller-toolsやCRD作者など下流のツールがこれらのタグを使い始める際、「突然仕様が変わって壊れる」というリスクがなくなることが重要です。StableになればAPIとして後方互換性が保証されます。
詳細
今回のPRで昇格したタグ:
| タグ | 変更 | 内容 |
|---|---|---|
+k8s:maxLength | Beta → Stable | 文字列の最大文字数(OpenAPIのmaxLengthと同義)。VolumeAttachmentSpec.Attacherなど2リリース以上の実績あり |
+k8s:maxProperties | Beta → Stable | オブジェクト/マップの最大プロパティ数(OpenAPIのmaxPropertiesと同義)。Kubernetes API内での使用実績はないが、OpenAPI標準として意味が確立されているため直接Stableへ |
+k8s:maximum | Beta → Stable | 数値の上限(OpenAPIのmaximumと同義)。ResourcePoolStatusRequestSpec.LimitやWorkloadAwarePreemptionのPriorityフィールドで使用実績あり |
モード識別タグ(Alpha → Beta)も昇格しています。これらはOpenAPIスタイルではないため、v1.36でのKubernetes API使用という1リリースのソーク実績でBetaへの昇格としています。
変更量: 追加7行、削除7行(サイズS)。安定性レベルのアノテーションを書き換えるだけの変更です。
すべてのタグでミスマッチメトリクス(declarative_validation_mismatch_total等)がゼロであることを確認した上での昇格です。
使用例
controller-toolsやCRDでこれらのタグを使っているプロジェクトは、Stableになったことで将来のKubernetesバージョンアップグレード時にタグの仕様変更を心配する必要がなくなります。