@@ -110,6 +110,7 @@ func newGatewayReconciler(controllerName string, lbType elbv2model.LoadBalancerT
110110 gatewayConditionUpdater : prepareGatewayConditionUpdate ,
111111 targetGroupNameToArnMapper : targetGroupNameToArnMapper ,
112112 listenerSetStatusSubmitter : listenerSetStatusSubmitter ,
113+ listenerSetEnabled : controllerConfig .FeatureGates .Enabled (config .GatewayListenerSet ),
113114 }
114115}
115116
@@ -139,6 +140,7 @@ type gatewayReconciler struct {
139140 cfgResolver gatewayConfigResolver
140141 lbcEventChan chan event.TypedGenericEvent [* elbv2gw.LoadBalancerConfiguration ]
141142 listenerSetStatusSubmitter ListenerSetStatusSubmitter
143+ listenerSetEnabled bool
142144}
143145
144146//+kubebuilder:rbac:groups=gateway.networking.k8s.io,resources=referencegrants,verbs=get;list;watch;patch
@@ -448,11 +450,13 @@ func (r *gatewayReconciler) updateGatewayStatusSuccess(ctx context.Context, lbSt
448450 needPatch = true
449451 }
450452
451- connectedListenerSets := routeutils .CalculateAttachedListenerSets (loaderResults .ValidationResults .ListenerSetListenerValidation )
453+ if r .listenerSetEnabled {
454+ connectedListenerSets := routeutils .CalculateAttachedListenerSets (loaderResults .ValidationResults .ListenerSetListenerValidation )
452455
453- if gw .Status .AttachedListenerSets == nil || * gw .Status .AttachedListenerSets != connectedListenerSets {
454- gw .Status .AttachedListenerSets = & connectedListenerSets
455- needPatch = true
456+ if gw .Status .AttachedListenerSets == nil || * gw .Status .AttachedListenerSets != connectedListenerSets {
457+ gw .Status .AttachedListenerSets = & connectedListenerSets
458+ needPatch = true
459+ }
456460 }
457461
458462 // update listeners status
@@ -462,12 +466,14 @@ func (r *gatewayReconciler) updateGatewayStatusSuccess(ctx context.Context, lbSt
462466 needPatch = true
463467 }
464468
465- for nsn , listenerValidationResults := range loaderResults .ValidationResults .ListenerSetListenerValidation {
466- r .listenerSetStatusSubmitter .Enqueue (buildListenerSetStatus (nsn , listenerValidationResults , isProgrammed ))
467- }
469+ if r .listenerSetEnabled {
470+ for nsn , listenerValidationResults := range loaderResults .ValidationResults .ListenerSetListenerValidation {
471+ r .listenerSetStatusSubmitter .Enqueue (buildListenerSetStatus (nsn , listenerValidationResults , isProgrammed ))
472+ }
468473
469- for _ , rejectedListenerSet := range loaderResults .RejectedListenerSets {
470- r .listenerSetStatusSubmitter .Enqueue (buildRejectedListenerSetStatus (rejectedListenerSet ))
474+ for _ , rejectedListenerSet := range loaderResults .RejectedListenerSets {
475+ r .listenerSetStatusSubmitter .Enqueue (buildRejectedListenerSetStatus (rejectedListenerSet ))
476+ }
471477 }
472478
473479 if needPatch {
@@ -596,10 +602,6 @@ func (r *gatewayReconciler) setupALBGatewayControllerWatches(ctrl controller.Con
596602 loggerPrefix .WithName ("ReferenceGrant" ))
597603 secretEventHandler := eventhandlers .NewEnqueueRequestsForSecretEvent (listenerRuleConfigEventChan , r .k8sClient , r .eventRecorder ,
598604 r .logger .WithName ("eventHandlers" ).WithName ("secret" ))
599- listenerSetEventHandler := eventhandlers .NewEnqueueRequestsForListenerSetEvent (
600- r .k8sClient , r .eventRecorder , r .controllerName ,
601- loggerPrefix .WithName ("ListenerSet" ),
602- )
603605 if err := ctrl .Watch (source .Channel (tbConfigEventChan , tgConfigEventHandler )); err != nil {
604606 return err
605607 }
@@ -637,8 +639,14 @@ func (r *gatewayReconciler) setupALBGatewayControllerWatches(ctrl controller.Con
637639 return err
638640 }
639641
640- if err := ctrl .Watch (source .Kind (mgr .GetCache (), & gwv1.ListenerSet {}, listenerSetEventHandler )); err != nil {
641- return err
642+ if r .listenerSetEnabled {
643+ listenerSetEventHandler := eventhandlers .NewEnqueueRequestsForListenerSetEvent (
644+ r .k8sClient , r .eventRecorder , r .controllerName ,
645+ loggerPrefix .WithName ("ListenerSet" ),
646+ )
647+ if err := ctrl .Watch (source .Kind (mgr .GetCache (), & gwv1.ListenerSet {}, listenerSetEventHandler )); err != nil {
648+ return err
649+ }
642650 }
643651
644652 r .secretsManager = k8s .NewSecretsManager (clientSet , secretEventsChan , r .logger .WithName ("secrets-manager" ))
@@ -664,10 +672,6 @@ func (r *gatewayReconciler) setupNLBGatewayControllerWatches(ctrl controller.Con
664672 loggerPrefix .WithName ("Service" ), constants .NLBGatewayController )
665673 refGrantHandler := eventhandlers .NewEnqueueRequestsForReferenceGrantEvent (nil , nil , tcpRouteEventChan , udpRouteEventChan , tlsRouteEventChan , r .k8sClient , r .eventRecorder ,
666674 loggerPrefix .WithName ("ReferenceGrant" ))
667- listenerSetEventHandler := eventhandlers .NewEnqueueRequestsForListenerSetEvent (
668- r .k8sClient , r .eventRecorder , r .controllerName ,
669- loggerPrefix .WithName ("ListenerSet" ),
670- )
671675 if err := ctrl .Watch (source .Channel (tbConfigEventChan , tgConfigEventHandler )); err != nil {
672676 return err
673677 }
@@ -701,8 +705,14 @@ func (r *gatewayReconciler) setupNLBGatewayControllerWatches(ctrl controller.Con
701705 if err := ctrl .Watch (source .Kind (mgr .GetCache (), & gwv1.TLSRoute {}, tlsRouteEventHandler )); err != nil {
702706 return err
703707 }
704- if err := ctrl .Watch (source .Kind (mgr .GetCache (), & gwv1.ListenerSet {}, listenerSetEventHandler )); err != nil {
705- return err
708+ if r .listenerSetEnabled {
709+ listenerSetEventHandler := eventhandlers .NewEnqueueRequestsForListenerSetEvent (
710+ r .k8sClient , r .eventRecorder , r .controllerName ,
711+ loggerPrefix .WithName ("ListenerSet" ),
712+ )
713+ if err := ctrl .Watch (source .Kind (mgr .GetCache (), & gwv1.ListenerSet {}, listenerSetEventHandler )); err != nil {
714+ return err
715+ }
706716 }
707717 return nil
708718
0 commit comments