@@ -133,7 +133,7 @@ func main() {
133133 ctrl .SetLogger (zap .New (zap .UseFlagOptions (& opts )))
134134
135135 if err := util .InspectCluster (); err != nil {
136- setupLog .Info ( "unable to inspect cluster" )
136+ setupLog .Error ( err , "unable to inspect cluster" )
137137 }
138138
139139 disableHTTP2 := func (c * tls.Config ) {
@@ -198,18 +198,52 @@ func main() {
198198 client = mgr .GetClient ()
199199 }
200200
201- registerComponentOrExit (mgr , console .AddToScheme )
202- registerComponentOrExit (mgr , routev1 .AddToScheme ) // Adding the routev1 api
203- registerComponentOrExit (mgr , operatorsv1 .AddToScheme )
204- registerComponentOrExit (mgr , operatorsv1alpha1 .AddToScheme )
201+ // Setup Scheme for OpenShift Console if available (verified by InspectCluster)
202+ if util .IsConsoleAPIFound () {
203+ registerComponentOrExit (mgr , console .AddToScheme )
204+ }
205+
206+ // Setup Scheme for OpenShift Route if available (verified by InspectCluster)
207+ if util .IsRouteAPIFound () {
208+ registerComponentOrExit (mgr , routev1 .AddToScheme )
209+ }
210+
211+ // Setup Scheme for Prometheus Operator if available (verified by InspectCluster)
212+ if util .IsMonitoringAPIFound () {
213+ registerComponentOrExit (mgr , monitoringv1 .AddToScheme )
214+ }
215+
216+ // Setup Scheme for OLM if available (verified by InspectCluster)
217+ if util .IsOLMAPIFound () {
218+ registerComponentOrExit (mgr , operatorsv1 .AddToScheme )
219+ registerComponentOrExit (mgr , operatorsv1alpha1 .AddToScheme )
220+ }
221+
205222 registerComponentOrExit (mgr , argov1alpha1api .AddToScheme )
206223 registerComponentOrExit (mgr , argov1beta1api .AddToScheme )
207- registerComponentOrExit (mgr , configv1 .AddToScheme )
208- registerComponentOrExit (mgr , monitoringv1 .AddToScheme )
224+
225+ // Setup Scheme for OpenShift Config if available
226+ if util .IsConfigAPIFound () {
227+ registerComponentOrExit (mgr , configv1 .AddToScheme )
228+ }
229+
209230 registerComponentOrExit (mgr , rolloutManagerApi .AddToScheme )
210- registerComponentOrExit (mgr , templatev1 .AddToScheme )
211- registerComponentOrExit (mgr , appsv1 .AddToScheme )
212- registerComponentOrExit (mgr , oauthv1 .AddToScheme )
231+
232+ // Setup Scheme for OpenShift Template if available (verified by InspectCluster)
233+ if util .IsTemplateAPIFound () {
234+ registerComponentOrExit (mgr , templatev1 .AddToScheme )
235+ }
236+
237+ // Setup Scheme for OpenShift Apps if available (verified by InspectCluster)
238+ if util .IsAppsAPIFound () {
239+ registerComponentOrExit (mgr , appsv1 .AddToScheme )
240+ }
241+
242+ // Setup Scheme for OpenShift OAuth if available (verified by InspectCluster)
243+ if util .IsOAuthAPIFound () {
244+ registerComponentOrExit (mgr , oauthv1 .AddToScheme )
245+ }
246+
213247 registerComponentOrExit (mgr , crdv1 .AddToScheme )
214248
215249 // Start webhook only if ENABLE_CONVERSION_WEBHOOK is set
@@ -229,21 +263,30 @@ func main() {
229263 os .Exit (1 )
230264 }
231265
232- if err = (& controllers.ReconcileArgoCDRoute {
233- Client : client ,
234- Scheme : mgr .GetScheme (),
235- }).SetupWithManager (mgr ); err != nil {
236- setupLog .Error (err , "unable to create controller" , "controller" , "Argo CD route" )
237- os .Exit (1 )
266+ if util .IsRouteAPIFound () {
267+ if err = (& controllers.ReconcileArgoCDRoute {
268+ Client : client ,
269+ Scheme : mgr .GetScheme (),
270+ }).SetupWithManager (mgr ); err != nil {
271+ setupLog .Error (err , "unable to create controller" , "controller" , "Argo CD route" )
272+ os .Exit (1 )
273+ }
274+ } else {
275+ setupLog .Info ("Route API not found, skipping ReconcileArgoCDRoute controller setup" )
238276 }
239277
240- if err = (& controllers.ArgoCDMetricsReconciler {
241- Client : client ,
242- Scheme : mgr .GetScheme (),
243- }).SetupWithManager (mgr ); err != nil {
244- setupLog .Error (err , "unable to create controller" , "controller" , "Argo CD metrics" )
245- os .Exit (1 )
278+ if util .IsMonitoringAPIFound () {
279+ if err = (& controllers.ArgoCDMetricsReconciler {
280+ Client : client ,
281+ Scheme : mgr .GetScheme (),
282+ }).SetupWithManager (mgr ); err != nil {
283+ setupLog .Error (err , "unable to create controller" , "controller" , "Argo CD metrics" )
284+ os .Exit (1 )
285+ }
286+ } else {
287+ setupLog .Info ("Monitoring API not found, skipping Argo CD metrics controller setup" )
246288 }
289+
247290 // Check the label selector format eg. "foo=bar"
248291 if _ , err := labels .Parse (labelSelectorFlag ); err != nil {
249292 setupLog .Error (err , "error parsing the labelSelector '%s'." , labelSelectorFlag )
0 commit comments