========================================== OCPBUGS-61412 - ROOT CAUSE CONFIRMED ========================================== Date: $(date) ========================================== ROOT CAUSE IDENTIFIED: ---------------------- **THE SOURCE CSV FILE IS MISSING THE olm.skipRange LINE** VERIFICATION: ------------ 1. art.yaml File: ✓ CORRECT - Location: https://github.com/openshift/dpu-operator/blob/main/manifests/art.yaml - Has correct substitution pattern: ```yaml - search: "olm.skipRange: '>=4.3.0-0 <{MAJOR}.{MINOR}.0'" replace: "olm.skipRange: '>=4.3.0-0 <{FULL_VER}'" ``` - Pattern is generic and works for 4.21 2. Source CSV File: ✗ MISSING olm.skipRange - Location: manifests/stable/dpu-operator.clusterserviceversion.yaml - Does NOT contain olm.skipRange annotation - Last updated: 2025-12-17 (recent, but still missing olm.skipRange) 3. Comparison with SR-IOV (Working Fix): - SR-IOV source CSV: HAS olm.skipRange: '>=4.3.0-0 <4.21.0' - DPU source CSV: MISSING olm.skipRange - This confirms the root cause! WHY THE ANNOTATION IS MISSING: ------------------------------- The art.yaml substitution process works like this: 1. Search for pattern in source CSV 2. If found, replace with substituted value 3. If NOT found, nothing happens (no error, just skipped) Since the source CSV doesn't have olm.skipRange: - art.yaml search pattern can't find anything - Substitution doesn't happen - Bundle is built without olm.skipRange annotation - Deployed CSV is missing the annotation THE FIX REQUIRED: ----------------- The fix for OCPBUGS-61412 needs to: 1. ADD olm.skipRange to the source CSV file: ```yaml metadata: annotations: olm.skipRange: '>=4.3.0-0 <{MAJOR}.{MINOR}.0' # ... other annotations ... ``` 2. Then art.yaml will: - Find the line: "olm.skipRange: '>=4.3.0-0 <4.21.0'" - Replace it with: "olm.skipRange: '>=4.3.0-0 <4.21.0-202511280046'" - Bundle will include the annotation - Deployed CSV will have olm.skipRange VERIFICATION STEPS: ------------------- After the fix is applied: 1. Check source CSV has olm.skipRange: ```bash curl -s https://raw.githubusercontent.com/openshift/dpu-operator/main/manifests/stable/dpu-operator.clusterserviceversion.yaml | grep olm.skipRange ``` 2. Verify new bundle includes it: - Check bundle CSV manifest - Verify olm.skipRange annotation exists 3. Reinstall operator: - Update catalog source with new bundle - Reinstall operator - Verify CSV has olm.skipRange annotation CURRENT STATUS: -------------- ✓ art.yaml: CORRECT (has substitution pattern) ✗ Source CSV: MISSING olm.skipRange line ✗ Bundle: Built without olm.skipRange (because source was missing it) ✗ Deployed CSV: Missing olm.skipRange annotation NEXT STEPS: ---------- 1. Add olm.skipRange to source CSV file 2. Rebuild bundle with updated source 3. Update catalog source 4. Reinstall operator 5. Verify olm.skipRange appears in deployed CSV ========================================== END OF ROOT CAUSE ANALYSIS ==========================================