@@ -168,6 +168,21 @@ jobs:
168168 TEST_START_TIME=$(date -u -d '30 minutes ago' '+%Y-%m-%dT%H:%M:%SZ')
169169 TEST_CONTEXT="${{ matrix.test_label}}_K8s-${{ matrix.k8s_version }}_cache-${{ matrix.cache_enabled }}"
170170
171+ # First, immediately capture any pipeline pods that might still exist
172+ echo "=== IMMEDIATE PIPELINE POD CAPTURE ===" > /tmp/immediate_pod_logs.txt
173+ echo "Timestamp: $(date)" >> /tmp/immediate_pod_logs.txt
174+ echo "Searching for pipeline pods immediately after test failure..." >> /tmp/immediate_pod_logs.txt
175+
176+ # Capture any pipeline/workflow pods that exist right now
177+ kubectl get pods -n $NAMESPACE | grep -E "(pipeline|workflow|producer|consumer)" >> /tmp/immediate_pod_logs.txt 2>&1 || echo "No pipeline pods found" >> /tmp/immediate_pod_logs.txt
178+
179+ # Get logs from any pods matching pipeline patterns
180+ for pod in $(kubectl get pods -n $NAMESPACE -o name 2>/dev/null | grep -E "(pipeline|workflow|producer|consumer)" | sed 's|pod/||'); do
181+ echo "--- Immediate Pod Logs: $pod ---" >> /tmp/immediate_pod_logs.txt
182+ kubectl logs "$pod" -n $NAMESPACE >> /tmp/immediate_pod_logs.txt 2>&1 || echo "No logs for $pod" >> /tmp/immediate_pod_logs.txt
183+ echo "" >> /tmp/immediate_pod_logs.txt
184+ done
185+
171186 # Create enhanced log collection
172187 chmod +x ./.github/resources/scripts/collect-enhanced-logs.sh
173188 ./.github/resources/scripts/collect-enhanced-logs.sh \
@@ -176,6 +191,9 @@ jobs:
176191 --test-context "$TEST_CONTEXT" \
177192 --start-time "$TEST_START_TIME"
178193
194+ # Combine immediate logs with enhanced logs
195+ cat /tmp/immediate_pod_logs.txt >> /tmp/enhanced_failure_logs.txt
196+
179197 # Also collect Ginkgo test output if available
180198 if [ -f "${{ env.E2E_TESTS_DIR }}/reports/junit.xml" ]; then
181199 echo "=== GINKGO TEST RESULTS ===" >> /tmp/enhanced_failure_logs.txt
@@ -305,9 +323,37 @@ jobs:
305323 run : |
306324 echo "=== Collecting enhanced logs after test failure ==="
307325 NAMESPACE=${{ steps.configure.outputs.NAMESPACE }}
326+ USER_NS="${{ env.USER_NAMESPACE }}"
308327 TEST_START_TIME=$(date -u -d '30 minutes ago' '+%Y-%m-%dT%H:%M:%SZ')
309328 TEST_CONTEXT="MultiUser_K8s-${{ matrix.k8s_version }}_cache-${{ matrix.cache_enabled }}_storage-${{ matrix.storage }}"
310329
330+ # First, immediately capture any pipeline pods that might still exist in both namespaces
331+ echo "=== IMMEDIATE PIPELINE POD CAPTURE ===" > /tmp/immediate_pod_logs.txt
332+ echo "Timestamp: $(date)" >> /tmp/immediate_pod_logs.txt
333+ echo "Searching for pipeline pods immediately after test failure..." >> /tmp/immediate_pod_logs.txt
334+
335+ # Check main namespace
336+ echo "--- Main namespace ($NAMESPACE) ---" >> /tmp/immediate_pod_logs.txt
337+ kubectl get pods -n $NAMESPACE | grep -E "(pipeline|workflow|producer|consumer)" >> /tmp/immediate_pod_logs.txt 2>&1 || echo "No pipeline pods found in $NAMESPACE" >> /tmp/immediate_pod_logs.txt
338+
339+ for pod in $(kubectl get pods -n $NAMESPACE -o name 2>/dev/null | grep -E "(pipeline|workflow|producer|consumer)" | sed 's|pod/||'); do
340+ echo "--- Immediate Pod Logs ($NAMESPACE): $pod ---" >> /tmp/immediate_pod_logs.txt
341+ kubectl logs "$pod" -n $NAMESPACE >> /tmp/immediate_pod_logs.txt 2>&1 || echo "No logs for $pod" >> /tmp/immediate_pod_logs.txt
342+ echo "" >> /tmp/immediate_pod_logs.txt
343+ done
344+
345+ # Check user namespace if different
346+ if [ "$USER_NS" != "$NAMESPACE" ]; then
347+ echo "--- User namespace ($USER_NS) ---" >> /tmp/immediate_pod_logs.txt
348+ kubectl get pods -n "$USER_NS" | grep -E "(pipeline|workflow|producer|consumer)" >> /tmp/immediate_pod_logs.txt 2>&1 || echo "No pipeline pods found in $USER_NS" >> /tmp/immediate_pod_logs.txt
349+
350+ for pod in $(kubectl get pods -n "$USER_NS" -o name 2>/dev/null | grep -E "(pipeline|workflow|producer|consumer)" | sed 's|pod/||'); do
351+ echo "--- Immediate Pod Logs ($USER_NS): $pod ---" >> /tmp/immediate_pod_logs.txt
352+ kubectl logs "$pod" -n "$USER_NS" >> /tmp/immediate_pod_logs.txt 2>&1 || echo "No logs for $pod" >> /tmp/immediate_pod_logs.txt
353+ echo "" >> /tmp/immediate_pod_logs.txt
354+ done
355+ fi
356+
311357 # Create enhanced log collection
312358 chmod +x ./.github/resources/scripts/collect-enhanced-logs.sh
313359 ./.github/resources/scripts/collect-enhanced-logs.sh \
@@ -317,7 +363,6 @@ jobs:
317363 --start-time "$TEST_START_TIME"
318364
319365 # Also collect user namespace logs for multi-user tests
320- USER_NS="${{ env.USER_NAMESPACE }}"
321366 if [ "$USER_NS" != "$NAMESPACE" ]; then
322367 echo "=== USER NAMESPACE LOGS ===" >> /tmp/enhanced_failure_logs.txt
323368 ./.github/resources/scripts/collect-enhanced-logs.sh \
@@ -328,6 +373,9 @@ jobs:
328373 cat /tmp/user_ns_logs.txt >> /tmp/enhanced_failure_logs.txt 2>/dev/null || true
329374 fi
330375
376+ # Combine immediate logs with enhanced logs
377+ cat /tmp/immediate_pod_logs.txt >> /tmp/enhanced_failure_logs.txt
378+
331379 # Also collect Ginkgo test output if available
332380 if [ -f "${{ env.E2E_TESTS_DIR }}/reports/junit.xml" ]; then
333381 echo "=== GINKGO TEST RESULTS ===" >> /tmp/enhanced_failure_logs.txt
0 commit comments