Skip to content

Commit

Permalink
Update GA criteria for aggregated discovery
Browse files Browse the repository at this point in the history
  • Loading branch information
Jefftree committed Feb 2, 2024
1 parent ee39cec commit 18ed7ae
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
2 changes: 2 additions & 0 deletions keps/prod-readiness/sig-api-machinery/3352.yaml
Expand Up @@ -3,3 +3,5 @@ alpha:
approver: "@deads2k"
beta:
approver: "@deads2k"
stable:
approver: "@deads2k"
16 changes: 15 additions & 1 deletion keps/sig-api-machinery/3352-aggregated-discovery/README.md
Expand Up @@ -620,7 +620,11 @@ main focus will be on kubectl and golang clients.

#### GA

- TBD
- Existing bugs are fixed:
- AggregatedDiscovery controller does not purge old APIServices from cache ([Issue](https://github.com/kubernetes/kubernetes/issues/115301))
- Aggregated Discovery doesn't show aggregated apiservices as Stale before initial health check ([Issue](https://github.com/kubernetes/kubernetes/issues/115303))
- New API type `apidiscovery.k8s.io/v2` is introduced
- e2e and conformance tests

**Note:** Generally we also wait at least two releases between beta
and GA/stable, because there's no opportunity for user feedback, or
Expand All @@ -641,6 +645,16 @@ feature and upgrade/downgrade is not a problem.

### Version Skew Strategy

When moving from beta to GA, we will introduce a new API group version `apidiscovery.k8s.io/v2`.

All clients v1.26 to v1.29 will only request for the beta API group version `apidiscovery.k8s.io/v1beta2`.

To accommodate skew between the client and server (older client and newer server), the server will serve both v2 and v2beta1 versions based on the client request headers. The API server will continue to support v2beta1 until its removal in Kubernetes v1.33.

To accommodate skew between an older server and newer client, starting in v1.30, clients will request for both v2 and v2beta1 by sending a list of group versions requested (in order from v2, v2beta1, unaggregated) and the server will return the first group version that matches. In the case of older servers, the server will only be able to match v2beta1. The client will support both v2 and v2beta1. This allows a newer client to communicate with an older server that supports only the beta version.

If there is no skew and both server and client are v1.30+, clients will still request for v2 and v2beta1, and the server will match the first group version and return v2.

## Production Readiness Review Questionnaire

<!--
Expand Down
6 changes: 4 additions & 2 deletions keps/sig-api-machinery/3352-aggregated-discovery/kep.yaml
Expand Up @@ -16,19 +16,21 @@ reviewers:
approvers:
- "@deads2k"
- "@lavalamp"
- "@jpbetz"

# The target maturity stage in the current dev cycle for this KEP.
stage: beta
stage: stable

# The most recent milestone for which work toward delivery of this KEP has been
# done. This can be the current (upcoming) milestone, if it is being actively
# worked on.
latest-milestone: "v1.27"
latest-milestone: "v1.30"

# The milestone at which this feature was, or is targeted to be, at each stage.
milestone:
alpha: "v1.26"
beta: "v1.27"
stable: "v1.30"

# The following PRR answers are required at alpha release
# List the feature gate name and the components for which it must be enabled
Expand Down

0 comments on commit 18ed7ae

Please sign in to comment.