Skip to content

Commit 2759e2e

Browse files
author
Han Kang
committed
amend UVIP KEP with some additional details
1 parent 6ce7c55 commit 2759e2e

File tree

1 file changed

+10
-11
lines changed
  • keps/sig-api-machinery/3903-unknown-version-interoperability-proxy

1 file changed

+10
-11
lines changed

keps/sig-api-machinery/3903-unknown-version-interoperability-proxy/README.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
149149
## Summary
150150

151151
When a cluster has multiple apiservers at mixed versions (such as during an
152-
upgrade or downgrate), not every apiserver can serve every resource at every
152+
upgrade or downgrade), not every apiserver can serve every resource at every
153153
version.
154154

155155
To fix this, we will add a filter to the handler chain in the aggregator which
@@ -189,19 +189,18 @@ incorrectly or objects being garbage collected mistakenly.
189189

190190
## Proposal
191191

192-
API change:
193-
* To the apiservices API, add an "alternates" clause, a list of
194-
apiservers which believe they can serve the group-version.
192+
We will use the existing `StorageVersion` API to figure out which group, versions,
193+
and resources an apiserver can serve.
195194

196195
API server change:
197-
* A controller adds the apiserver to the list of alternates for its built-in
198-
group-versions.
199-
* The same controller removes expired apiservers from the list. (Enabled by the
200-
apiserver identity work.)
201196
* A new handler is added to the stack:
202-
- If the request is for a group/version the apiserver doesn't have locally (we
203-
can use the StorageVersion API), it will proxy the request to one of the
204-
alternates instead.
197+
- If the request is for a group/version/resource the apiserver doesn't have
198+
locally (we can use the StorageVersion API), it will proxy the request to
199+
one of the `serviceableBy`s if one is available. If one is not available,
200+
then we will return a 503 (there is a small possibility of a race between
201+
the controller registering the apiserver with the resources it can serve
202+
and receiving a request for a resource that is not yet available on that
203+
apiserver).
205204

206205
### User Stories (Optional)
207206

0 commit comments

Comments
 (0)