Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-31321

oc mirror does not mirror intermediate versions on eus channels with shortestPath

XMLWordPrintable

    • Low
    • No
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      
      With an ImageSet like this:
      
      kind: ImageSetConfiguration
      apiVersion: mirror.openshift.io/v1alpha2
      storageConfig:
        local:
          path: ./oc-mirror-metadata
      mirror:
        platform:
          graph: true
          architectures:
            - amd64
          channels:
          - name: stable-4.12
            minVersion: '4.12.28'
            maxVersion: '4.12.28'
            shortestPath: true
            type: ocp
          - name: eus-4.14
            minVersion: '4.12.28'
            maxVersion: '4.14.15'
            shortestPath: true
            type: ocp
      
      oc mirror only mirrors 4.12.28 and 4.14.15, but it doesn't migrate any valid intermediate 4.13.z version, so an eus upgrade cannot be performed. 
      
      EUS upgrades require the control plane to go through the intermediate versions, i.e. for a 4.12 to 4.14 EUS upgrade, a 4.13 version must be available so that the user can do the 4.12-->4.13-->4.14 upgrade (actually, "EUS upgrades" should have been named "upgrades with the non-master MCPs paused", because they are not much more than that).
      
      

      Version-Release number of selected component (if applicable):

      # oc mirror version --output yaml
      Logging to .oc-mirror.log
      clientVersion:
        buildDate: "2024-02-08T23:49:33Z"
        compiler: gc
        gitCommit: 68747309c90d1c64d5404ec9ea12bc7c36a80555
        gitTreeState: clean
        gitVersion: 4.14.0-202402081809.p0.g6874730.assembly.stream.el8-6874730
        goVersion: go1.20.12 X:strictfipsruntime
        major: ""
        minor: ""
        platform: linux/amd64
      

      How reproducible:

      Always
      

      Steps to Reproduce:

          1. Create an ImageSetConfiguration as per description (with shortestPath)
          2. Run oc mirror
          3. (Optional) Create the updateService in OSUS
      

      Actual results:

      No intermediate 4.13 version mirrored. EUS upgrade not possible.
      

      Expected results:

      The required minimum 4.13 version(s) mirrored so that an EUS upgrade between minVersion and maxVersion on eus-4.14 channel is possible
      

      Additional info:

      
      A suitable workaround is to include the stable-4.13 channel on the ImageSetConfiguration, with the valid 4.13 version(s) in minVersion and maxVersion. Even if those versions are mentioned only in stable-4.13 channel, they also appear in the eus-4.14 channel in the update graph, so the EUS upgrade becomes possible.
      
      For that to work with OSUS, it was also needed to apply the latest updateservice generated by oc-mirror.
      
      

              luzuccar@redhat.com Luigi Mario Zuccarelli
              rhn-support-palonsor Pablo Alonso Rodriguez
              ying zhou ying zhou
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated: