Skip to content

Commit a008922

Browse files
committed
release leader election lease on manager cancellation
Signed-off-by: Joe Lanford <joe.lanford@gmail.com>
1 parent 9b08aea commit a008922

File tree

4 files changed

+13
-33
lines changed

4 files changed

+13
-33
lines changed

catalogd/cmd/catalogd/main.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,13 @@ func main() {
227227

228228
// Create manager
229229
mgr, err := ctrl.NewManager(cfg, ctrl.Options{
230-
Scheme: scheme,
231-
Metrics: metricsServerOptions,
232-
PprofBindAddress: pprofAddr,
233-
HealthProbeBindAddress: probeAddr,
234-
LeaderElection: enableLeaderElection,
235-
LeaderElectionID: "catalogd-operator-lock",
230+
Scheme: scheme,
231+
Metrics: metricsServerOptions,
232+
PprofBindAddress: pprofAddr,
233+
HealthProbeBindAddress: probeAddr,
234+
LeaderElection: enableLeaderElection,
235+
LeaderElectionID: "catalogd-operator-lock",
236+
LeaderElectionReleaseOnCancel: true,
236237
// Recommended Leader Election values
237238
// https://github.com/openshift/enhancements/blob/61581dcd985130357d6e4b0e72b87ee35394bf6e/CONVENTIONS.md#handling-kube-apiserver-disruption
238239
LeaseDuration: ptr.To(137 * time.Second),

catalogd/test/upgrade/unpack_test.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,6 @@ var _ = Describe("ClusterCatalog Unpacking", func() {
5454
managerPod = managerPods.Items[0]
5555
}).Should(Succeed())
5656

57-
By("Waiting for acquired leader election")
58-
// Average case is under 1 minute but in the worst case: (previous leader crashed)
59-
// we could have LeaseDuration (137s) + RetryPeriod (26s) +/- 163s
60-
leaderCtx, leaderCancel := context.WithTimeout(ctx, 3*time.Minute)
61-
defer leaderCancel()
62-
63-
leaderSubstrings := []string{"successfully acquired lease"}
64-
leaderElected, err := watchPodLogsForSubstring(leaderCtx, &managerPod, "manager", leaderSubstrings...)
65-
Expect(err).To(Succeed())
66-
Expect(leaderElected).To(BeTrue())
67-
6857
By("Reading logs to make sure that ClusterCatalog was reconciled by catalogdv1")
6958
logCtx, cancel := context.WithTimeout(ctx, time.Minute)
7059
defer cancel()

cmd/operator-controller/main.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,12 @@ func main() {
228228
}
229229

230230
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
231-
Scheme: scheme.Scheme,
232-
Metrics: metricsServerOptions,
233-
HealthProbeBindAddress: probeAddr,
234-
LeaderElection: enableLeaderElection,
235-
LeaderElectionID: "9c4404e7.operatorframework.io",
231+
Scheme: scheme.Scheme,
232+
Metrics: metricsServerOptions,
233+
HealthProbeBindAddress: probeAddr,
234+
LeaderElection: enableLeaderElection,
235+
LeaderElectionID: "9c4404e7.operatorframework.io",
236+
LeaderElectionReleaseOnCancel: true,
236237
// Recommended Leader Election values
237238
// https://github.com/openshift/enhancements/blob/61581dcd985130357d6e4b0e72b87ee35394bf6e/CONVENTIONS.md#handling-kube-apiserver-disruption
238239
LeaseDuration: ptr.To(137 * time.Second),

test/upgrade-e2e/post_upgrade_test.go

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,6 @@ func TestClusterExtensionAfterOLMUpgrade(t *testing.T) {
4040
t.Log("Wait for operator-controller deployment to be ready")
4141
managerPod := waitForDeployment(t, ctx, "operator-controller-controller-manager")
4242

43-
t.Log("Wait for acquired leader election")
44-
// Average case is under 1 minute but in the worst case: (previous leader crashed)
45-
// we could have LeaseDuration (137s) + RetryPeriod (26s) +/- 163s
46-
leaderCtx, leaderCancel := context.WithTimeout(ctx, 3*time.Minute)
47-
defer leaderCancel()
48-
49-
leaderSubstrings := []string{"successfully acquired lease"}
50-
leaderElected, err := watchPodLogsForSubstring(leaderCtx, managerPod, "manager", leaderSubstrings...)
51-
require.NoError(t, err)
52-
require.True(t, leaderElected)
53-
5443
t.Log("Reading logs to make sure that ClusterExtension was reconciled by operator-controller before we update it")
5544
// Make sure that after we upgrade OLM itself we can still reconcile old objects without any changes
5645
logCtx, cancel := context.WithTimeout(ctx, time.Minute)

0 commit comments

Comments
 (0)