Skip to content

Commit

Permalink
✨ add a flag for the leader elction feature
Browse files Browse the repository at this point in the history
The leader election feature is disabled when running locally using `make
run`, while it is enabled by default when running in a k8s cluster.
  • Loading branch information
Mengqi Yu committed Jun 7, 2019
1 parent deb65f3 commit b2c81ae
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 4 deletions.
9 changes: 6 additions & 3 deletions pkg/scaffold/v2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,15 +140,18 @@ func init() {
func main() {
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.Logger(true))
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
MetricsBindAddress: metricsAddr,
LeaderElection: true,
Scheme: scheme,
MetricsBindAddress: metricsAddr,
LeaderElection: enableLeaderElection,
})
if err != nil {
setupLog.Error(err, "unable to start manager")
Expand Down
2 changes: 2 additions & 0 deletions pkg/scaffold/v2/manager/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ spec:
containers:
- command:
- /manager
args:
- --enable-leader-election
image: {{ .Image }}
name: manager
resources:
Expand Down
2 changes: 2 additions & 0 deletions testdata/project-v2/config/manager/manager.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ spec:
containers:
- command:
- /manager
args:
- --enable-leader-election
image: controller:latest
name: manager
resources:
Expand Down
5 changes: 4 additions & 1 deletion testdata/project-v2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,18 @@ func init() {

func main() {
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.Logger(true))

mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
MetricsBindAddress: metricsAddr,
LeaderElection: true,
LeaderElection: enableLeaderElection,
})
if err != nil {
setupLog.Error(err, "unable to start manager")
Expand Down

0 comments on commit b2c81ae

Please sign in to comment.