func setupReconcilers()

in manager/main.go [169:265]


func setupReconcilers(ctx context.Context, setupLog logr.Logger, mgr ctrl.Manager) closable {
	setupLog.Info("Reading CAPI providers")
	providers, err := clusterapi.GetProviders(ctx, mgr.GetAPIReader())
	if err != nil {
		setupLog.Error(err, "unable to read installed providers")
		os.Exit(1)
	}

	factory := controllers.NewFactory(ctrl.Log, mgr).
		WithClusterReconciler(
			providers,
		).
		WithVSphereDatacenterReconciler().
		WithSnowMachineConfigReconciler().
		WithNutanixDatacenterReconciler().
		WithCloudStackDatacenterReconciler().
		WithKubeadmControlPlaneReconciler().
		WithMachineDeploymentReconciler().
		WithControlPlaneUpgradeReconciler().
		WithMachineDeploymentUpgradeReconciler().
		WithNodeUpgradeReconciler()

	reconcilers, err := factory.Build(ctx)
	if err != nil {
		setupLog.Error(err, "unable to build reconcilers")
		os.Exit(1)
	}

	failed := false
	setupLog.Info("Setting up cluster controller")
	if err := (reconcilers.ClusterReconciler).SetupWithManager(mgr, setupLog); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.ClusterKind)
		failed = true
	}

	setupLog.Info("Setting up vspheredatacenter controller")
	if err := (reconcilers.VSphereDatacenterReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.VSphereDatacenterKind)
		failed = true
	}

	setupLog.Info("Setting up snowmachineconfig controller")
	if err := (reconcilers.SnowMachineConfigReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.SnowMachineConfigKind)
		failed = true
	}

	setupLog.Info("Setting up nutanixdatacenter controller")
	if err := (reconcilers.NutanixDatacenterReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.NutanixDatacenterKind)
		failed = true
	}

	setupLog.Info("Setting up cloudstackdatacenter controller")
	if err := (reconcilers.CloudStackDatacenterReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.CloudStackDatacenterKind)
		failed = true
	}

	setupLog.Info("Setting up kubeadmcontrolplane controller")
	if err := (reconcilers.KubeadmControlPlaneReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "KubeadmControlPlane")
	}

	setupLog.Info("Setting up machinedeployment controller")
	if err := (reconcilers.MachineDeploymentReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "MachineDeployment")
		failed = true
	}

	setupLog.Info("Setting up controlplaneupgrade controller")
	if err := (reconcilers.ControlPlaneUpgradeReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.ControlPlaneUpgradeKind)
		failed = true
	}

	setupLog.Info("Setting up machinedeploymentupgrade controller")
	if err := (reconcilers.MachineDeploymentUpgradeReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.MachineDeploymentUpgradeKind)
		failed = true
	}

	setupLog.Info("Setting up nodeupgrade controller")
	if err := (reconcilers.NodeUpgradeReconciler).SetupWithManager(mgr); err != nil {
		setupLog.Error(err, "unable to create controller", "controller", anywherev1.NodeUpgradeKind)
		failed = true
	}

	if failed {
		if err := factory.Close(ctx); err != nil {
			setupLog.Error(err, "Failed closing controller factory")
		}
		os.Exit(1)
	}

	return factory
}