Skip to content

Commit 93279ad

Browse files
committed
debug: prevent adding endpointslices to resource tree when service routing is configured
1 parent cc225cf commit 93279ad

File tree

2 files changed

+12
-24
lines changed

2 files changed

+12
-24
lines changed

internal/provider/kubernetes/controller.go

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,8 @@ func (r *gatewayAPIReconciler) processBackendRefs(ctx context.Context, gwcResour
406406
switch backendRefKind {
407407
case resource.KindService:
408408
service := new(corev1.Service)
409-
err := r.client.Get(ctx, types.NamespacedName{Namespace: string(*backendRef.Namespace), Name: string(backendRef.Name)}, service)
409+
nsName := types.NamespacedName{Namespace: string(*backendRef.Namespace), Name: string(backendRef.Name)}
410+
err := r.client.Get(ctx, nsName, service)
410411
if err != nil {
411412
r.log.Error(err, "failed to get Service", "namespace", string(*backendRef.Namespace),
412413
"name", string(backendRef.Name))
@@ -416,7 +417,9 @@ func (r *gatewayAPIReconciler) processBackendRefs(ctx context.Context, gwcResour
416417
r.log.Info("added Service to resource tree", "namespace", string(*backendRef.Namespace),
417418
"name", string(backendRef.Name))
418419
}
419-
endpointSliceLabelKey = discoveryv1.LabelServiceName
420+
if r.hasRouteWithEndpointRouting(&nsName) {
421+
endpointSliceLabelKey = discoveryv1.LabelServiceName
422+
}
420423

421424
case resource.KindServiceImport:
422425
serviceImport := new(mcsapiv1a1.ServiceImport)
@@ -1389,17 +1392,6 @@ func (r *gatewayAPIReconciler) watchResources(ctx context.Context, mgr manager.M
13891392
}),
13901393
),}
13911394

1392-
1393-
// servicePredicates := []predicate.TypedPredicate[*corev1.Service]{
1394-
// predicate.NewTypedPredicateFuncs[*corev1.Service](func(svc *corev1.Service) bool {
1395-
// retVal := r.validateServiceForReconcile(svc)
1396-
// if strings.HasPrefix(svc.Namespace, "dev-blue-cloud-teleportinfra-dev") {
1397-
// r.log.Info(fmt.Sprintf("predicate -- validateServiceForReconcile=%v",retVal), "namespace", svc.Namespace, "name", svc.Name)
1398-
// }
1399-
// return retVal
1400-
// }),
1401-
// }
1402-
14031395
if r.namespaceLabel != nil {
14041396
servicePredicates = append(servicePredicates, predicate.NewTypedPredicateFuncs[*corev1.Service](func(svc *corev1.Service) bool {
14051397
return r.hasMatchingNamespaceLabels(svc)

internal/provider/kubernetes/predicates.go

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -281,27 +281,23 @@ func (r *gatewayAPIReconciler) isOIDCHMACSecret(nsName *types.NamespacedName) bo
281281
}
282282

283283
// isServiceOwnedByGateway returns true if the Service belongs to a Gateway.
284-
func (r *gatewayAPIReconciler) isServiceOwnedByGateway(svc *corev1.Service, updateStatus bool) bool {
284+
func (r *gatewayAPIReconciler) isServiceOwnedByGateway(svc *corev1.Service) bool {
285285
ctx := context.Background()
286286
labels := svc.GetLabels()
287287

288288
// Check if the Service belongs to a Gateway, if so, update the Gateway status.
289289
gtw := r.findOwningGateway(context.Background(), labels)
290290
if gtw != nil {
291-
if updateStatus {
292-
r.updateGatewayStatus(gtw)
293-
}
291+
r.updateGatewayStatus(gtw)
294292
return true
295293
}
296294

297295
// Merged gateways will have only this label, update status of all Gateways under found GatewayClass.
298296
gcName, ok := labels[gatewayapi.OwningGatewayClassLabel]
299297
if ok && r.mergeGateways.Has(gcName) {
300-
if updateStatus {
301-
if err := r.updateStatusForGatewaysUnderGatewayClass(ctx, gcName); err != nil {
302-
r.log.Info("no Gateways found under GatewayClass", "name", gcName)
303-
return true
304-
}
298+
if err := r.updateStatusForGatewaysUnderGatewayClass(ctx, gcName); err != nil {
299+
r.log.Info("no Gateways found under GatewayClass", "name", gcName)
300+
return true
305301
}
306302
return true
307303
}
@@ -324,7 +320,7 @@ func (r *gatewayAPIReconciler) validateServiceUpdateForReconcile(oldObj client.O
324320
return true
325321
}
326322

327-
if r.isServiceOwnedByGateway(newSvc, false) {
323+
if r.isServiceOwnedByGateway(newSvc) {
328324
return true
329325
}
330326

@@ -351,7 +347,7 @@ func (r *gatewayAPIReconciler) validateServiceForReconcile(obj client.Object) bo
351347
return false
352348
}
353349

354-
if r.isServiceOwnedByGateway(svc, true) {
350+
if r.isServiceOwnedByGateway(svc) {
355351
return false
356352
}
357353

0 commit comments

Comments
 (0)