Merge pull request #48464 from benluddy/dev-1.32-kep-4222
Document API support for CBOR encodingpull/48797/head
commit
f7899bc5ef
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
title: CBORServingAndStorage
|
||||||
|
content_type: feature_gate
|
||||||
|
_build:
|
||||||
|
list: never
|
||||||
|
render: false
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: alpha
|
||||||
|
defaultValue: false
|
||||||
|
fromVersion: "1.32"
|
||||||
|
---
|
||||||
|
Enables CBOR as a [supported encoding for requests and
|
||||||
|
responses](/docs/reference/using-api/api-concepts/#cbor-encoding), and as the preferred storage
|
||||||
|
encoding for custom resources.
|
|
@ -331,6 +331,36 @@ For example:
|
||||||
Accept: application/vnd.kubernetes.protobuf, application/json
|
Accept: application/vnd.kubernetes.protobuf, application/json
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### CBOR resource encoding {#cbor-encoding}
|
||||||
|
|
||||||
|
{{< feature-state feature_gate_name="CBORServingAndStorage" >}}
|
||||||
|
|
||||||
|
With the `CBORServingAndStorage` [feature
|
||||||
|
gate](/docs/reference/command-line-tools-reference/feature-gates/) enabled, request and response
|
||||||
|
bodies for all built-in resource types and all resources defined by a {{< glossary_tooltip
|
||||||
|
term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}} may be encoded to the
|
||||||
|
[CBOR](https://www.rfc-editor.org/rfc/rfc8949) binary data format. CBOR is also supported at the {{<
|
||||||
|
glossary_tooltip text="aggregation layer" term_id="aggregation-layer" >}} if it is enabled in
|
||||||
|
individual aggregated API servers.
|
||||||
|
|
||||||
|
Clients should indicate the IANA media type `application/cbor` in the `Content-Type` HTTP request
|
||||||
|
header when the request body contains a single CBOR [encoded data
|
||||||
|
item](https://www.rfc-editor.org/rfc/rfc8949.html#section-1.2-4.2), and in the `Accept` HTTP request
|
||||||
|
header when prepared to accept a CBOR encoded data item in the response. API servers will use
|
||||||
|
`application/cbor` in the `Content-Type` HTTP response header when the response body contains a
|
||||||
|
CBOR-encoded object.
|
||||||
|
|
||||||
|
If an API server encodes its response to a [watch request](#efficient-detection-of-changes) using
|
||||||
|
CBOR, the response body will be a [CBOR Sequence](https://www.rfc-editor.org/rfc/rfc8742) and the
|
||||||
|
`Content-Type` HTTP response header will use the IANA media type `application/cbor-seq`. Each entry
|
||||||
|
of the sequence (if any) is a single CBOR-encoded watch event.
|
||||||
|
|
||||||
|
In addition to the existing `application/apply-patch+yaml` media type for YAML-encoded [server-side
|
||||||
|
apply configurations](#patch-and-apply), API servers that enable CBOR will accept the
|
||||||
|
`application/apply-patch+cbor` media type for CBOR-encoded server-side apply configurations. There
|
||||||
|
is no supported CBOR equivalent for `application/json-patch+json` or `application/merge-patch+json`,
|
||||||
|
or `application/strategic-merge-patch+json`.
|
||||||
|
|
||||||
## Efficient detection of changes
|
## Efficient detection of changes
|
||||||
|
|
||||||
The Kubernetes API allows clients to make an initial request for an object or a
|
The Kubernetes API allows clients to make an initial request for an object or a
|
||||||
|
|
Loading…
Reference in New Issue