Skip to content

Commit b2c81ae

Browse files
author
Mengqi Yu
committed
✨ add a flag for the leader elction feature
The leader election feature is disabled when running locally using `make run`, while it is enabled by default when running in a k8s cluster.
1 parent deb65f3 commit b2c81ae

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

pkg/scaffold/v2/main.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -140,15 +140,18 @@ func init() {
140140
141141
func main() {
142142
var metricsAddr string
143+
var enableLeaderElection bool
143144
flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
145+
flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
146+
"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
144147
flag.Parse()
145148
146149
ctrl.SetLogger(zap.Logger(true))
147150
148151
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
149-
Scheme: scheme,
150-
MetricsBindAddress: metricsAddr,
151-
LeaderElection: true,
152+
Scheme: scheme,
153+
MetricsBindAddress: metricsAddr,
154+
LeaderElection: enableLeaderElection,
152155
})
153156
if err != nil {
154157
setupLog.Error(err, "unable to start manager")

pkg/scaffold/v2/manager/config.go

+2
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ spec:
6767
containers:
6868
- command:
6969
- /manager
70+
args:
71+
- --enable-leader-election
7072
image: {{ .Image }}
7173
name: manager
7274
resources:

testdata/project-v2/config/manager/manager.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ spec:
2525
containers:
2626
- command:
2727
- /manager
28+
args:
29+
- --enable-leader-election
2830
image: controller:latest
2931
name: manager
3032
resources:

testdata/project-v2/main.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,18 @@ func init() {
4444

4545
func main() {
4646
var metricsAddr string
47+
var enableLeaderElection bool
4748
flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
49+
flag.BoolVar(&enableLeaderElection, "enable-leader-election", false,
50+
"Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.")
4851
flag.Parse()
4952

5053
ctrl.SetLogger(zap.Logger(true))
5154

5255
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
5356
Scheme: scheme,
5457
MetricsBindAddress: metricsAddr,
55-
LeaderElection: true,
58+
LeaderElection: enableLeaderElection,
5659
})
5760
if err != nil {
5861
setupLog.Error(err, "unable to start manager")

0 commit comments

Comments
 (0)