diff --git a/main.go b/main.go index 19891e757..4bf8e93d1 100644 --- a/main.go +++ b/main.go @@ -110,6 +110,13 @@ func (c *crdsToWatch) String() string { } func main() { + if err := run(); err != nil { + log.Error(err) + os.Exit(1) + } +} + +func run() error { flag.Parse() // If no CRDs are specified, we set default to non-multicluster CRDs if len(crds) == 0 { @@ -199,13 +206,13 @@ func main() { mgr, err := ctrl.NewManager(cfg, managerOptions) if err != nil { - log.Fatal(err) + return err } log.Info("Registering Components.") // Setup Scheme for all resources if err := apiv1.AddToScheme(scheme); err != nil { - log.Fatal(err) + return err } // memberClusterObjectsMap is a map of clusterName -> clusterObject @@ -214,7 +221,7 @@ func main() { if slices.Contains(crds, mongoDBMultiClusterCRDPlural) { memberClustersNames, err := getMemberClusters(ctx, cfg, currentNamespace) if err != nil { - log.Fatal(err) + return err } log.Infof("Watching Member clusters: %s", memberClustersNames) @@ -225,7 +232,7 @@ func main() { memberClusterClients, err := multicluster.CreateMemberClusterClients(memberClustersNames, multicluster.GetKubeConfigPath()) if err != nil { - log.Fatal(err) + return err } // Add the cluster object to the manager corresponding to each member clusters. @@ -253,7 +260,7 @@ func main() { log.Infof("Adding cluster %s to cluster map.", k) memberClusterObjectsMap[k] = cluster if err = mgr.Add(cluster); err != nil { - log.Fatal(err) + return err } } } @@ -261,27 +268,27 @@ func main() { // Setup all Controllers if slices.Contains(crds, mongoDBCRDPlural) { if err := setupMongoDBCRD(ctx, mgr, imageUrls, initDatabaseNonStaticImageVersion, databaseNonStaticImageVersion, forceEnterprise, enableClusterMongoDBRoles, agentDebug, agentDebugImage, memberClusterObjectsMap); err != nil { - log.Fatal(err) + return err } } if slices.Contains(crds, mongoDBOpsManagerCRDPlural) { if err := setupMongoDBOpsManagerCRD(ctx, mgr, memberClusterObjectsMap, imageUrls, initDatabaseNonStaticImageVersion, initOpsManagerImageVersion); err != nil { - log.Fatal(err) + return err } } if slices.Contains(crds, mongoDBUserCRDPlural) { if err := setupMongoDBUserCRD(ctx, mgr, memberClusterObjectsMap); err != nil { - log.Fatal(err) + return err } } if slices.Contains(crds, mongoDBMultiClusterCRDPlural) { if err := setupMongoDBMultiClusterCRD(ctx, mgr, imageUrls, initDatabaseNonStaticImageVersion, databaseNonStaticImageVersion, forceEnterprise, enableClusterMongoDBRoles, agentDebug, agentDebugImage, memberClusterObjectsMap); err != nil { - log.Fatal(err) + return err } } if slices.Contains(crds, mongoDBSearchCRDPlural) { if err := setupMongoDBSearchCRD(ctx, mgr); err != nil { - log.Fatal(err) + return err } } @@ -302,7 +309,7 @@ func main() { env.ReadOrPanic(mcoConstruct.VersionUpgradeHookImageEnv), env.ReadOrPanic(mcoConstruct.ReadinessProbeImageEnv), ); err != nil { - log.Fatal(err) + return err } } @@ -331,9 +338,7 @@ func main() { log.Info("Starting the Cmd.") - if err := mgr.Start(ctx); err != nil { - log.Fatal(err) - } + return mgr.Start(ctx) } func startRootSpan(currentNamespace string, spanIDHex string, traceCtx context.Context) (context.Context, trace.Span) {