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
}