Skip to content

Commit 569077b

Browse files
committed
KEP-4222: Document upgrade/downgrade and version skew strategy.
1 parent c42bf65 commit 569077b

File tree

1 file changed

+22
-0
lines changed
  • keps/sig-api-machinery/4222-cbor-serializer

1 file changed

+22
-0
lines changed

keps/sig-api-machinery/4222-cbor-serializer/README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1104,6 +1104,13 @@ enhancement:
11041104
cluster required to make on upgrade, in order to make use of the enhancement?
11051105
-->
11061106

1107+
API servers will be able to decode resources that have been stored with a CBOR encoding, even when
1108+
the feature gate permitting the CBOR storage encoding is disabled. The feature gate will remain
1109+
disabled by default during alpha. The default storage encoding will not change for built-in API
1110+
types. The default storage encoding for custom resources will not change in the first version to
1111+
support decoding CBOR-encoded objects from storage, so it will remain possible after a downgrade for
1112+
kube-apiserver to decode any resources that may have been stored with the CBOR encoding.
1113+
11071114
### Version Skew Strategy
11081115

11091116
<!--
@@ -1119,6 +1126,21 @@ enhancement:
11191126
CRI or CNI may require updating that component before the kubelet.
11201127
-->
11211128

1129+
Server-side support for accepting CBOR as a request encoding and returning CBOR as a response
1130+
encoding is in addition to the existing support for JSON and Protobuf. CBOR is never selected as a
1131+
response encoding unless the client has included a CBOR media type in the "Accept" request
1132+
header. Older components will continue to use the existing encodings in their interactions with API
1133+
servers that support CBOR.
1134+
1135+
Clients that proactively send a CBOR-encoded request to an API server without CBOR support will
1136+
receive an HTTP 415 (Unsupported Media Type) response status and fall back to JSON. The test plan
1137+
includes an end-to-end test covering a CBOR request made to the sample 1.17 API server to mitigate
1138+
the risk of regressing this client-side fallback behavior.
1139+
1140+
Clients that include the CBOR media type in the "Accept" header will also include the JSON media
1141+
type. API servers without CBOR support will select JSON as the response encoding through content
1142+
negotiation.
1143+
11221144
## Production Readiness Review Questionnaire
11231145

11241146
<!--

0 commit comments

Comments
 (0)