Uploaded image for project: 'OpenShift Windows Containers'
  1. OpenShift Windows Containers
  2. WINC-1696

Fix OCP-42204: Windows pod with Projected Volume fails in Prow CI

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • None
    • None
    • None
    • None

      Problem

      Test OCP-42204 "Create Windows pod with a Projected Volume" is failing in Prow CI with timeout:

      deployment win\-webserver did not become ready: timed out waiting for the condition
      

      Root Causes

      1. Image Availability Issue:
      The test hardcoded mcr.microsoft.com/windows/servercore:ltsc2022 which is:
      * Available in Jenkins (connected environment - can pull from MCR)
      * NOT available in Prow CI (disconnected environment - uses internal mirror)

      The test fetched primary_windows_container_image from ConfigMap but ignored it, only using it to decide which MCR URL to hardcode.

      2. Lack of Diagnostic Information:
      The waitForDeploymentReady() function waited 5 minutes without providing any diagnostic output about WHY the deployment failed (ImagePullBackOff, CrashLoopBackOff, etc.)

      Solution

      Fix 1: Use Mirrored Image from ConfigMap
      Changed test to use primary_windows_container_image from ConfigMap directly:
      * Jenkins: Uses mcr.microsoft.com/powershell:lts-nanoserver-ltsc2022
      * Prow: Uses mirrored registry path (e.g., registry.build01.ci.openshift.org/.../...)
      * Updated commands: powershell.exepwsh.exe (matches nanoserver image)

      Fix 2: Enhanced Diagnostics
      Improved waitForDeploymentReady() to:
      * Detect ImagePullBackOff → fail after 30s (not 5 min)
      * Detect CrashLoopBackOff → fail immediately
      * Provide comprehensive diagnostics on failure:
      ** Pod status and container states
      ** Pod events (shows image pull errors, scheduling issues)
      ** Deployment describe output

      Files Modified

      • test/extended/winc/winc.go - Use ConfigMap image, change powershell.exe to pwsh.exe
      • test/extended/winc/utils.go - Add fail-fast logic and comprehensive diagnostics to waitForDeploymentReady()

      Testing

      • Build verification: make build
      • Dry-run detection: ./bin/extended-platform-tests run all --dry-run | grep 42204
      • Cluster verification pending

      Benefits

      • Test works in both Jenkins (connected) and Prow (disconnected) environments
      • Faster failure detection (30s vs 5min for image pull errors)
      • Clear diagnostic output shows exact failure reason
      • Aligns with other WINC tests using primary_windows_container_image

              Unassigned Unassigned
              rrasouli Aharon Rasouli
              None
              None
              None
              None
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: