Skip to content

Commit d7c9458

Browse files
authored
Merge pull request #849 from SchSeba/remove_leader_election
Remove leader election for the operator
2 parents 9ddf872 + ca3bee2 commit d7c9458

File tree

5 files changed

+15
-140
lines changed

5 files changed

+15
-140
lines changed

config/manager/manager.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ spec:
1717
matchLabels:
1818
control-plane: controller-manager
1919
replicas: 1
20+
strategy:
21+
type: Recreate
2022
template:
2123
metadata:
2224
labels:
@@ -29,8 +31,6 @@ spec:
2931
containers:
3032
- command:
3133
- /manager
32-
args:
33-
- --leader-elect
3434
image: controller:latest
3535
name: manager
3636
securityContext:

deploy/operator.yaml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ spec:
77
selector:
88
matchLabels:
99
name: sriov-network-operator
10-
updateStrategy:
11-
type: RollingUpdate
12-
rollingUpdate:
13-
maxUnavailable: 33%
10+
strategy:
11+
type: Recreate
1412
template:
1513
metadata:
1614
labels:
@@ -51,8 +49,6 @@ spec:
5149
image: $SRIOV_NETWORK_OPERATOR_IMAGE
5250
command:
5351
- sriov-network-operator
54-
args:
55-
- --leader-elect=$OPERATOR_LEADER_ELECTION_ENABLE
5652
resources:
5753
requests:
5854
cpu: 100m

deployment/sriov-network-operator-chart/templates/operator.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@ spec:
1010
matchLabels:
1111
name: sriov-network-operator
1212
strategy:
13-
type: RollingUpdate
14-
rollingUpdate:
15-
maxUnavailable: 33%
13+
type: Recreate
1614
template:
1715
metadata:
1816
annotations:

main.go

Lines changed: 10 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,6 @@ import (
4848
sriovnetworkv1 "github.com/k8snetworkplumbingwg/sriov-network-operator/api/v1"
4949
"github.com/k8snetworkplumbingwg/sriov-network-operator/controllers"
5050
"github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/featuregate"
51-
"github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/leaderelection"
52-
53-
"github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/consts"
5451
snolog "github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/log"
5552
"github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/platforms"
5653
"github.com/k8snetworkplumbingwg/sriov-network-operator/pkg/utils"
@@ -75,69 +72,43 @@ func init() {
7572

7673
func main() {
7774
var metricsAddr string
78-
var enableLeaderElection bool
7975
var probeAddr string
8076

8177
flag.StringVar(&metricsAddr, "metrics-bind-address", ":8080", "The address the metric endpoint binds to.")
8278
flag.StringVar(&probeAddr, "health-probe-bind-address", ":8081", "The address the probe endpoint binds to.")
83-
flag.BoolVar(&enableLeaderElection, "leader-elect", false,
84-
"Enable leader election for controller manager. "+
85-
"Enabling this will ensure there is only one active controller manager.")
79+
8680
snolog.BindFlags(flag.CommandLine)
8781
flag.Parse()
8882
snolog.InitLog()
8983

9084
restConfig := ctrl.GetConfigOrDie()
9185

92-
kubeClient, err := client.New(restConfig, client.Options{Scheme: scheme})
93-
if err != nil {
94-
setupLog.Error(err, "couldn't create client")
95-
os.Exit(1)
96-
}
97-
9886
if vars.ResourcePrefix == "" {
9987
setupLog.Error(nil, "RESOURCE_PREFIX environment variable can't be empty")
10088
os.Exit(1)
10189
}
10290

103-
le := leaderelection.GetLeaderElectionConfig(kubeClient, enableLeaderElection)
104-
105-
leaderElectionMgr, err := ctrl.NewManager(restConfig, ctrl.Options{
106-
Scheme: scheme,
107-
HealthProbeBindAddress: probeAddr,
108-
Metrics: server.Options{BindAddress: "0"},
109-
LeaderElection: enableLeaderElection,
110-
LeaseDuration: &le.LeaseDuration,
111-
LeaderElectionReleaseOnCancel: true,
112-
RenewDeadline: &le.RenewDeadline,
113-
RetryPeriod: &le.RetryPeriod,
114-
LeaderElectionID: consts.LeaderElectionID,
91+
mgr, err := ctrl.NewManager(restConfig, ctrl.Options{
92+
Scheme: scheme,
93+
HealthProbeBindAddress: probeAddr,
94+
Metrics: server.Options{BindAddress: metricsAddr},
95+
WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}),
96+
Cache: cache.Options{DefaultNamespaces: map[string]cache.Config{vars.Namespace: {}}},
11597
})
11698
if err != nil {
117-
setupLog.Error(err, "unable to start leader election manager")
99+
setupLog.Error(err, "unable to start manager")
118100
os.Exit(1)
119101
}
120102

121-
if err := leaderElectionMgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {
103+
if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {
122104
setupLog.Error(err, "unable to set up health check")
123105
os.Exit(1)
124106
}
125-
if err := leaderElectionMgr.AddReadyzCheck("readyz", healthz.Ping); err != nil {
107+
if err := mgr.AddReadyzCheck("readyz", healthz.Ping); err != nil {
126108
setupLog.Error(err, "unable to set up ready check")
127109
os.Exit(1)
128110
}
129111

130-
mgr, err := ctrl.NewManager(restConfig, ctrl.Options{
131-
Scheme: scheme,
132-
Metrics: server.Options{BindAddress: metricsAddr},
133-
WebhookServer: webhook.NewServer(webhook.Options{Port: 9443}),
134-
Cache: cache.Options{DefaultNamespaces: map[string]cache.Config{vars.Namespace: {}}},
135-
})
136-
if err != nil {
137-
setupLog.Error(err, "unable to start manager")
138-
os.Exit(1)
139-
}
140-
141112
mgrGlobal, err := ctrl.NewManager(restConfig, ctrl.Options{
142113
Scheme: scheme,
143114
Metrics: server.Options{BindAddress: "0"},
@@ -267,22 +238,6 @@ func main() {
267238
}
268239
// +kubebuilder:scaffold:builder
269240

270-
leaderElectionErr := make(chan error)
271-
leaderElectionContext, cancelLeaderElection := context.WithCancel(context.Background())
272-
go func() {
273-
setupLog.Info("starting leader election manager")
274-
leaderElectionErr <- leaderElectionMgr.Start(leaderElectionContext)
275-
}()
276-
277-
select {
278-
case <-leaderElectionMgr.Elected():
279-
case err := <-leaderElectionErr:
280-
setupLog.Error(err, "Leader Election Manager error")
281-
os.Exit(1)
282-
}
283-
284-
setupLog.Info("acquired lease")
285-
286241
stopSignalCh := ctrl.SetupSignalHandler()
287242

288243
globalManagerErr := make(chan error)
@@ -303,50 +258,26 @@ func main() {
303258
// Wait for a stop signal
304259
case <-stopSignalCh.Done():
305260
setupLog.Info("Stop signal received")
306-
307261
globalManagerCancel()
308262
namespacedManagerCancel()
309263
<-globalManagerErr
310264
<-namespacedManagerErr
311-
312265
utils.Shutdown()
313266

314-
cancelLeaderElection()
315-
<-leaderElectionErr
316-
317-
case err := <-leaderElectionErr:
318-
setupLog.Error(err, "Leader Election Manager error")
319-
globalManagerCancel()
320-
namespacedManagerCancel()
321-
<-globalManagerErr
322-
<-namespacedManagerErr
323-
324-
os.Exit(1)
325-
326267
case err := <-globalManagerErr:
327268
setupLog.Error(err, "Global Manager error")
328-
329269
namespacedManagerCancel()
330270
<-namespacedManagerErr
331-
332271
utils.Shutdown()
333272

334-
cancelLeaderElection()
335-
<-leaderElectionErr
336-
337273
os.Exit(1)
338274

339275
case err := <-namespacedManagerErr:
340276
setupLog.Error(err, "Namsepaced Manager error")
341-
342277
globalManagerCancel()
343278
<-globalManagerErr
344-
345279
utils.Shutdown()
346280

347-
cancelLeaderElection()
348-
<-leaderElectionErr
349-
350281
os.Exit(1)
351282
}
352283
}

pkg/leaderelection/leaderelection.go

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)