youtube image
From YouTube: Kubernetes SIG API Machinery 20230803

Description

[lavalamp, deads2k, liggitt, munnerz] Discovery when apiservers are at mixed versions
- Description of current behavior and some problematic scenarios: https://docs.google.com/document/d/1wMst-2R7Zr0ADrJ_fr40zwkDanxwihHdL7RKSLK_D_s/edit?resourcekey=0-L-Yljgf99s70jmWmRiiHRw#
- Problems to solve (or verify solutions for)
ensure unhandled local APIService endpoints return 503s, not 404s
https://github.com/kubernetes/kubernetes/pull/104748 did this for unready apiservers
server response GC depends on for GET of individual items
type known
list with no objects == 200 with empty list
list inside missing namespace == 200 with empty list?
get missing object == 404
type unknown
list/get == 404 (404 on get is problematic for GC controller)
type in discovery but not known locally
list/get = 404, but maybe should be 503? will this break API clients that use 404 as signal to fall back to other API versions?
(servers don't have discovery-level type-level info for types not known locally today)
recording/informing existence (and info like verbs, namespacedness) of resource types so older servers can serve more complete/correct discovery
would benefit clients who would ignore some types of resources (like namespace controller wouldn't care about metrics server because it wasn't writable, or about cluster-scoped resources)
related to StorageVersion API, which has an entry per resource
related to aggregated discovery
improve namespace controller behavior when discovery permafails (avoid storms)
improve GC behavior when discovery permafails (avoid locking)

[ichekrygin] Question/guidance request about controller extensibility for core k8s types.