From 80398559cead4290cf12ddd19d1d5f2d8d0daf8a Mon Sep 17 00:00:00 2001 From: Grant Spence Date: Tue, 23 Jun 2026 15:44:39 -0400 Subject: [PATCH] Fix isNoOLMFeatureGateEnabled to check only the current cluster version The FeatureGate CR status.featureGates contains entries for each cluster version. After an upgrade, entries for both the old and new versions exist. isNoOLMFeatureGateEnabled was iterating all version entries, so it could incorrectly return true by finding the gate enabled in a pre-upgrade version's entry, even though the current version has it disabled. This caused the e2e-upgrade-out-of-change test to fail because it expected a sail finalizer that the CIO had already removed during the downgrade path. Fix this by looking up the current cluster version from ClusterVersion status.desired.version and only checking the matching featureGates entry. Co-Authored-By: Claude Opus 4.6 --- test/extended/router/gatewayapicontroller.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/test/extended/router/gatewayapicontroller.go b/test/extended/router/gatewayapicontroller.go index 7406afba767e..d9d127f0cee5 100644 --- a/test/extended/router/gatewayapicontroller.go +++ b/test/extended/router/gatewayapicontroller.go @@ -643,18 +643,28 @@ func isIPv6OrDualStack(oc *exutil.CLI) (bool, error) { } func isNoOLMFeatureGateEnabled(oc *exutil.CLI) (bool, error) { + cv, err := oc.AdminConfigClient().ConfigV1().ClusterVersions().Get(context.TODO(), "version", metav1.GetOptions{}) + if err != nil { + return false, fmt.Errorf("failed to get ClusterVersion: %v", err) + } + currentVersion := cv.Status.Desired.Version + fgs, err := oc.AdminConfigClient().ConfigV1().FeatureGates().Get(context.TODO(), "cluster", metav1.GetOptions{}) if err != nil { return false, fmt.Errorf("failed to get cluster FeatureGates: %v", err) } for _, fg := range fgs.Status.FeatureGates { + if fg.Version != currentVersion { + continue + } for _, enabledFG := range fg.Enabled { if enabledFG.Name == "GatewayAPIWithoutOLM" { - e2e.Logf("GatewayAPIWithoutOLM featuregate is enabled") + e2e.Logf("GatewayAPIWithoutOLM featuregate is enabled for version %s", currentVersion) return true, nil } } } + e2e.Logf("GatewayAPIWithoutOLM featuregate is not enabled for version %s", currentVersion) return false, nil }