Skip to content

Commit edfaa62

Browse files
committed
small refactor to stop passing around route reconciler
1 parent f4f5387 commit edfaa62

File tree

8 files changed

+31
-31
lines changed

8 files changed

+31
-31
lines changed

controllers/gateway/gateway_controller.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ const (
5151
var _ Reconciler = &gatewayReconciler{}
5252

5353
// NewNLBGatewayReconciler constructs a gateway reconciler to handle specifically for NLB gateways
54-
func NewNLBGatewayReconciler(routeLoader routeutils.Loader, referenceCounter referencecounter.ServiceReferenceCounter, cloud services.Cloud, k8sClient client.Client, eventRecorder record.EventRecorder, controllerConfig config.ControllerConfig, finalizerManager k8s.FinalizerManager, networkingManager networking.NetworkingManager, networkingSGReconciler networking.SecurityGroupReconciler, networkingSGManager networking.SecurityGroupManager, elbv2TaggingManager elbv2deploy.TaggingManager, subnetResolver networking.SubnetsResolver, vpcInfoProvider networking.VPCInfoProvider, backendSGProvider networking.BackendSGProvider, sgResolver networking.SecurityGroupResolver, logger logr.Logger, metricsCollector lbcmetrics.MetricCollector, reconcileCounters *metricsutil.ReconcileCounters, routeReconciler routeutils.RouteReconciler) Reconciler {
55-
return newGatewayReconciler(constants.NLBGatewayController, elbv2model.LoadBalancerTypeNetwork, controllerConfig.NLBGatewayMaxConcurrentReconciles, constants.NLBGatewayTagPrefix, shared_constants.NLBGatewayFinalizer, routeLoader, referenceCounter, routeutils.L4RouteFilter, cloud, k8sClient, eventRecorder, controllerConfig, finalizerManager, networkingSGReconciler, networkingManager, networkingSGManager, elbv2TaggingManager, subnetResolver, vpcInfoProvider, backendSGProvider, sgResolver, nlbAddons, logger, metricsCollector, reconcileCounters.IncrementNLBGateway, routeReconciler)
54+
func NewNLBGatewayReconciler(routeLoader routeutils.Loader, referenceCounter referencecounter.ServiceReferenceCounter, cloud services.Cloud, k8sClient client.Client, eventRecorder record.EventRecorder, controllerConfig config.ControllerConfig, finalizerManager k8s.FinalizerManager, networkingManager networking.NetworkingManager, networkingSGReconciler networking.SecurityGroupReconciler, networkingSGManager networking.SecurityGroupManager, elbv2TaggingManager elbv2deploy.TaggingManager, subnetResolver networking.SubnetsResolver, vpcInfoProvider networking.VPCInfoProvider, backendSGProvider networking.BackendSGProvider, sgResolver networking.SecurityGroupResolver, logger logr.Logger, metricsCollector lbcmetrics.MetricCollector, reconcileCounters *metricsutil.ReconcileCounters) Reconciler {
55+
return newGatewayReconciler(constants.NLBGatewayController, elbv2model.LoadBalancerTypeNetwork, controllerConfig.NLBGatewayMaxConcurrentReconciles, constants.NLBGatewayTagPrefix, shared_constants.NLBGatewayFinalizer, routeLoader, referenceCounter, routeutils.L4RouteFilter, cloud, k8sClient, eventRecorder, controllerConfig, finalizerManager, networkingSGReconciler, networkingManager, networkingSGManager, elbv2TaggingManager, subnetResolver, vpcInfoProvider, backendSGProvider, sgResolver, nlbAddons, logger, metricsCollector, reconcileCounters.IncrementNLBGateway)
5656
}
5757

5858
// NewALBGatewayReconciler constructs a gateway reconciler to handle specifically for ALB gateways
59-
func NewALBGatewayReconciler(routeLoader routeutils.Loader, cloud services.Cloud, k8sClient client.Client, referenceCounter referencecounter.ServiceReferenceCounter, eventRecorder record.EventRecorder, controllerConfig config.ControllerConfig, finalizerManager k8s.FinalizerManager, networkingManager networking.NetworkingManager, networkingSGReconciler networking.SecurityGroupReconciler, networkingSGManager networking.SecurityGroupManager, elbv2TaggingManager elbv2deploy.TaggingManager, subnetResolver networking.SubnetsResolver, vpcInfoProvider networking.VPCInfoProvider, backendSGProvider networking.BackendSGProvider, sgResolver networking.SecurityGroupResolver, logger logr.Logger, metricsCollector lbcmetrics.MetricCollector, reconcileCounters *metricsutil.ReconcileCounters, routeReconciler routeutils.RouteReconciler) Reconciler {
60-
return newGatewayReconciler(constants.ALBGatewayController, elbv2model.LoadBalancerTypeApplication, controllerConfig.ALBGatewayMaxConcurrentReconciles, constants.ALBGatewayTagPrefix, shared_constants.ALBGatewayFinalizer, routeLoader, referenceCounter, routeutils.L7RouteFilter, cloud, k8sClient, eventRecorder, controllerConfig, finalizerManager, networkingSGReconciler, networkingManager, networkingSGManager, elbv2TaggingManager, subnetResolver, vpcInfoProvider, backendSGProvider, sgResolver, albAddons, logger, metricsCollector, reconcileCounters.IncrementALBGateway, routeReconciler)
59+
func NewALBGatewayReconciler(routeLoader routeutils.Loader, cloud services.Cloud, k8sClient client.Client, referenceCounter referencecounter.ServiceReferenceCounter, eventRecorder record.EventRecorder, controllerConfig config.ControllerConfig, finalizerManager k8s.FinalizerManager, networkingManager networking.NetworkingManager, networkingSGReconciler networking.SecurityGroupReconciler, networkingSGManager networking.SecurityGroupManager, elbv2TaggingManager elbv2deploy.TaggingManager, subnetResolver networking.SubnetsResolver, vpcInfoProvider networking.VPCInfoProvider, backendSGProvider networking.BackendSGProvider, sgResolver networking.SecurityGroupResolver, logger logr.Logger, metricsCollector lbcmetrics.MetricCollector, reconcileCounters *metricsutil.ReconcileCounters) Reconciler {
60+
return newGatewayReconciler(constants.ALBGatewayController, elbv2model.LoadBalancerTypeApplication, controllerConfig.ALBGatewayMaxConcurrentReconciles, constants.ALBGatewayTagPrefix, shared_constants.ALBGatewayFinalizer, routeLoader, referenceCounter, routeutils.L7RouteFilter, cloud, k8sClient, eventRecorder, controllerConfig, finalizerManager, networkingSGReconciler, networkingManager, networkingSGManager, elbv2TaggingManager, subnetResolver, vpcInfoProvider, backendSGProvider, sgResolver, albAddons, logger, metricsCollector, reconcileCounters.IncrementALBGateway)
6161
}
6262

6363
// newGatewayReconciler constructs a reconciler that responds to gateway object changes
@@ -68,7 +68,7 @@ func newGatewayReconciler(controllerName string, lbType elbv2model.LoadBalancerT
6868
networkingManager networking.NetworkingManager, networkingSGManager networking.SecurityGroupManager, elbv2TaggingManager elbv2deploy.TaggingManager,
6969
subnetResolver networking.SubnetsResolver, vpcInfoProvider networking.VPCInfoProvider, backendSGProvider networking.BackendSGProvider,
7070
sgResolver networking.SecurityGroupResolver, supportedAddons []addon.Addon, logger logr.Logger, metricsCollector lbcmetrics.MetricCollector,
71-
reconcileTracker func(namespaceName types.NamespacedName), routeReconciler routeutils.RouteReconciler) Reconciler {
71+
reconcileTracker func(namespaceName types.NamespacedName)) Reconciler {
7272

7373
trackingProvider := tracking.NewDefaultProvider(gatewayTagPrefix, controllerConfig.ClusterName)
7474
modelBuilder := gatewaymodel.NewModelBuilder(subnetResolver, vpcInfoProvider, cloud.VpcID(), lbType, trackingProvider, elbv2TaggingManager, controllerConfig, cloud.EC2(), cloud.ELBV2(), cloud.ACM(), controllerConfig.FeatureGates, controllerConfig.ClusterName, controllerConfig.DefaultTags, sets.New(controllerConfig.ExternalManagedTags...), controllerConfig.DefaultSSLPolicy, controllerConfig.DefaultTargetType, controllerConfig.DefaultLoadBalancerScheme, backendSGProvider, sgResolver, controllerConfig.EnableBackendSecurityGroup, controllerConfig.DisableRestrictedSGRules, controllerConfig.IngressConfig.AllowedCertificateAuthorityARNs, supportedAddons, logger)
@@ -96,7 +96,6 @@ func newGatewayReconciler(controllerName string, lbType elbv2model.LoadBalancerT
9696
metricsCollector: metricsCollector,
9797
reconcileTracker: reconcileTracker,
9898
cfgResolver: cfgResolver,
99-
routeReconciler: routeReconciler,
10099
serviceReferenceCounter: serviceReferenceCounter,
101100
gatewayConditionUpdater: prepareGatewayConditionUpdate,
102101
}
@@ -123,8 +122,7 @@ type gatewayReconciler struct {
123122
serviceReferenceCounter referencecounter.ServiceReferenceCounter
124123
gatewayConditionUpdater func(gw *gwv1.Gateway, targetConditionType string, newStatus metav1.ConditionStatus, reason string, message string) bool
125124

126-
cfgResolver gatewayConfigResolver
127-
routeReconciler routeutils.RouteReconciler
125+
cfgResolver gatewayConfigResolver
128126
}
129127

130128
//+kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=referencegrants,verbs=get;list;watch;patch
@@ -211,7 +209,7 @@ func (r *gatewayReconciler) reconcileHelper(ctx context.Context, req reconcile.R
211209
return err
212210
}
213211

214-
allRoutes, err := r.gatewayLoader.LoadRoutesForGateway(ctx, *gw, r.routeFilter, r.routeReconciler)
212+
allRoutes, err := r.gatewayLoader.LoadRoutesForGateway(ctx, *gw, r.routeFilter)
215213

216214
if err != nil {
217215
var loaderErr routeutils.LoaderError

main.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@ type gatewayControllerConfig struct {
103103
sgResolver networking.SecurityGroupResolver
104104
metricsCollector lbcmetrics.MetricCollector
105105
reconcileCounters *metricsutil.ReconcileCounters
106-
routeReconciler routeutils.RouteReconciler
107106
serviceReferenceCounter referencecounter.ServiceReferenceCounter
108107
networkingManager networking.NetworkingManager
109108
}
@@ -243,15 +242,14 @@ func main() {
243242
sgResolver: sgResolver,
244243
metricsCollector: lbcMetricsCollector,
245244
reconcileCounters: reconcileCounters,
246-
routeReconciler: routeReconciler,
247245
networkingManager: networkingManager,
248246
serviceReferenceCounter: serviceReferenceCounter,
249247
}
250248

251249
enabledControllers := sets.Set[string]{}
252250

253251
routeLoaderCreator := sync.OnceValue(func() routeutils.Loader {
254-
return routeutils.NewLoader(mgr.GetClient(), mgr.GetLogger().WithName("gateway-route-loader"))
252+
return routeutils.NewLoader(mgr.GetClient(), routeReconciler, mgr.GetLogger().WithName("gateway-route-loader"))
255253
})
256254

257255
// Setup NLB Gateway controller if enabled
@@ -450,7 +448,6 @@ func setupGatewayController(ctx context.Context, mgr ctrl.Manager, cfg *gatewayC
450448
logger,
451449
cfg.metricsCollector,
452450
cfg.reconcileCounters,
453-
cfg.routeReconciler,
454451
)
455452
case gateway_constants.ALBGatewayController:
456453
reconciler = gateway.NewALBGatewayReconciler(
@@ -472,7 +469,6 @@ func setupGatewayController(ctx context.Context, mgr ctrl.Manager, cfg *gatewayC
472469
logger,
473470
cfg.metricsCollector,
474471
cfg.reconcileCounters,
475-
cfg.routeReconciler,
476472
)
477473
default:
478474
return fmt.Errorf("unknown controller type: %s", controllerType)

pkg/gateway/routeutils/listener_attachment_helper.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
// listenerAttachmentHelper is an internal utility interface that can be used to determine if a listener will allow
1515
// a route to attach to it.
1616
type listenerAttachmentHelper interface {
17-
listenerAllowsAttachment(ctx context.Context, gw gwv1.Gateway, listener gwv1.Listener, route preLoadRouteDescriptor, deferredRouteReconciler RouteReconciler, hostnamesFromHttpRoutes map[types.NamespacedName][]gwv1.Hostname, hostnamesFromGrpcRoutes map[types.NamespacedName][]gwv1.Hostname) (bool, error)
17+
listenerAllowsAttachment(ctx context.Context, gw gwv1.Gateway, listener gwv1.Listener, route preLoadRouteDescriptor, deferredRouteReconciler RouteReconcilerSubmitter, hostnamesFromHttpRoutes map[types.NamespacedName][]gwv1.Hostname, hostnamesFromGrpcRoutes map[types.NamespacedName][]gwv1.Hostname) (bool, error)
1818
}
1919

2020
var _ listenerAttachmentHelper = &listenerAttachmentHelperImpl{}
@@ -34,7 +34,7 @@ func newListenerAttachmentHelper(k8sClient client.Client, logger logr.Logger) li
3434

3535
// listenerAllowsAttachment utility method to determine if a listener will allow a route to connect using
3636
// Gateway API rules to determine compatibility between lister and route.
37-
func (attachmentHelper *listenerAttachmentHelperImpl) listenerAllowsAttachment(ctx context.Context, gw gwv1.Gateway, listener gwv1.Listener, route preLoadRouteDescriptor, deferredRouteReconciler RouteReconciler, hostnamesFromHttpRoutes map[types.NamespacedName][]gwv1.Hostname, hostnamesFromGrpcRoutes map[types.NamespacedName][]gwv1.Hostname) (bool, error) {
37+
func (attachmentHelper *listenerAttachmentHelperImpl) listenerAllowsAttachment(ctx context.Context, gw gwv1.Gateway, listener gwv1.Listener, route preLoadRouteDescriptor, deferredRouteReconciler RouteReconcilerSubmitter, hostnamesFromHttpRoutes map[types.NamespacedName][]gwv1.Hostname, hostnamesFromGrpcRoutes map[types.NamespacedName][]gwv1.Hostname) (bool, error) {
3838
// check namespace
3939
namespaceOK, err := attachmentHelper.namespaceCheck(ctx, gw, listener, route)
4040
if err != nil {

pkg/gateway/routeutils/loader.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,29 +48,31 @@ var L7RouteFilter LoadRouteFilter = &routeFilterImpl{
4848
// Loader will load all data Kubernetes that are pertinent to a gateway (Routes, Services, Target Group Configurations).
4949
// It will output the data using a map which maps listener port to the various routing rules for that port.
5050
type Loader interface {
51-
LoadRoutesForGateway(ctx context.Context, gw gwv1.Gateway, filter LoadRouteFilter, reconciler RouteReconciler) (map[int32][]RouteDescriptor, error)
51+
LoadRoutesForGateway(ctx context.Context, gw gwv1.Gateway, filter LoadRouteFilter) (map[int32][]RouteDescriptor, error)
5252
}
5353

5454
var _ Loader = &loaderImpl{}
5555

5656
type loaderImpl struct {
5757
mapper listenerToRouteMapper
58+
routeSubmitter RouteReconcilerSubmitter
5859
k8sClient client.Client
5960
logger logr.Logger
6061
allRouteLoaders map[RouteKind]func(context context.Context, client client.Client, opts ...client.ListOption) ([]preLoadRouteDescriptor, error)
6162
}
6263

63-
func NewLoader(k8sClient client.Client, logger logr.Logger) Loader {
64+
func NewLoader(k8sClient client.Client, routeSubmitter RouteReconcilerSubmitter, logger logr.Logger) Loader {
6465
return &loaderImpl{
6566
mapper: newListenerToRouteMapper(k8sClient, logger.WithName("route-mapper")),
67+
routeSubmitter: routeSubmitter,
6668
k8sClient: k8sClient,
6769
allRouteLoaders: allRoutes,
6870
logger: logger,
6971
}
7072
}
7173

7274
// LoadRoutesForGateway loads all relevant data for a single Gateway.
73-
func (l *loaderImpl) LoadRoutesForGateway(ctx context.Context, gw gwv1.Gateway, filter LoadRouteFilter, deferredRouteReconciler RouteReconciler) (map[int32][]RouteDescriptor, error) {
75+
func (l *loaderImpl) LoadRoutesForGateway(ctx context.Context, gw gwv1.Gateway, filter LoadRouteFilter) (map[int32][]RouteDescriptor, error) {
7476
// 1. Load all relevant routes according to the filter
7577

7678
loadedRoutes := make([]preLoadRouteDescriptor, 0)
@@ -88,21 +90,21 @@ func (l *loaderImpl) LoadRoutesForGateway(ctx context.Context, gw gwv1.Gateway,
8890

8991
// 2. Remove routes that aren't granted attachment by the listener.
9092
// Map any routes that are granted attachment to the listener port that allows the attachment.
91-
mappedRoutes, err := l.mapper.mapGatewayAndRoutes(ctx, gw, loadedRoutes, deferredRouteReconciler)
93+
mappedRoutes, err := l.mapper.mapGatewayAndRoutes(ctx, gw, loadedRoutes, l.routeSubmitter)
9294
if err != nil {
9395
return nil, err
9496
}
9597

9698
// 3. Load the underlying resource(s) for each route that is configured.
97-
loadedRoute, err := l.loadChildResources(ctx, mappedRoutes, deferredRouteReconciler, gw)
99+
loadedRoute, err := l.loadChildResources(ctx, mappedRoutes, gw)
98100
if err != nil {
99101
return nil, err
100102
}
101103

102104
// update status for accepted routes
103105
for _, routeList := range loadedRoute {
104106
for _, route := range routeList {
105-
deferredRouteReconciler.Enqueue(
107+
l.routeSubmitter.Enqueue(
106108
GenerateRouteData(true, true, string(gwv1.RouteConditionAccepted), RouteStatusInfoAcceptedMessage, route.GetRouteNamespacedName(), route.GetRouteKind(), route.GetRouteGeneration(), gw),
107109
)
108110
}
@@ -111,7 +113,7 @@ func (l *loaderImpl) LoadRoutesForGateway(ctx context.Context, gw gwv1.Gateway,
111113
}
112114

113115
// loadChildResources responsible for loading all resources that a route descriptor references.
114-
func (l *loaderImpl) loadChildResources(ctx context.Context, preloadedRoutes map[int][]preLoadRouteDescriptor, deferredRouteReconciler RouteReconciler, gw gwv1.Gateway) (map[int32][]RouteDescriptor, error) {
116+
func (l *loaderImpl) loadChildResources(ctx context.Context, preloadedRoutes map[int][]preLoadRouteDescriptor, gw gwv1.Gateway) (map[int32][]RouteDescriptor, error) {
115117
// Cache to reduce duplicate route lookups.
116118
// Kind -> [NamespacedName:Previously Loaded Descriptor]
117119
resourceCache := make(map[string]RouteDescriptor)
@@ -135,7 +137,7 @@ func (l *loaderImpl) loadChildResources(ctx context.Context, preloadedRoutes map
135137
for _, lare := range loadAttachedRulesErrors {
136138
var loaderErr LoaderError
137139
if errors.As(lare.Err, &loaderErr) {
138-
deferredRouteReconciler.Enqueue(
140+
l.routeSubmitter.Enqueue(
139141
GenerateRouteData(false, false, string(loaderErr.GetRouteReason()), loaderErr.GetRouteMessage(), preloadedRoute.GetRouteNamespacedName(), preloadedRoute.GetRouteKind(), preloadedRoute.GetRouteGeneration(), gw),
140142
)
141143
}

pkg/gateway/routeutils/loader_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ type mockMapper struct {
1818
mapToReturn map[int][]preLoadRouteDescriptor
1919
}
2020

21-
func (m *mockMapper) mapGatewayAndRoutes(context context.Context, gw gwv1.Gateway, routes []preLoadRouteDescriptor, routeReconciler RouteReconciler) (map[int][]preLoadRouteDescriptor, error) {
21+
func (m *mockMapper) mapGatewayAndRoutes(context context.Context, gw gwv1.Gateway, routes []preLoadRouteDescriptor, routeReconciler RouteReconcilerSubmitter) (map[int][]preLoadRouteDescriptor, error) {
2222
assert.ElementsMatch(m.t, m.expectedRoutes, routes)
2323
return m.mapToReturn, nil
2424
}
@@ -224,11 +224,11 @@ func TestLoadRoutesForGateway(t *testing.T) {
224224
},
225225
allRouteLoaders: allRouteLoaders,
226226
logger: logr.Discard(),
227+
routeSubmitter: NewMockRouteReconciler(),
227228
}
228229

229230
filter := &routeFilterImpl{acceptedKinds: tc.acceptedKinds}
230-
mockReconciler := NewMockRouteReconciler()
231-
result, err := loader.LoadRoutesForGateway(context.Background(), gwv1.Gateway{}, filter, mockReconciler)
231+
result, err := loader.LoadRoutesForGateway(context.Background(), gwv1.Gateway{}, filter)
232232
if tc.expectError {
233233
assert.Error(t, err)
234234
return

pkg/gateway/routeutils/route_listener_mapper.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
// listenerToRouteMapper is an internal utility that will map a list of routes to the listeners of a gateway
1212
// if the gateway and/or route are incompatible, then the route is discarded.
1313
type listenerToRouteMapper interface {
14-
mapGatewayAndRoutes(context context.Context, gw gwv1.Gateway, routes []preLoadRouteDescriptor, deferredRouteReconciler RouteReconciler) (map[int][]preLoadRouteDescriptor, error)
14+
mapGatewayAndRoutes(context context.Context, gw gwv1.Gateway, routes []preLoadRouteDescriptor, deferredRouteReconciler RouteReconcilerSubmitter) (map[int][]preLoadRouteDescriptor, error)
1515
}
1616

1717
var _ listenerToRouteMapper = &listenerToRouteMapperImpl{}
@@ -31,7 +31,7 @@ func newListenerToRouteMapper(k8sClient client.Client, logger logr.Logger) liste
3131
}
3232

3333
// mapGatewayAndRoutes will map route to the corresponding listener ports using the Gateway API spec rules.
34-
func (ltr *listenerToRouteMapperImpl) mapGatewayAndRoutes(ctx context.Context, gw gwv1.Gateway, routes []preLoadRouteDescriptor, deferredRouteReconciler RouteReconciler) (map[int][]preLoadRouteDescriptor, error) {
34+
func (ltr *listenerToRouteMapperImpl) mapGatewayAndRoutes(ctx context.Context, gw gwv1.Gateway, routes []preLoadRouteDescriptor, deferredRouteReconciler RouteReconcilerSubmitter) (map[int][]preLoadRouteDescriptor, error) {
3535
result := make(map[int][]preLoadRouteDescriptor)
3636

3737
// First filter out any routes that are not intended for this Gateway.

pkg/gateway/routeutils/route_listener_mapper_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ func makeListenerAttachmentMapKey(listener gwv1.Listener, route preLoadRouteDesc
2020
return fmt.Sprintf("%s-%d-%s-%s", listener.Name, listener.Port, nsn.Name, nsn.Namespace)
2121
}
2222

23-
func (m *mockListenerAttachmentHelper) listenerAllowsAttachment(ctx context.Context, gw gwv1.Gateway, listener gwv1.Listener, route preLoadRouteDescriptor, routeReconciler RouteReconciler, hostnamesFromHttpRoutes map[types.NamespacedName][]gwv1.Hostname, hostnamesFromGrpcRoutes map[types.NamespacedName][]gwv1.Hostname) (bool, error) {
23+
func (m *mockListenerAttachmentHelper) listenerAllowsAttachment(ctx context.Context, gw gwv1.Gateway, listener gwv1.Listener, route preLoadRouteDescriptor, routeReconciler RouteReconcilerSubmitter, hostnamesFromHttpRoutes map[types.NamespacedName][]gwv1.Hostname, hostnamesFromGrpcRoutes map[types.NamespacedName][]gwv1.Hostname) (bool, error) {
2424
k := makeListenerAttachmentMapKey(listener, route)
2525
return m.attachmentMap[k], nil
2626
}

0 commit comments

Comments
 (0)