Skip to content

Commit

Permalink
bgpv1: Local internalTrafficPolicy support for ClusterIP advertisements
Browse files Browse the repository at this point in the history
Fixes: 31389

Signed-off-by: chaunceyjiang <chaunceyjiang@gmail.com>
  • Loading branch information
chaunceyjiang committed Mar 18, 2024
1 parent ed4e650 commit 53d9276
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions pkg/bgpv1/manager/reconciler/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func (r *ServiceReconciler) populateLocalServices(localNodeName string) (localSe

endpointsLoop:
for _, eps := range epList {
svc, exists, err := r.resolveSvcFromEndpoints(eps)
_, exists, err := r.resolveSvcFromEndpoints(eps)
if err != nil {
// Cannot resolve service from endpoints. We have nothing to do here.
continue
Expand All @@ -129,11 +129,6 @@ endpointsLoop:
continue
}

// We only need Endpoints tracking for externalTrafficPolicy=Local
if svc.Spec.ExternalTrafficPolicy != slim_corev1.ServiceExternalTrafficPolicyLocal {
continue
}

svcID := eps.ServiceID

for _, be := range eps.Backends {
Expand Down Expand Up @@ -324,6 +319,11 @@ func (r *ServiceReconciler) svcDesiredRoutes(newc *v2alpha1api.CiliumBGPVirtualR
desiredRoutes = append(desiredRoutes, netip.PrefixFrom(addr, addr.BitLen()))
}
case v2alpha1api.BGPClusterIPAddr:
// Ignore internalTrafficPolicy == Local && no local endpoints.
if svc.Spec.InternalTrafficPolicy != nil && *svc.Spec.InternalTrafficPolicy == slim_corev1.ServiceInternalTrafficPolicyLocal &&
!hasLocalEndpoints(svc, ls) {
continue
}
if svc.Spec.ClusterIP == "" || len(svc.Spec.ClusterIPs) == 0 || svc.Spec.ClusterIP == corev1.ClusterIPNone {
continue
}
Expand Down

0 comments on commit 53d9276

Please sign in to comment.