func SetupManagers()

in internal/controller/setup.go [58:117]


func SetupManagers(mgr manager.Manager, userAgent, defaultProxyImage string) error {
	var err error
	kubeVersion, err := getKubernetesVersion(mgr)
	if err != nil {
		setupLog.Error(err, "unable to get kubernetes version", "controller", "AuthProxyWorkload")
		return err
	}
	setupLog.Info("Kubernetes", "version", kubeVersion.String())

	u := workload.NewUpdater(userAgent, defaultProxyImage, UseSidecar(kubeVersion))

	setupLog.Info("Configuring reconcilers...")

	_, err = NewAuthProxyWorkloadReconciler(mgr, u)
	if err != nil {
		setupLog.Error(err, "unable to create controller", "controller", "AuthProxyWorkload")
		// Kubebuilder won't properly write the contents of this file. It will want
		// to do os.Exit(1) on error here.. But it's a bad idea because it will
		// disrupt the testintegration tests to exit 1. Instead, this should
		// return the error and let the caller deal with it.
		return err
	}

	wh := &cloudsqlapi.AuthProxyWorkload{}
	err = wh.SetupWebhookWithManager(mgr)
	if err != nil {
		setupLog.Error(err, "unable to create webhook", "webhook", "AuthProxyWorkload")
		return err
	}

	//+kubebuilder:scaffold:builder
	// kubebuilder to scaffold additional controller here.
	// When kubebuilder scaffolds a new controller here, please
	// adjust the code so it follows the pattern above.

	err = RegisterPodWebhook(mgr, u)
	if err != nil {
		setupLog.Error(err, "unable to create workload admission webhook controller")
		return err
	}

	// Register the podDeleteController, which will listen for pod changes and
	// delete misconfigured pods that in a waiting or error state.
	_, err = newPodDeleteController(mgr, u)
	if err != nil {
		setupLog.Error(err, "unable to create pod informer")
		return err
	}

	// Add the runnable task that will upgrade the proxy image on workloads with
	// default container image when  the operator first starts.
	err = mgr.Add(&upgradeDefaultProxyOnStartup{c: mgr.GetClient()})
	if err != nil {
		setupLog.Error(err, "unable to start task to check all AuthProxyWorkloads on startup")
		return err
	}

	setupLog.Info("Configuring reconcilers complete.")
	return nil
}