-
Story
-
Resolution: Done
-
Normal
-
None
-
None
-
Quality / Stability / Reliability
-
False
-
-
False
-
None
-
None
-
None
-
None
-
None
Summary:
We need to add a set of tests to make sure the default index images used in OCP meet key quality checks. These tests will help identify critical issues early and prevent bad changes from being implemented.
- Tests: https://github.com/openshift/ci-tools/pull/4590/files
- Sippy: Example: [here
- From release 4.20
- Code implementation: https://github.com/openshift/operator-framework-operator-controller/tree/main/openshift/default-catalog-consistency
- OCP periodicals are: https://github.com/openshift/release/tree/master/ci-operator/config/openshift/operator-framework-operator-controller
What do these tests do?
These tests make sure the default index images are built correctly so that OLM, the OCP console, and other components work as expected. This helps prevent significant and critical issues for users. The tests follow these steps:
- Download the four default catalogue images (redhat, marketplace, certified and community indexes) (each built by a different pipeline)
- Extract and analyse the image data
- Check if each image meets the required criteria for the current OCP release
- Fail if any rule that could cause critical or major user issues is broken
How do the tests work?
**
These tests verify that the default index images used to distribute the Operators that appear in the OCP console are built correctly. Each image must follow specific rules, like:
- Must support the right architectures (like linux x86_64, arm64, etc.)
- Must have the opm binary in the correct place (so tools like oc mirror work)
- Must have labels like "operators.operatorframework.io.index.configs.v1": "/configs" So OLM and OCP can use them properly
Why make this a blocking gate?
If these checks fail:
- OLM might break or perform badly
- Users could face significant issues
- We've seen many support cases caused by this
- Some features (like oc mirror) might not work
Regarding the signal:
Useful
- Prevents regressions in OLM/catalogue behaviour
- Ensures users don't face critical issues
Mature
- Only passing tests are added. If pipelines are broken, tests wait for the required fixes to be done before landing
- All tests pass 100%
No OCP cluster needed → no flakes expected
Testable & Debuggable
- Easy to run locally
- Requires only Go and a standard dev setup
- No special config or OCP needed