Skip to content

Commit 78c3d22

Browse files
authored
K8SPG-614: Enable leader election (#997)
* Enable leader election. * Make leader election setting configurable. * Fix unit test.
1 parent e923525 commit 78c3d22

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

cmd/postgres-operator/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"sigs.k8s.io/controller-runtime/pkg/manager"
2828

2929
//"github.com/percona/percona-postgresql-operator/internal/controller/pgupgrade"
30-
3130
"github.com/percona/percona-postgresql-operator/internal/controller/pgupgrade"
3231
"github.com/percona/percona-postgresql-operator/internal/controller/postgrescluster"
3332
"github.com/percona/percona-postgresql-operator/internal/controller/runtime"
@@ -106,6 +105,7 @@ func main() {
106105
namespaces,
107106
cfg,
108107
false,
108+
false,
109109
features,
110110
)
111111
assertNoError(err)

percona/controller/pgcluster/controller_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@ var _ = Describe("Watching secrets", Ordered, func() {
484484
Expect(err).NotTo(HaveOccurred())
485485

486486
Expect(err).To(Not(HaveOccurred()))
487-
mgr, err := runtime.CreateRuntimeManager(namespace.Name, cfg, true, gate)
487+
mgr, err := runtime.CreateRuntimeManager(namespace.Name, cfg, true, true, gate)
488488
Expect(err).To(Succeed())
489489
Expect(v2.AddToScheme(mgr.GetScheme())).To(Succeed())
490490

percona/runtime/runtime.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,20 @@ var refreshInterval = 60 * time.Minute
1919

2020
// CreateRuntimeManager does the same thing as `internal/controller/runtime.CreateRuntimeManager`,
2121
// excet it configures the manager to watch multiple namespaces.
22-
func CreateRuntimeManager(namespaces string, config *rest.Config, disableMetrics bool, features feature.MutableGate) (manager.Manager, error) {
22+
func CreateRuntimeManager(namespaces string, config *rest.Config, disableMetrics, disableLeaderElection bool, features feature.MutableGate) (manager.Manager, error) {
2323

2424
options := manager.Options{
2525
Cache: cache.Options{
2626
SyncPeriod: &refreshInterval,
2727
},
28-
Scheme: r.Scheme,
28+
Scheme: r.Scheme,
29+
LeaderElection: disableLeaderElection,
30+
LeaderElectionID: "08db3feb.percona.com",
31+
}
32+
33+
if disableLeaderElection {
34+
options.LeaderElection = false
35+
options.LeaderElectionID = ""
2936
}
3037

3138
options.BaseContext = func() context.Context {

0 commit comments

Comments
 (0)