Skip to content

Commit 8ff8f2f

Browse files
committed
fix: review
Signed-off-by: Ashing Zheng <[email protected]>
1 parent 7bf3e46 commit 8ff8f2f

File tree

1 file changed

+84
-101
lines changed

1 file changed

+84
-101
lines changed

internal/manager/controllers.go

Lines changed: 84 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)