diff --git a/cmd/main.go b/cmd/main.go index 9785c051f..c39628355 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -9,54 +9,41 @@ import ( "syscall" "github.com/zalando-incubator/postgres-operator/pkg/controller" - "github.com/zalando-incubator/postgres-operator/pkg/spec" "github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil" ) var ( - KubeConfigFile string - podNamespace string - configMapName spec.NamespacedName - OutOfCluster bool - noTeamsAPI bool - noDatabaseAccess bool - version string + KubeConfigFile string + OutOfCluster bool + version string + + config controller.Config ) func init() { flag.StringVar(&KubeConfigFile, "kubeconfig", "", "Path to kubeconfig file with authorization and master location information.") flag.BoolVar(&OutOfCluster, "outofcluster", false, "Whether the operator runs in- our outside of the Kubernetes cluster.") - flag.BoolVar(&noDatabaseAccess, "nodatabaseaccess", false, "Disable all access to the database from the operator side.") - flag.BoolVar(&noTeamsAPI, "noteamsapi", false, "Disable all access to the teams API") + flag.BoolVar(&config.NoDatabaseAccess, "nodatabaseaccess", false, "Disable all access to the database from the operator side.") + flag.BoolVar(&config.NoTeamsAPI, "noteamsapi", false, "Disable all access to the teams API") flag.Parse() - podNamespace = os.Getenv("MY_POD_NAMESPACE") - if podNamespace == "" { - podNamespace = "default" + config.Namespace = os.Getenv("MY_POD_NAMESPACE") + if config.Namespace == "" { + config.Namespace = "default" } configMap := os.Getenv("CONFIG_MAP_NAME") if configMap != "" { - configMapName.Decode(configMap) - } -} - -func ControllerConfig() *controller.Config { - restConfig, err := k8sutil.RestConfig(KubeConfigFile, OutOfCluster) - if err != nil { - log.Fatalf("couldn't get REST config: %v", err) - } - - return &controller.Config{ - RestConfig: restConfig, - NoDatabaseAccess: noDatabaseAccess, - NoTeamsAPI: noTeamsAPI, - ConfigMapName: configMapName, - Namespace: podNamespace, + err := config.ConfigMapName.Decode(configMap) + if err != nil { + log.Fatalf("incorrect config map name") + } } } func main() { + var err error + log.SetOutput(os.Stdout) log.Printf("Spilo operator %s\n", version) @@ -66,7 +53,13 @@ func main() { wg := &sync.WaitGroup{} // Goroutines can add themselves to this to be waited on - c := controller.New(ControllerConfig()) + config.RestConfig, err = k8sutil.RestConfig(KubeConfigFile, OutOfCluster) + if err != nil { + log.Fatalf("couldn't get REST config: %v", err) + } + + c := controller.New(&config) + c.Run(stop, wg) sig := <-sigs