-
Bug
-
Resolution: Done
-
Normal
-
None
-
4.13, 4.12
-
Important
-
None
-
1
-
OCP VE Sprint 237, OCP VE Sprint 238, OCP VE Sprint 239, OCP VE Sprint 240, SDN Sprint 242, SDN Sprint 243, SDN Sprint 244, OCP VE Sprint 241
-
8
-
Rejected
-
False
-
Description of problem:
If a service is created with a selector, its endpoints are mirrored to an endpointslice that is owned by the service. If the selector is removed from the service after creation and the endpoints are kept, a new endpointslice owned by the endpoints object is created and endpoints start being mirrored into it. However, old endpointslice object is kept and it is no longer updated, which is wrong. If the endpoints change after this, the older endpointslice will be there forever and will indicate a wrong endpoint forever, so implementations like kube-proxy will also direct traffic to it as if it was a valid endpoint.
Version-Release number of selected component (if applicable):
4.8.46
How reproducible:
Always
Steps to Reproduce:
1. Create a service with selector that chooses a pod with one replica. 2. Remove the selector, keeping the endpoints object. 3. Delete the pod and/or somehow change the endpoints.
Actual results:
2 endpointslices: - One owned by the service, pointing to the now old and wrong IP - One owned by the endpoint, pointing to the current and correct IP
Expected results:
- One owned by the endpoint, pointing to the current and correct IP
Additional info:
- is cloned by
-
SDN-4190 Mirrored endpointslice leftover when removing the selector from a service
- Code Review
- links to