Description of problem:
oc-mirror does not allow the mirroring of multiple ACM operator versions
Version-Release number of selected component (if applicable):
4.16.z
How reproducible:
Always
Steps to Reproduce:
1. Create an ImageSetConfiguration ``` operators: - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.14 packages: - name: advanced-cluster-management defaultChannel: release-2.8 channels: - name: release-2.8 minVersion: '2.8.6' maxVersion: '2.8.6' defaultChannel: release-2.9 channels: - name: release-2.9 minVersion: '2.9.4' maxVersion: '2.9.4' - name: multicluster-engine defaultChannel: stable-2.3 channels: - name: stable-2.3 minVersion: '2.3.6' maxVersion: '2.3.6' defaultChannel: stable-2.4 channels: - name: stable-2.4 minVersion: '2.4.5' maxVersion: '2.4.5' ``` 2. Kick off an oc-mirror ``` $ oc-mirror --config=config.yaml docker://mirror-dr.syangsao.net:8443/ocp4 --rebuild-catalogs ```
Actual results:
oc-mirror will only mirror the most recent versions from the configuration: ACM 2.9.4 MCE 2.4.5 This will then update the index on the destination repository which will only show this version being available. Customer was on ACM v2.7 and needed to do a step upgrade. ACM v2.7 -> v2.8 -> v2.9
Expected results:
oc-mirror should be able to mirror multiple versions and also update the index file on the destination repository to have these versions available for OpenShift to see the available operator versions so the customer can upgrade accordingly, especially for step upgrades.
Additional info:
$ oc-mirror version WARNING: This version information is deprecated and will be replaced with the output from --short. Use --output=yaml|json to get the full version. Client Version: version.Info{Major:"", Minor:"", GitVersion:"4.16.0-202407100906.p0.g75da281.assembly.stream.el9-75da281", GitCommit:"75da281989a147ead237e738507bbd8cec3175e5", GitTreeState:"clean", BuildDate:"2024-07-10T09:48:28Z", GoVersion:"go1.21.11 (Red Hat 1.21.11-1.el9_4) X:strictfipsruntime", Compiler:"gc", Platform:"linux/amd64"}