@@ -55,11 +55,13 @@ type GatewayProxyController struct {
5555 ICGVK schema.GroupVersionKind
5656 // supportsEndpointSlice indicates whether the cluster supports EndpointSlice API
5757 supportsEndpointSlice bool
58+ supportsGateway bool
5859}
5960
6061func (r * GatewayProxyController ) SetupWithManager (mrg ctrl.Manager ) error {
6162 // Check and store EndpointSlice API support
6263 r .supportsEndpointSlice = pkgutils .HasAPIResource (mrg , & discoveryv1.EndpointSlice {})
64+ r .supportsGateway = pkgutils .HasAPIResource (mrg , & gatewayv1.Gateway {})
6365
6466 bdr := ctrl .NewControllerManagedBy (mrg ).
6567 For (& v1alpha1.GatewayProxy {}).
@@ -141,19 +143,19 @@ func (r *GatewayProxyController) Reconcile(ctx context.Context, req ctrl.Request
141143 tctx .Secrets [secretNN ] = & secret
142144 }
143145
144- // list Gateways that reference the GatewayProxy
145- var (
146- gatewayList gatewayv1.GatewayList
147- indexKey = indexer .GenIndexKey (gp .GetNamespace (), gp .GetName ())
148- )
149- if err := r .List (ctx , & gatewayList , client.MatchingFields {indexer .ParametersRef : indexKey }); err != nil {
150- r .Log .Error (err , "failed to list GatewayList" )
151- return ctrl.Result {}, nil
152- }
146+ indexKey := indexer .GenIndexKey (gp .GetNamespace (), gp .GetName ())
153147
154- // append referrers to translate context
155- for _ , item := range gatewayList .Items {
156- tctx .GatewayProxyReferrers [req .NamespacedName ] = append (tctx .GatewayProxyReferrers [req .NamespacedName ], utils .NamespacedNameKind (& item ))
148+ // list Gateways that reference the GatewayProxy
149+ if r .supportsGateway {
150+ var gatewayList gatewayv1.GatewayList
151+ if err := r .List (ctx , & gatewayList , client.MatchingFields {indexer .ParametersRef : indexKey }); err != nil {
152+ r .Log .Error (err , "failed to list GatewayList" )
153+ return ctrl.Result {}, nil
154+ }
155+ // append referrers to translate context
156+ for _ , item := range gatewayList .Items {
157+ tctx .GatewayProxyReferrers [req .NamespacedName ] = append (tctx .GatewayProxyReferrers [req .NamespacedName ], utils .NamespacedNameKind (& item ))
158+ }
157159 }
158160
159161 switch r .ICGVK .Version {
0 commit comments