-
-
Notifications
You must be signed in to change notification settings - Fork 394
Track CBOR wire format support (KEP-4222) #1951
Description
Would you like to work on this feature?
maybe
What problem are you trying to solve?
The Kubernetes API server is adding CBOR (RFC 8949) as an alternative wire format via KEP-4222, gated behind CBORServingAndStorage (alpha in v1.32).
client-go is tracking this with ClientsAllowCBOR (v1.32 alpha) and ClientsPreferCBOR (v1.33 beta).
Opening this to track upstream progress and discuss if/when kube-rs should support it.
Describe the solution you'd like
An optional feature flag on kube-client that enables CBOR content negotiation.
Since k8s-openapi types already have serde impls, a serde-compatible CBOR crate (e.g. ciborium, cbor4ii) should integrate without type changes.
Relevant content types:
application/cbor(request/response)application/cbor-seq(watch streams, RFC 8742)application/apply-patch+cbor(SSA)
Describe alternatives you've considered
Continue with JSON only, or wait for Protobuf (#725). CBOR is complementary to both — simpler to integrate than Protobuf and more efficient than JSON.
Documentation, Adoption, Migration Strategy
- KEP-4222: CBOR Serializer kubernetes/enhancements#4222
- RFC 8949: https://www.rfc-editor.org/rfc/rfc8949.html
- RFC 8742: https://datatracker.ietf.org/doc/rfc8742/
Target crate for feature
kube-client, kube-core