Skip to content

Commit 0342b30

Browse files
Update EPS KEP to reflect v1.21 changes
1 parent f5b1ad2 commit 0342b30

File tree

1 file changed

+12
-31
lines changed
  • keps/sig-network/0752-endpointslices

1 file changed

+12
-31
lines changed

keps/sig-network/0752-endpointslices/README.md

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,14 @@ type Endpoint struct {
212212
// +optional
213213
TargetRef *v1.ObjectReference `json:"targetRef,omitempty" protobuf:"bytes,4,opt,name=targetRef"`
214214

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"`
219223

220224
// nodeName represents the name of the Node hosting this endpoint. This can
221225
// 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.
312316
### Converting Topology in EndpointSlice GA
313317

314318
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.
328321

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
343324
into the [zone field](#zone-per-endpoint) on the Endpoint.
344325

345326
### Zone (Per Endpoint)

0 commit comments

Comments
 (0)