@@ -40,17 +40,24 @@ import (
4040var _ Reconciler = & gatewayReconciler {}
4141
4242// NewNLBGatewayReconciler constructs a gateway reconciler to handle specifically for NLB gateways
43- func NewNLBGatewayReconciler (routeLoader routeutils.Loader , cloud services.Cloud , k8sClient client.Client , eventRecorder record.EventRecorder , controllerConfig config.ControllerConfig , finalizerManager k8s.FinalizerManager , 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 {
44- return newGatewayReconciler (constants .NLBGatewayController , elbv2model .LoadBalancerTypeNetwork , controllerConfig .NLBGatewayMaxConcurrentReconciles , constants .NLBGatewayTagPrefix , shared_constants .NLBGatewayFinalizer , routeLoader , routeutils .L4RouteFilter , cloud , k8sClient , eventRecorder , controllerConfig , finalizerManager , networkingSGReconciler , networkingSGManager , elbv2TaggingManager , subnetResolver , vpcInfoProvider , backendSGProvider , sgResolver , logger , metricsCollector , reconcileCounters .IncrementNLBGateway )
43+ func NewNLBGatewayReconciler (routeLoader routeutils.Loader , cloud services.Cloud , k8sClient client.Client , eventRecorder record.EventRecorder , controllerConfig config.ControllerConfig , finalizerManager k8s.FinalizerManager , 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 {
44+ return newGatewayReconciler (constants .NLBGatewayController , elbv2model .LoadBalancerTypeNetwork , controllerConfig .NLBGatewayMaxConcurrentReconciles , constants .NLBGatewayTagPrefix , shared_constants .NLBGatewayFinalizer , routeLoader , routeutils .L4RouteFilter , cloud , k8sClient , eventRecorder , controllerConfig , finalizerManager , networkingSGReconciler , networkingSGManager , elbv2TaggingManager , subnetResolver , vpcInfoProvider , backendSGProvider , sgResolver , logger , metricsCollector , reconcileCounters .IncrementNLBGateway , routeReconciler )
4545}
4646
4747// NewALBGatewayReconciler constructs a gateway reconciler to handle specifically for ALB gateways
48- func NewALBGatewayReconciler (routeLoader routeutils.Loader , cloud services.Cloud , k8sClient client.Client , eventRecorder record.EventRecorder , controllerConfig config.ControllerConfig , finalizerManager k8s.FinalizerManager , 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 {
49- return newGatewayReconciler (constants .ALBGatewayController , elbv2model .LoadBalancerTypeApplication , controllerConfig .ALBGatewayMaxConcurrentReconciles , constants .ALBGatewayTagPrefix , shared_constants .ALBGatewayFinalizer , routeLoader , routeutils .L7RouteFilter , cloud , k8sClient , eventRecorder , controllerConfig , finalizerManager , networkingSGReconciler , networkingSGManager , elbv2TaggingManager , subnetResolver , vpcInfoProvider , backendSGProvider , sgResolver , logger , metricsCollector , reconcileCounters .IncrementALBGateway )
48+ func NewALBGatewayReconciler (routeLoader routeutils.Loader , cloud services.Cloud , k8sClient client.Client , eventRecorder record.EventRecorder , controllerConfig config.ControllerConfig , finalizerManager k8s.FinalizerManager , 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 {
49+ return newGatewayReconciler (constants .ALBGatewayController , elbv2model .LoadBalancerTypeApplication , controllerConfig .ALBGatewayMaxConcurrentReconciles , constants .ALBGatewayTagPrefix , shared_constants .ALBGatewayFinalizer , routeLoader , routeutils .L7RouteFilter , cloud , k8sClient , eventRecorder , controllerConfig , finalizerManager , networkingSGReconciler , networkingSGManager , elbv2TaggingManager , subnetResolver , vpcInfoProvider , backendSGProvider , sgResolver , logger , metricsCollector , reconcileCounters .IncrementALBGateway , routeReconciler )
5050}
5151
5252// newGatewayReconciler constructs a reconciler that responds to gateway object changes
53- func newGatewayReconciler (controllerName string , lbType elbv2model.LoadBalancerType , maxConcurrentReconciles int , gatewayTagPrefix string , finalizer string , routeLoader routeutils.Loader , routeFilter routeutils.LoadRouteFilter , cloud services.Cloud , k8sClient client.Client , eventRecorder record.EventRecorder , controllerConfig config.ControllerConfig , finalizerManager k8s.FinalizerManager , 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 , reconcileTracker func (namespaceName types.NamespacedName )) Reconciler {
53+ func newGatewayReconciler (controllerName string , lbType elbv2model.LoadBalancerType , maxConcurrentReconciles int ,
54+ gatewayTagPrefix string , finalizer string , routeLoader routeutils.Loader , routeFilter routeutils.LoadRouteFilter ,
55+ cloud services.Cloud , k8sClient client.Client , eventRecorder record.EventRecorder , controllerConfig config.ControllerConfig ,
56+ finalizerManager k8s.FinalizerManager , networkingSGReconciler networking.SecurityGroupReconciler ,
57+ networkingSGManager networking.SecurityGroupManager , elbv2TaggingManager elbv2deploy.TaggingManager ,
58+ subnetResolver networking.SubnetsResolver , vpcInfoProvider networking.VPCInfoProvider , backendSGProvider networking.BackendSGProvider ,
59+ sgResolver networking.SecurityGroupResolver , logger logr.Logger , metricsCollector lbcmetrics.MetricCollector ,
60+ reconcileTracker func (namespaceName types.NamespacedName ), routeReconciler routeutils.RouteReconciler ) Reconciler {
5461
5562 trackingProvider := tracking .NewDefaultProvider (gatewayTagPrefix , controllerConfig .ClusterName )
5663 modelBuilder := gatewaymodel .NewModelBuilder (subnetResolver , vpcInfoProvider , cloud .VpcID (), lbType , trackingProvider , elbv2TaggingManager , controllerConfig , cloud .EC2 (), 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 , logger )
@@ -78,6 +85,7 @@ func newGatewayReconciler(controllerName string, lbType elbv2model.LoadBalancerT
7885 metricsCollector : metricsCollector ,
7986 reconcileTracker : reconcileTracker ,
8087 cfgResolver : cfgResolver ,
88+ routeReconciler : routeReconciler ,
8189 }
8290}
8391
@@ -100,7 +108,8 @@ type gatewayReconciler struct {
100108 metricsCollector lbcmetrics.MetricCollector
101109 reconcileTracker func (namespaceName types.NamespacedName )
102110
103- cfgResolver gatewayConfigResolver
111+ cfgResolver gatewayConfigResolver
112+ routeReconciler routeutils.RouteReconciler
104113}
105114
106115//+kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=gateways,verbs=get;list;watch;patch
@@ -180,7 +189,7 @@ func (r *gatewayReconciler) reconcileHelper(ctx context.Context, req reconcile.R
180189 return err
181190 }
182191
183- allRoutes , err := r .gatewayLoader .LoadRoutesForGateway (ctx , * gw , r .routeFilter )
192+ allRoutes , err := r .gatewayLoader .LoadRoutesForGateway (ctx , * gw , r .routeFilter , r . routeReconciler )
184193
185194 if err != nil {
186195 return err
0 commit comments