@@ -103,130 +103,113 @@ func setupControllers(ctx context.Context, mgr manager.Manager, pro provider.Pro
103103 var controllers []Controller
104104
105105 // Gateway API Controllers - conditional registration based on API availability
106- if utils . HasAPIResource ( mgr , & gatewayv1. GatewayClass {}) {
107- controllers = append ( controllers , & controller.GatewayClassReconciler {
106+ for resource , controller := range map [client. Object ] Controller {
107+ & gatewayv1. GatewayClass {}: & controller.GatewayClassReconciler {
108108 Client : mgr .GetClient (),
109109 Scheme : mgr .GetScheme (),
110110 Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("GatewayClass" ),
111111 Updater : updater ,
112- })
113- } else {
114- setupLog .Info ("Skipping GatewayClass controller setup, API not found in cluster" , "api" , utils .FormatGVK (& gatewayv1.GatewayClass {}))
115- }
116-
117- if utils .HasAPIResource (mgr , & gatewayv1.Gateway {}) {
118- controllers = append (controllers , & controller.GatewayReconciler {
112+ },
113+ & gatewayv1.Gateway {}: & controller.GatewayReconciler {
119114 Client : mgr .GetClient (),
120115 Scheme : mgr .GetScheme (),
121116 Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("Gateway" ),
122117 Provider : pro ,
123118 Updater : updater ,
124- })
125- } else {
126- setupLog .Info ("Skipping Gateway controller setup, API not found in cluster" , "api" , utils .FormatGVK (& gatewayv1.Gateway {}))
127- }
128-
129- if utils .HasAPIResource (mgr , & gatewayv1.HTTPRoute {}) {
130- controllers = append (controllers , & controller.HTTPRouteReconciler {
119+ },
120+ & gatewayv1.HTTPRoute {}: & controller.HTTPRouteReconciler {
131121 Client : mgr .GetClient (),
132122 Scheme : mgr .GetScheme (),
133123 Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("HTTPRoute" ),
134124 Provider : pro ,
135125 Updater : updater ,
136126 Readier : readier ,
137- })
138- } else {
139- setupLog .Info ("Skipping HTTPRoute controller setup, API not found in cluster" , "api" , utils .FormatGVK (& gatewayv1.HTTPRoute {}))
140- }
141-
142- // Core Kubernetes Controllers - always register these
143- controllers = append (controllers , & controller.IngressReconciler {
144- Client : mgr .GetClient (),
145- Scheme : mgr .GetScheme (),
146- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("Ingress" ),
147- Provider : pro ,
148- Updater : updater ,
149- Readier : readier ,
150- })
151-
152- controllers = append (controllers , & controller.IngressClassReconciler {
153- Client : mgr .GetClient (),
154- Scheme : mgr .GetScheme (),
155- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("IngressClass" ),
156- Provider : pro ,
157- })
158-
159- // v1alpha1 Extension Controllers - conditional registration
160- if utils .HasAPIResource (mgr , & v1alpha1.Consumer {}) {
161- controllers = append (controllers , & controller.ConsumerReconciler {
127+ },
128+ & v1alpha1.Consumer {}: & controller.ConsumerReconciler {
162129 Client : mgr .GetClient (),
163130 Scheme : mgr .GetScheme (),
164131 Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("Consumer" ),
165132 Provider : pro ,
166133 Updater : updater ,
167134 Readier : readier ,
168- })
169- } else {
170- setupLog .Info ("Skipping Consumer controller setup, API not found in cluster" , "api" , utils .FormatGVK (& v1alpha1.Consumer {}))
135+ },
136+ } {
137+ if utils .HasAPIResource (mgr , resource ) {
138+ controllers = append (controllers , controller )
139+ } else {
140+ setupLog .Info ("Skipping controller setup, API not found in cluster" , "api" , utils .FormatGVK (resource ))
141+ }
171142 }
172143
173- controllers = append (controllers , & controller.GatewayProxyController {
174- Client : mgr .GetClient (),
175- Scheme : mgr .GetScheme (),
176- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("GatewayProxy" ),
177- Provider : pro ,
178- })
179-
180- // APISIX v2 Controllers - always register these as they are core to the controller
181- controllers = append (controllers , & controller.ApisixGlobalRuleReconciler {
182- Client : mgr .GetClient (),
183- Scheme : mgr .GetScheme (),
184- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixGlobalRule" ),
185- Provider : pro ,
186- Updater : updater ,
187- Readier : readier ,
188- })
189-
190- controllers = append (controllers , & controller.ApisixRouteReconciler {
191- Client : mgr .GetClient (),
192- Scheme : mgr .GetScheme (),
193- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixRoute" ),
194- Provider : pro ,
195- Updater : updater ,
196- Readier : readier ,
197- })
198-
199- controllers = append (controllers , & controller.ApisixConsumerReconciler {
200- Client : mgr .GetClient (),
201- Scheme : mgr .GetScheme (),
202- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixConsumer" ),
203- Provider : pro ,
204- Updater : updater ,
205- Readier : readier ,
206- })
207-
208- controllers = append (controllers , & controller.ApisixPluginConfigReconciler {
209- Client : mgr .GetClient (),
210- Scheme : mgr .GetScheme (),
211- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixPluginConfig" ),
212- Updater : updater ,
213- })
214-
215- controllers = append (controllers , & controller.ApisixTlsReconciler {
216- Client : mgr .GetClient (),
217- Scheme : mgr .GetScheme (),
218- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixTls" ),
219- Provider : pro ,
220- Updater : updater ,
221- Readier : readier ,
222- })
223-
224- controllers = append (controllers , & controller.ApisixUpstreamReconciler {
225- Client : mgr .GetClient (),
226- Scheme : mgr .GetScheme (),
227- Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixUpstream" ),
228- Updater : updater ,
229- })
144+ controllers = append (controllers , []Controller {
145+ // Core Kubernetes Controllers - always register these
146+ & controller.IngressReconciler {
147+ Client : mgr .GetClient (),
148+ Scheme : mgr .GetScheme (),
149+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("Ingress" ),
150+ Provider : pro ,
151+ Updater : updater ,
152+ Readier : readier ,
153+ },
154+ & controller.IngressClassReconciler {
155+ Client : mgr .GetClient (),
156+ Scheme : mgr .GetScheme (),
157+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("IngressClass" ),
158+ Provider : pro ,
159+ },
160+ // Gateway Proxy Controller - always register this as it is core to the controller
161+ & controller.GatewayProxyController {
162+ Client : mgr .GetClient (),
163+ Scheme : mgr .GetScheme (),
164+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("GatewayProxy" ),
165+ Provider : pro ,
166+ },
167+ // APISIX v2 Controllers - always register these as they are core to the controller
168+ & controller.ApisixGlobalRuleReconciler {
169+ Client : mgr .GetClient (),
170+ Scheme : mgr .GetScheme (),
171+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixGlobalRule" ),
172+ Provider : pro ,
173+ Updater : updater ,
174+ Readier : readier ,
175+ },
176+ & controller.ApisixRouteReconciler {
177+ Client : mgr .GetClient (),
178+ Scheme : mgr .GetScheme (),
179+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixRoute" ),
180+ Provider : pro ,
181+ Updater : updater ,
182+ Readier : readier ,
183+ },
184+ & controller.ApisixConsumerReconciler {
185+ Client : mgr .GetClient (),
186+ Scheme : mgr .GetScheme (),
187+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixConsumer" ),
188+ Provider : pro ,
189+ Updater : updater ,
190+ Readier : readier ,
191+ },
192+ & controller.ApisixPluginConfigReconciler {
193+ Client : mgr .GetClient (),
194+ Scheme : mgr .GetScheme (),
195+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixPluginConfig" ),
196+ Updater : updater ,
197+ },
198+ & controller.ApisixTlsReconciler {
199+ Client : mgr .GetClient (),
200+ Scheme : mgr .GetScheme (),
201+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixTls" ),
202+ Provider : pro ,
203+ Updater : updater ,
204+ Readier : readier ,
205+ },
206+ & controller.ApisixUpstreamReconciler {
207+ Client : mgr .GetClient (),
208+ Scheme : mgr .GetScheme (),
209+ Log : ctrl .LoggerFrom (ctx ).WithName ("controllers" ).WithName ("ApisixUpstream" ),
210+ Updater : updater ,
211+ },
212+ }... )
230213
231214 setupLog .Info ("Controllers setup completed" , "total_controllers" , len (controllers ))
232215 return controllers , nil
0 commit comments