You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your proposed feature related to a problem?
The current code of nodeipam look at the related EndpointSlices of the Service LoadBalancer to decide which nodes should be "advertised". This is a problem when Service LoadBalancers are created with dummy endpoints which is the case for Cilium Ingress/GatewayAPI for instance.
(Optional) Describe your proposed solution
By default/on ETP=Cluster we should not look at the related EndpointSlices and consider all nodes with what a cloud provider usually selects. We should probably provide a way to have a node selector annotation as well (similarly to what was done here: #31081) or else this will become quickly unusable for anything that is not a really small cluster.
On ETP=Local, I believe we should retain the current behavior of looking at the EndpointSlices content. On cloud-provider IIUC ETP=local is done with healthcheck and here we don't have those kind of things implemented and not sure if we should do that now (although it could probably be interesting for some future improvements of the nodeipam).
The text was updated successfully, but these errors were encountered:
MrFreezeex
changed the title
CFP: align Cilium nodeipam node selection behaviors with a kubernetes cloud-provider
CFP: align Cilium nodeipam node selection with what kubernetes cloud-providers do
Mar 12, 2024
MrFreezeex
changed the title
CFP: align Cilium nodeipam node selection with what kubernetes cloud-providers do
CFP: align Cilium nodeipam node selection with kubernetes cloud-providers
Mar 12, 2024
Cilium Feature Proposal
Is your proposed feature related to a problem?
The current code of nodeipam look at the related EndpointSlices of the Service LoadBalancer to decide which nodes should be "advertised". This is a problem when Service LoadBalancers are created with dummy endpoints which is the case for Cilium Ingress/GatewayAPI for instance.
Describe the feature you'd like
We should be more aligned with how a cloud-provider controller decides which nodes are related to a service load balancer (see the code here: https://github.com/kubernetes/cloud-provider/blob/master/controllers/service/controller.go#L1027). Which actually never look at the backing EndpointSlice even with externalTrafficPolicy=Local it seems.
(Optional) Describe your proposed solution
By default/on ETP=Cluster we should not look at the related EndpointSlices and consider all nodes with what a cloud provider usually selects. We should probably provide a way to have a node selector annotation as well (similarly to what was done here: #31081) or else this will become quickly unusable for anything that is not a really small cluster.
On ETP=Local, I believe we should retain the current behavior of looking at the EndpointSlices content. On cloud-provider IIUC ETP=local is done with healthcheck and here we don't have those kind of things implemented and not sure if we should do that now (although it could probably be interesting for some future improvements of the nodeipam).
The text was updated successfully, but these errors were encountered: