Skip to content

Commit 25ffe30

Browse files
fix(e2e): wait for leader election
TestClusterExtensionAfterOLMUpgrade was failing due to increased leader election timeouts, causing reconciliation checks to run before leadership was acquired. This fix ensures the test explicitly waits for leader election logs (`"successfully acquired lease"`) before verifying reconciliation.
1 parent e77c53c commit 25ffe30

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

test/upgrade-e2e/post_upgrade_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,17 @@ 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+
4354
t.Log("Reading logs to make sure that ClusterExtension was reconciled by operator-controller before we update it")
4455
// Make sure that after we upgrade OLM itself we can still reconcile old objects without any changes
4556
logCtx, cancel := context.WithTimeout(ctx, time.Minute)

0 commit comments

Comments
 (0)