v2/cmd/controller/main.go (32 lines of code) (raw):
/*
Copyright (c) Microsoft Corporation.
Licensed under the MIT license.
*/
package main
import (
"flag"
"os"
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
ctrl "sigs.k8s.io/controller-runtime"
"github.com/Azure/azure-service-operator/v2/cmd/controller/app"
"github.com/Azure/azure-service-operator/v2/cmd/controller/logging"
"github.com/Azure/azure-service-operator/v2/internal/version"
)
func main() {
// Set up to parse command line flags
exeName := os.Args[0] + " " + version.BuildVersion
flagSet := flag.NewFlagSet(exeName, flag.ExitOnError)
// Create a temporary logger for while we get set up
log := logging.Create(&logging.Config{})
ctx := ctrl.SetupSignalHandler()
// Add application and logging flags
appFlags := app.InitFlags(flagSet)
logFlags := logging.InitFlags(flagSet)
err := flagSet.Parse(os.Args[1:])
if err != nil {
log.Error(err, "failed to parse cmdline flags")
os.Exit(1)
}
// Replace the logger with a configured one
log = logging.Create(logFlags)
ctrl.SetLogger(log)
log.Info("Launching with flags", "flags", appFlags.String())
mgr := app.SetupControllerManager(ctx, log, appFlags)
log.Info("starting manager")
if err = mgr.Start(ctx); err != nil {
log.Error(err, "failed to start manager")
os.Exit(1)
}
}