diff options
Diffstat (limited to 'certServiceK8sExternalProvider/main.go')
-rw-r--r-- | certServiceK8sExternalProvider/main.go | 103 |
1 files changed, 94 insertions, 9 deletions
diff --git a/certServiceK8sExternalProvider/main.go b/certServiceK8sExternalProvider/main.go index 77ede105..ed4e5b89 100644 --- a/certServiceK8sExternalProvider/main.go +++ b/certServiceK8sExternalProvider/main.go @@ -1,24 +1,109 @@ +/* + * ============LICENSE_START======================================================= + * oom-certservice-k8s-external-provider + * ================================================================================ + * Copyright (c) 2019 Smallstep Labs, Inc. + * Modifications copyright (C) 2020 Nokia. All rights reserved. + * ================================================================================ + * This source code was copied from the following git repository: + * https://github.com/smallstep/step-issuer + * The source code was modified for usage in the ONAP project. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + + package main import ( + "flag" "fmt" - "github.com/levigross/grequests" - "log" - certservice_provisioner "onap.org/oom-certservice/k8s-external-provider/src/certservice-provisioner" + certmanager "github.com/jetstack/cert-manager/pkg/apis/certmanager/v1alpha2" + "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" +) + +var ( + scheme = runtime.NewScheme() + setupLog = ctrl.Log.WithName("setup") ) +func init() { + _ = clientgoscheme.AddToScheme(scheme) + _ = certmanager.AddToScheme(scheme) + _ = certserviceapi.AddToScheme(scheme) +} + func main() { - fmt.Println(" *** Hello World Golang App ***") + fmt.Println() + fmt.Println(" *** Cert Service Provider v1.0.0 ***") fmt.Println() - resp, err := grequests.Get("http://jenkins.onap.org/", nil) + setupLog.Info("Parsing arguments...") + var metricsAddr string + var enableLeaderElection bool + flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.") + 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() + ctrl.SetLogger(zap.New(zap.UseDevMode(true))) + + setupLog.Info("Creating k8s Manager...") + mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ + Scheme: scheme, + MetricsBindAddress: metricsAddr, + LeaderElection: enableLeaderElection, + }) if err != nil { - log.Fatalln("Unable to make request: ", err) + setupLog.Error(err, "unable to start manager") + os.Exit(1) + } + + 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) } - fmt.Println("Checking if jenkins.onap.org is reachable:", resp.StatusCode) + 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) + } + + setupLog.Info("Starting k8s manager...") + if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil { + setupLog.Error(err, "problem running manager") + os.Exit(1) + } + setupLog.Info("Application is up and running.") - fmt.Println("Signing certificate...") - certservice_provisioner.SignCertificate() } |