func main()

in main.go [52:176]


func main() {
	var metricsAddr string
	var enableLeaderElection bool
	var namespace string
	flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
	flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
		"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
	flag.StringVar(&namespace, "namespace", "", "The namespace in which the manager controls and reconciles resources. Leave it blank to watch all namespaces.")
	flag.Parse()

	ctrl.SetLogger(zap.Logger(true))

	mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
		Scheme:             scheme,
		MetricsBindAddress: metricsAddr,
		LeaderElection:     enableLeaderElection,
		Namespace:          namespace,
	})
	if err != nil {
		setupLog.Error(err, "unable to start manager")
		os.Exit(1)
	}

	ctrl.Log.WithName("Starting manager in the namespace: ").Info(namespace)

	const jobPollInterval = "5s"

	err = trainingjob.
		NewTrainingJobReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("TrainingJob"),
			parseDurationOrPanic(jobPollInterval)).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "TrainingJob")
		os.Exit(1)
	}

	err = processingjob.
		NewProcessingJobReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("ProcessingJob"),
			parseDurationOrPanic(jobPollInterval)).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "ProcessingJob")
		os.Exit(1)
	}

	err = hyperparametertuningjob.
		NewHyperparameterTuningJobReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("HyperparameterTuningJobReconciler"),
			parseDurationOrPanic(jobPollInterval)).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "HyperparameterTuningJobReconciler")
		os.Exit(1)
	}

	err = hosting.
		NewHostingDeploymentReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("HostingDeployment"),
			parseDurationOrPanic("5s")).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "HostingDeployment")
		os.Exit(1)
	}

	err = model.
		NewModelReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("Model"),
			// TODO change to 1m for release. 5s is only to catch bugs during development.
			parseDurationOrPanic("5s")).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "Model")
		os.Exit(1)
	}

	err = endpointconfig.
		NewEndpointConfigReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("EndpointConfig"),
			// TODO change to 1m for release. 5s is only to catch bugs during development.
			parseDurationOrPanic("5s")).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "EndpointConfig")
		os.Exit(1)
	}

	err = batchtransformjob.
		NewBatchTransformJobReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("BatchTransformJob"),
			parseDurationOrPanic(jobPollInterval)).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "BatchTransformJob")
		os.Exit(1)
	}

	err = hostingautoscalingpolicy.
		NewHostingAutoscalingPolicyReconciler(
			mgr.GetClient(),
			ctrl.Log.WithName("controllers").WithName("HostingAutoscalingPolicy"),
			parseDurationOrPanic(jobPollInterval)).
		SetupWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "HostingAutoscalingPolicy")
		os.Exit(1)
	}

	// +kubebuilder:scaffold:builder

	setupLog.Info("starting manager")
	if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
		setupLog.Error(err, "problem running manager")
		os.Exit(1)
	}
}