diff --git a/pkg/plugins/golang/v2/scaffolds/internal/templates/main.go b/pkg/plugins/golang/v2/scaffolds/internal/templates/main.go index c2bd6928d85..988ec621c2a 100644 --- a/pkg/plugins/golang/v2/scaffolds/internal/templates/main.go +++ b/pkg/plugins/golang/v2/scaffolds/internal/templates/main.go @@ -218,13 +218,14 @@ func main() { flag.Parse() ctrl.SetLogger(zap.New(zap.UseDevMode(true))) - + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: scheme, MetricsBindAddress: metricsAddr, Port: 9443, LeaderElection: enableLeaderElection, LeaderElectionID: "{{ hashFNV .Repo }}.{{ .Domain }}", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/pkg/plugins/golang/v3/scaffolds/internal/templates/main.go b/pkg/plugins/golang/v3/scaffolds/internal/templates/main.go index 34d80b4f098..3c1b5738239 100644 --- a/pkg/plugins/golang/v3/scaffolds/internal/templates/main.go +++ b/pkg/plugins/golang/v3/scaffolds/internal/templates/main.go @@ -238,6 +238,7 @@ func main() { ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) {{ if not .ComponentConfig }} + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: scheme, MetricsBindAddress: metricsAddr, @@ -245,6 +246,7 @@ func main() { HealthProbeBindAddress: probeAddr, LeaderElection: enableLeaderElection, LeaderElectionID: "{{ hashFNV .Repo }}.{{ .Domain }}", + LeaderElectionReleaseOnCancel: true, }) {{- else }} var err error diff --git a/testdata/project-v2-addon/main.go b/testdata/project-v2-addon/main.go index 70a31af5643..59aaacb3eb0 100644 --- a/testdata/project-v2-addon/main.go +++ b/testdata/project-v2-addon/main.go @@ -54,13 +54,14 @@ func main() { flag.Parse() ctrl.SetLogger(zap.New(zap.UseDevMode(true))) - + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - LeaderElection: enableLeaderElection, - LeaderElectionID: "3a3badaf.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + LeaderElection: enableLeaderElection, + LeaderElectionID: "3a3badaf.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/testdata/project-v2-multigroup/main.go b/testdata/project-v2-multigroup/main.go index 61478e2f292..ed56efa1b64 100644 --- a/testdata/project-v2-multigroup/main.go +++ b/testdata/project-v2-multigroup/main.go @@ -76,13 +76,14 @@ func main() { flag.Parse() ctrl.SetLogger(zap.New(zap.UseDevMode(true))) - + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - LeaderElection: enableLeaderElection, - LeaderElectionID: "e9b53b87.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + LeaderElection: enableLeaderElection, + LeaderElectionID: "e9b53b87.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/testdata/project-v2/main.go b/testdata/project-v2/main.go index 40f6c91c886..79647b8ba61 100644 --- a/testdata/project-v2/main.go +++ b/testdata/project-v2/main.go @@ -54,13 +54,14 @@ func main() { flag.Parse() ctrl.SetLogger(zap.New(zap.UseDevMode(true))) - + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - LeaderElection: enableLeaderElection, - LeaderElectionID: "dc1d9fac.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + LeaderElection: enableLeaderElection, + LeaderElectionID: "dc1d9fac.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/testdata/project-v3-addon/main.go b/testdata/project-v3-addon/main.go index dc898dab8f1..1a81751350b 100644 --- a/testdata/project-v3-addon/main.go +++ b/testdata/project-v3-addon/main.go @@ -65,13 +65,15 @@ func main() { ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - HealthProbeBindAddress: probeAddr, - LeaderElection: enableLeaderElection, - LeaderElectionID: "52ea9610.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + HealthProbeBindAddress: probeAddr, + LeaderElection: enableLeaderElection, + LeaderElectionID: "52ea9610.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/testdata/project-v3-multigroup/main.go b/testdata/project-v3-multigroup/main.go index aa566237105..02042bb7ed3 100644 --- a/testdata/project-v3-multigroup/main.go +++ b/testdata/project-v3-multigroup/main.go @@ -90,13 +90,15 @@ func main() { ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - HealthProbeBindAddress: probeAddr, - LeaderElection: enableLeaderElection, - LeaderElectionID: "14be1926.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + HealthProbeBindAddress: probeAddr, + LeaderElection: enableLeaderElection, + LeaderElectionID: "14be1926.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/testdata/project-v3-v1beta1/main.go b/testdata/project-v3-v1beta1/main.go index 44ed897a511..e453ef68d73 100644 --- a/testdata/project-v3-v1beta1/main.go +++ b/testdata/project-v3-v1beta1/main.go @@ -65,13 +65,15 @@ func main() { ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - HealthProbeBindAddress: probeAddr, - LeaderElection: enableLeaderElection, - LeaderElectionID: "2eab85d8.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + HealthProbeBindAddress: probeAddr, + LeaderElection: enableLeaderElection, + LeaderElectionID: "2eab85d8.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager") diff --git a/testdata/project-v3/main.go b/testdata/project-v3/main.go index c8f85f0b275..75123b93065 100644 --- a/testdata/project-v3/main.go +++ b/testdata/project-v3/main.go @@ -65,13 +65,15 @@ func main() { ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts))) + // Setting LeaderElectionReleaseOnCancel to true prevents main.go scripts to close when Manager is done and improves the performance of re-election . mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ - Scheme: scheme, - MetricsBindAddress: metricsAddr, - Port: 9443, - HealthProbeBindAddress: probeAddr, - LeaderElection: enableLeaderElection, - LeaderElectionID: "dd1da13f.testproject.org", + Scheme: scheme, + MetricsBindAddress: metricsAddr, + Port: 9443, + HealthProbeBindAddress: probeAddr, + LeaderElection: enableLeaderElection, + LeaderElectionID: "dd1da13f.testproject.org", + LeaderElectionReleaseOnCancel: true, }) if err != nil { setupLog.Error(err, "unable to start manager")