Skip to content

Commit 9ba6405

Browse files
committed
fix test
1 parent 725ca7a commit 9ba6405

File tree

5 files changed

+16
-11
lines changed

5 files changed

+16
-11
lines changed

internal/controller/apisixroute_controller.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,13 @@ func (r *ApisixRouteReconciler) validateHTTPBackend(tctx *provider.TranslateCont
487487
// backend.subset specifies a subset of upstream nodes.
488488
// It specifies that the target pod's label should be a superset of the subset labels of the ApisixUpstream of the serviceName
489489
subsetLabels := r.getSubsetLabels(tctx, serviceNN, backend.Subset)
490-
tctx.EndpointSlices[serviceNN] = filterEndpointSlicesBySubsetLabels(tctx, r.Client, endpoints.Items, subsetLabels)
490+
491+
if err := resolveServiceEndpoints(tctx, r.Client, serviceNN, r.supportsEndpointSlice, subsetLabels); err != nil {
492+
return types.ReasonError{
493+
Reason: string(apiv2.ConditionReasonInvalidSpec),
494+
Message: err.Error(),
495+
}
496+
}
491497

492498
return nil
493499
}

internal/controller/gatewayproxy_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (r *GatewayProxyController) Reconcile(ctx context.Context, req ctrl.Request
145145
return reconcile.Result{}, err
146146
}
147147
tctx.Services[serviceNN] = service
148-
if err := resolveServiceEndpoints(tctx, r.Client, tctx, serviceNN, r.supportsEndpointSlice, nil); err != nil {
148+
if err := resolveServiceEndpoints(tctx, r.Client, serviceNN, r.supportsEndpointSlice, nil); err != nil {
149149
return reconcile.Result{}, err
150150
}
151151
}

internal/controller/httproute_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ func (r *HTTPRouteReconciler) processHTTPRouteBackendRefs(tctx *provider.Transla
571571
tctx.Services[targetNN] = &service
572572

573573
// Collect endpoints with EndpointSlice support
574-
if err := resolveServiceEndpoints(tctx, r.Client, tctx, targetNN, r.supportsEndpointSlice, nil); err != nil {
574+
if err := resolveServiceEndpoints(tctx, r.Client, targetNN, r.supportsEndpointSlice, nil); err != nil {
575575
r.Log.Error(err, "failed to collect endpoints", "Service", targetNN)
576576
terr = err
577577
continue

internal/controller/ingress_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ func (r *IngressReconciler) processBackendService(tctx *provider.TranslateContex
594594
}
595595

596596
// Collect endpoints with EndpointSlice support
597-
if err := resolveServiceEndpoints(tctx, r.Client, tctx, serviceNS, r.supportsEndpointSlice, nil); err != nil {
597+
if err := resolveServiceEndpoints(tctx, r.Client, serviceNS, r.supportsEndpointSlice, nil); err != nil {
598598
r.Log.Error(err, "failed to collect endpoints", "namespace", namespace, "name", backendService.Name)
599599
return err
600600
}

internal/controller/utils.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1499,7 +1499,7 @@ func addProviderEndpointsToTranslateContext(tctx *provider.TranslateContext, c c
14991499
}
15001500
tctx.Services[serviceNN] = &service
15011501

1502-
return resolveServiceEndpoints(tctx, c, tctx, serviceNN, true, nil)
1502+
return resolveServiceEndpoints(tctx, c, serviceNN, true, nil)
15031503
}
15041504

15051505
func TypePredicate[T client.Object]() func(obj client.Object) bool {
@@ -1556,16 +1556,15 @@ func watchEndpointSliceOrEndpoints(bdr *ctrl.Builder, supportsEndpointSlice bool
15561556
// resolveServiceEndpoints collects endpoints and adds them to the translate context
15571557
// It handles both EndpointSlice (K8s 1.19+) and Endpoints (K8s 1.18) APIs with automatic fallback
15581558
func resolveServiceEndpoints(
1559-
ctx context.Context,
1560-
c client.Client,
15611559
tctx *provider.TranslateContext,
1560+
c client.Client,
15621561
serviceNN k8stypes.NamespacedName,
15631562
supportsEndpointSlice bool,
15641563
subsetLabels map[string]string,
15651564
) error {
15661565
if supportsEndpointSlice {
15671566
var endpoints discoveryv1.EndpointSliceList
1568-
if err := c.List(ctx, &endpoints,
1567+
if err := c.List(tctx, &endpoints,
15691568
client.InNamespace(serviceNN.Namespace),
15701569
client.MatchingLabels{
15711570
discoveryv1.LabelServiceName: serviceNN.Name,
@@ -1578,12 +1577,12 @@ func resolveServiceEndpoints(
15781577
tctx.EndpointSlices[serviceNN] = endpoints.Items
15791578
} else {
15801579
// Apply subset filtering
1581-
tctx.EndpointSlices[serviceNN] = filterEndpointSlicesBySubsetLabels(ctx, c, endpoints.Items, subsetLabels)
1580+
tctx.EndpointSlices[serviceNN] = filterEndpointSlicesBySubsetLabels(tctx, c, endpoints.Items, subsetLabels)
15821581
}
15831582
} else {
15841583
// Fallback to Endpoints API for Kubernetes 1.18 compatibility
15851584
var ep corev1.Endpoints
1586-
if err := c.Get(ctx, serviceNN, &ep); err != nil {
1585+
if err := c.Get(tctx, serviceNN, &ep); err != nil {
15871586
if client.IgnoreNotFound(err) != nil {
15881587
return fmt.Errorf("failed to get endpoints: %v", err)
15891588
}
@@ -1597,7 +1596,7 @@ func resolveServiceEndpoints(
15971596
tctx.EndpointSlices[serviceNN] = convertedEndpointSlices
15981597
} else {
15991598
// Apply subset filtering to converted EndpointSlices
1600-
tctx.EndpointSlices[serviceNN] = filterEndpointSlicesBySubsetLabels(ctx, c, convertedEndpointSlices, subsetLabels)
1599+
tctx.EndpointSlices[serviceNN] = filterEndpointSlicesBySubsetLabels(tctx, c, convertedEndpointSlices, subsetLabels)
16011600
}
16021601
}
16031602
}

0 commit comments

Comments
 (0)