From e840e0745960e82e729d59845c9b6da2ee07b3c0 Mon Sep 17 00:00:00 2001 From: Pablo Fontanilla Date: Fri, 20 Mar 2026 17:24:26 +0100 Subject: [PATCH] Bug: IsMicroShiftCluster: log timeout instead of calling Skip from container node IsMicroShiftCluster() calls skipper.Skip() when the API poll times out. When called from a Ginkgo container node context (e.g. InitializeTestFramework during suite setup), Ginkgo v2 panics because Skip() is only valid inside leaf nodes. This crashes the test binary and cascades all remaining tests as failures. Replace the Skip() call with a log message and let the function fall through returning (false, nil). This allows framework initialization to succeed even when the API is unavailable, so that each test's own BeforeEach health checks (e.g. SkipIfClusterIsNotHealthy) can properly skip the test instead of the binary crashing. Co-Authored-By: Claude Opus 4.6 --- test/extended/util/framework.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/extended/util/framework.go b/test/extended/util/framework.go index 7a0681641256..48bf4ac4a4ac 100644 --- a/test/extended/util/framework.go +++ b/test/extended/util/framework.go @@ -2341,8 +2341,7 @@ func IsMicroShiftCluster(kubeClient k8sclient.Interface) (bool, error) { e2e.Logf("IsMicroShiftCluster: error accessing microshift-version configmap: %v", err) return false, nil }); err != nil { - // Timeout accessing the configmap is a precondition failure - skipper.Skip(preconditions.FormatSkipMessage(fmt.Sprintf("microshift-version configmap check timed out after %s: %v", duration, err))) + e2e.Logf("IsMicroShiftCluster: timed out after %s: %v (assuming not MicroShift)", duration, err) } if cm == nil { e2e.Logf("IsMicroShiftCluster: microshift-version configmap not found, not MicroShift")