From 8b7552cec19c4e95ae7818315bb108d13d12527b Mon Sep 17 00:00:00 2001 From: Maartje Eyskens Date: Mon, 17 Aug 2020 11:16:48 +0200 Subject: [PATCH] Refactor the cainjector to only have 1 leader election Signed-off-by: Maartje Eyskens --- cmd/cainjector/app/start.go | 50 +++++-------------------------------- 1 file changed, 6 insertions(+), 44 deletions(-) diff --git a/cmd/cainjector/app/start.go b/cmd/cainjector/app/start.go index 0abf63c05..17291532b 100644 --- a/cmd/cainjector/app/start.go +++ b/cmd/cainjector/app/start.go @@ -98,20 +98,6 @@ servers and webhook servers.`, } func (o InjectorControllerOptions) RunInjectorController(stopCh <-chan struct{}) { - eitherStopCh := make(chan struct{}) - go func() { - defer close(eitherStopCh) - o.runCertificateBasedInjector(stopCh) - }() - go func() { - defer close(eitherStopCh) - o.runSecretBasedInjector(stopCh) - }() - - <-eitherStopCh -} - -func (o InjectorControllerOptions) runCertificateBasedInjector(stopCh <-chan struct{}) { mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: api.Scheme, Namespace: o.Namespace, @@ -126,10 +112,13 @@ func (o InjectorControllerOptions) runCertificateBasedInjector(stopCh <-chan str os.Exit(1) } - // TODO(directxman12): enabled controllers for separate injectors? - if err := cainjector.RegisterCertificateBased(mgr); err != nil { + err = cainjector.RegisterCertificateBased(mgr) + if err != nil { + o.log.Error(err, "error registering controllers") + } + err = cainjector.RegisterSecretBased(mgr) + if err != nil { o.log.Error(err, "error registering controllers") - os.Exit(1) } if err := mgr.Start(stopCh); err != nil { @@ -137,30 +126,3 @@ func (o InjectorControllerOptions) runCertificateBasedInjector(stopCh <-chan str os.Exit(1) } } - -func (o InjectorControllerOptions) runSecretBasedInjector(stopCh <-chan struct{}) { - mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: api.Scheme, - Namespace: o.Namespace, - LeaderElection: o.LeaderElect, - LeaderElectionNamespace: o.LeaderElectionNamespace, - LeaderElectionID: "cert-manager-cainjector-leader-election-core", - MetricsBindAddress: "0", - }) - - if err != nil { - o.log.Error(err, "error creating core-only manager") - os.Exit(1) - } - - // TODO(directxman12): enabled controllers for separate injectors? - if err := cainjector.RegisterSecretBased(mgr); err != nil { - o.log.Error(err, "error registering core-only controllers") - os.Exit(1) - } - - if err := mgr.Start(stopCh); err != nil { - o.log.Error(err, "error running core-only manager") - os.Exit(1) - } -}