You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -507,6 +508,27 @@ compatibility version can be set to.
507
508
508
509
Alpha APIs may not be enabled in conjunction with compatibility version.
509
510
511
+
### Discovery
512
+
513
+
Discovery will [enable](https://github.com/kubernetes/kubernetes/blob/7080b51ee92f67623757534f3462d8ae862ef6fe/staging/src/k8s.io/apiserver/pkg/util/openapi/enablement.go#L32) the group versions matching the compatibility version.
514
+
515
+
API fields that were introduced after the compatibility version will **not** be
516
+
pruned. There is a tradoff here:
517
+
518
+
- If we keep the fields in the API, we leak information about fields that were
519
+
introduced in Kubernetes versions newer than the compatibility version.
520
+
- If we remove the fields, we have an inconsistency between discovery and the
521
+
implementation, because the server implementation is aware of the field, and
522
+
may include it in responses (e.g. via defaulting).
523
+
524
+
Note that even though we are deciding to include fields that were introduced
525
+
after the compatibility version in discovery, new fields are always feature
526
+
gated, so the fields will not settable and may not impact default behavior.
527
+
528
+
Also note that we that show information about unavailable features in discovery
529
+
today. We introduce fields into APIs for disabled-by-default features and make
0 commit comments