Skip to content

Commit 1157216

Browse files
authored
Merge pull request kubernetes#2673 from swetharepakula/eps-1.22-update
EndpointSlice v1.22 updates
2 parents 27b1053 + a56fa59 commit 1157216

File tree

3 files changed

+18
-35
lines changed

3 files changed

+18
-35
lines changed

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

Lines changed: 16 additions & 33 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)
@@ -696,8 +677,10 @@ Default**
696677
on Endpoints resources exceeding 1000 endpoints.
697678

698679
**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.
701684
* Endpoints resources will be limited to 1000 endpoints. The
702685
`endpoints.kubernetes.io/over-capacity` label will continue to be set to
703686
"truncated" in these cases.

keps/sig-network/0752-endpointslices/kep.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ approvers:
1616
prr-approvers:
1717
- "@wojtek-t"
1818
creation-date: 2019-06-01
19-
last-updated: 2021-01-28
19+
last-updated: 2021-05-04
2020
status: implementable
2121
# The target maturity stage in the current dev cycle for this KEP.
2222
stage: stable
2323

2424
# The most recent milestone for which work toward delivery of this KEP has been
2525
# done. This can be the current (upcoming) milestone, if it is being actively
2626
# worked on.
27-
latest-milestone: "v1.19"
27+
latest-milestone: "v1.22"
2828

2929
milestone:
3030
alpha: "v1.16"

0 commit comments

Comments
 (0)