X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=certServiceK8sExternalProvider%2Fmain.go;h=9d1d7eb58ffa201f920cfa14eb29b2177f69452a;hb=12594ee752b79605c61ff019fdeb471bf7ca4058;hp=ed4e5b89a85c6fd0c87f641872c09730f1140164;hpb=c8631390d51ad051dbca5baee6e4de56897dc18b;p=oom%2Fplatform%2Fcert-service.git diff --git a/certServiceK8sExternalProvider/main.go b/certServiceK8sExternalProvider/main.go index ed4e5b89..9d1d7eb5 100644 --- a/certServiceK8sExternalProvider/main.go +++ b/certServiceK8sExternalProvider/main.go @@ -23,87 +23,129 @@ * ============LICENSE_END========================================================= */ - package main import ( "flag" "fmt" - certmanager "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1alpha2" + "os" + + certmanager "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1" "k8s.io/apimachinery/pkg/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" "k8s.io/utils/clock" - certserviceapi "onap.org/oom-certservice/k8s-external-provider/src/api" - controllers "onap.org/oom-certservice/k8s-external-provider/src/certservice-controller" - "os" ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/log/zap" + "sigs.k8s.io/controller-runtime/pkg/manager" + + app "onap.org/oom-certservice/k8s-external-provider/src" + certserviceapi "onap.org/oom-certservice/k8s-external-provider/src/cmpv2api" + controllers "onap.org/oom-certservice/k8s-external-provider/src/cmpv2controller" + "onap.org/oom-certservice/k8s-external-provider/src/cmpv2provisioner" + "onap.org/oom-certservice/k8s-external-provider/src/leveledlogger" ) var ( scheme = runtime.NewScheme() - setupLog = ctrl.Log.WithName("setup") + setupLog leveledlogger.Logger ) func init() { _ = clientgoscheme.AddToScheme(scheme) _ = certmanager.AddToScheme(scheme) _ = certserviceapi.AddToScheme(scheme) + setupLog = leveledlogger.GetLogger() + + ctrl.SetLogger(setupLog.Log) } func main() { + printVersionInfo() + + metricsAddr, logLevel, enableLeaderElection := parseInputArguments() + + leveledlogger.SetLogLevel(logLevel) + + manager := createControllerManager(metricsAddr, enableLeaderElection) + + registerCMPv2IssuerController(manager) + registerCertificateRequestController(manager) + + startControllerManager(manager) + + setupLog.Info("Application is up and running.") +} + +func printVersionInfo() { fmt.Println() - fmt.Println(" *** Cert Service Provider v1.0.0 ***") + fmt.Println(" *** CMPv2 Provider v1.0.0 ***") fmt.Println() +} - setupLog.Info("Parsing arguments...") +func parseInputArguments() (string, string, bool) { + setupLog.Info("Parsing input arguments...") var metricsAddr string + var logLevel string var enableLeaderElection bool flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.") + flag.StringVar(&logLevel, "log-level", "debug", "Min. level for logs visibility. One of: debug, info, warn, error") flag.BoolVar(&enableLeaderElection, "enable-leader-election", false, "Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.") flag.Parse() + return metricsAddr, logLevel, enableLeaderElection +} - ctrl.SetLogger(zap.New(zap.UseDevMode(true))) +func startControllerManager(manager manager.Manager) { + setupLog.Info("Starting CMPv2 controller manager...") + if err := manager.Start(ctrl.SetupSignalHandler()); err != nil { + exit(app.EXCEPTION_WHILE_RUNNING_CONTROLLER_MANAGER, err) + } +} - setupLog.Info("Creating k8s Manager...") - mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ +func createControllerManager(metricsAddr string, enableLeaderElection bool) manager.Manager { + setupLog.Info("Creating CMPv2 controller manager...") + manager, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: scheme, MetricsBindAddress: metricsAddr, LeaderElection: enableLeaderElection, }) if err != nil { - setupLog.Error(err, "unable to start manager") - os.Exit(1) + exit(app.FAILED_TO_CREATE_CONTROLLER_MANAGER, err) } + return manager +} - setupLog.Info("Registering CertServiceIssuerReconciler...") - if err = (&controllers.CertServiceIssuerReconciler{ - Client: mgr.GetClient(), - Log: ctrl.Log.WithName("controllers").WithName("CertServiceIssuer"), - Clock: clock.RealClock{}, - Recorder: mgr.GetEventRecorderFor("certservice-issuer-controller"), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "CertServiceIssuer") - os.Exit(1) - } +func registerCMPv2IssuerController(manager manager.Manager) { + setupLog.Info("Registering CMPv2IssuerController...") + + err := (&controllers.CMPv2IssuerController{ + Client: manager.GetClient(), + Log: leveledlogger.GetLoggerWithValues("controllers", "CMPv2Issuer"), + Clock: clock.RealClock{}, + Recorder: manager.GetEventRecorderFor("cmpv2-issuer-controller"), + ProvisionerFactory: &cmpv2provisioner.ProvisionerFactoryImpl{}, + }).SetupWithManager(manager) - setupLog.Info("Registering CertificateRequestReconciler...") - if err = (&controllers.CertificateRequestReconciler{ - Client: mgr.GetClient(), - Log: ctrl.Log.WithName("controllers").WithName("CertificateRequest"), - Recorder: mgr.GetEventRecorderFor("certificaterequests-controller"), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "CertificateRequest") - os.Exit(1) + if err != nil { + exit(app.FAILED_TO_REGISTER_CMPv2_ISSUER_CONTROLLER, err) } +} + +func registerCertificateRequestController(manager manager.Manager) { + setupLog.Info("Registering CertificateRequestController...") + + err := (&controllers.CertificateRequestController{ + Client: manager.GetClient(), + Log: leveledlogger.GetLoggerWithValues("controllers", "CertificateRequest"), + Recorder: manager.GetEventRecorderFor("certificate-requests-controller"), + }).SetupWithManager(manager) - setupLog.Info("Starting k8s manager...") - if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { - setupLog.Error(err, "problem running manager") - os.Exit(1) + if err != nil { + exit(app.FAILED_TO_REGISTER_CERT_REQUEST_CONTROLLER, err) } - setupLog.Info("Application is up and running.") +} +func exit(exitCode app.ExitCode, err error) { + setupLog.Error(err, exitCode.Message) + os.Exit(exitCode.Code) }