@@ -212,10 +212,14 @@ type Endpoint struct {
212
212
// +optional
213
213
TargetRef *v1.ObjectReference ` json:"targetRef,omitempty" protobuf:"bytes,4,opt,name=targetRef"`
214
214
215
- // topology was a beta feature for Endpoint to store arbitrary topology
216
- // information. The values of this field are persisted as an anotation on
217
- // on the EndpointSlice starting in v1.
218
- // +k8s:deprecated=topology,protobuf=5
215
+ // deprecatedTopology contains topology information part of the v1beta1
216
+ // API. This field is deprecated, and will be removed when the v1beta1
217
+ // API is removed (no sooner than kubernetes v1.24). While this field can
218
+ // hold values, it is not writable through the v1 API, and any attempts to
219
+ // write to it will be silently ignored. Topology information can be found
220
+ // in the zone and nodeName fields instead.
221
+ // +optional
222
+ DeprecatedTopology map [string ]string ` json:"deprecatedTopology,omitempty" protobuf:"bytes,5,opt,name=deprecatedTopology"`
219
223
220
224
// nodeName represents the name of the Node hosting this endpoint. This can
221
225
// be used to determine endpoints local to a Node. This field can be enabled
@@ -312,34 +316,11 @@ labels will be copied to endpoint topology.
312
316
### Converting Topology in EndpointSlice GA
313
317
314
318
For beta resources that have set the topology field, the string to string map
315
- will be converted into an annotation on the v1 resource with the key
316
- ** endpointslice.kubernetes.io/v1beta1-topology** . The annotation encoding will
317
- allow the topology information to be roundtripped between v1beta1 and v1
318
- resources.
319
-
320
- The size limits of the topology field is 63B per key and per value, with a
321
- maximum of 126B per key-value pair. The maximum number of endpoints in an
322
- EndpointSlice is 1000.
323
-
324
- ```
325
- {Max Key-Value Pairs} * ({Max Key Size} + {Max Value Size}) * {Max Endpoints}
326
- 16 * (63 + 63) * 1000 = 2,016,000b
327
- ```
319
+ will be converted into the ` deprecatedTopology ` field the v1 resource. This
320
+ field will be read-only in the v1 API.
328
321
329
- The maximum value of the combined maps in the endpoints is almost a factor of
330
- 10 greater than the max annotation size (256kB). This is a worst case scenario,
331
- which is unlikely as the recommendation and default is 100 endpoints. In
332
- situations where the size is over the annotation limit, keys will be dropped from
333
- the topology maps starting with the non-standard ones. All of the endpoint
334
- topology maps will be encoded in an annotation and can be decoded back into the
335
- individual topology maps as needed. As there is no uniqueness guarantee on any
336
- of the endpoint fields, the index of the endpoint will be used when generating
337
- the annotation. Therefore any insertions, removals, and reordering of
338
- endpoints while using v1 clients will require the annotation to be
339
- regenerated.
340
-
341
- The only key in the topology field that will not be preserved in the annotation
342
- will be ** topology.kubernetes.io/zone** and instead its value will be converted
322
+ The only key in the topology field that will not be preserved is
323
+ ** topology.kubernetes.io/zone** and instead its value will be converted
343
324
into the [ zone field] ( #zone-per-endpoint ) on the Endpoint.
344
325
345
326
### Zone (Per Endpoint)
@@ -696,8 +677,10 @@ Default**
696
677
on Endpoints resources exceeding 1000 endpoints.
697
678
698
679
** Kubernetes 1.22: Kube-Proxy GA**
699
- * The ` EndpointSliceProxying ` feature gate guarding EndpointSlice integration
700
- with kube-proxy will graduate to GA on both Linux and Windows.
680
+ * Kube-Proxy will use v1 EndpointSlice API.
681
+ * The ` EndpointSliceProxying ` & ` WindowsEndpointSliceProxying ` feature gates
682
+ guarding EndpointSlice integration with kube-proxy will graduate to GA on
683
+ both Linux and Windows.
701
684
* Endpoints resources will be limited to 1000 endpoints. The
702
685
` endpoints.kubernetes.io/over-capacity ` label will continue to be set to
703
686
"truncated" in these cases.
0 commit comments