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

Semver template is producing invalid channel entries

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 4.14.z, 4.15.z, 4.17.z, 4.16.z, 4.18.z, 4.19.z
    • OLM
    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Rejected
    • Oddish Sprint 275, Pikachu Sprint 276
    • 2
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:

          Semver template expansion can produce duplicate skips and replaces of the same target, which confuses OLMv0

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

          

      How reproducible:

          100%

      Steps to Reproduce:

          1. with a semver template configured to generate major-version channels and including minor-version bumps, like this example (written as reproducer-semver.yaml):
      
                schema: olm.semver
                generatemajorchannels: true                
                stable:               
                  bundles:        
                    - image:  quay.io/jordankeister/test-operator:v1.0.0                
                    - image:  quay.io/jordankeister/test-operator:v1.1.0                
                    - image:  quay.io/jordankeister/test-operator:v1.1.2                
                    - image:  quay.io/jordankeister/test-operator:v1.1.4           
                    - image:  quay.io/jordankeister/test-operator:v1.2.0               
                    - image:  quay.io/jordankeister/test-operator:v1.2.1
                    - image:  quay.io/jordankeister/test-operator:v1.3.0        
                    - image:  quay.io/jordankeister/test-operator:v1.4.0     
      
          2. expand the template via `opm alpha render-template semver reproducer-semver.yaml`
          3. see that in the major-version FBC channels generated, whenever the upgrade graph would cross a minor-version boundary, it includes the previous minor-version's highest patch version as both a 'skips' and 'replaces' link from the next minor-version's highest patch version.
      
      
          

      Actual results:

          ...
          "entries": [
              {
                  "name": "test-operator-v1.0.0"
              },
              {
                  "name": "test-operator-v1.1.0"
              },
              {
                  "name": "test-operator-v1.1.2"
              },
              {
                  "name": "test-operator-v1.1.4",
                  "replaces": "test-operator-v1.0.0",
                  "skips": [
                      "test-operator-v1.0.0",
                      "test-operator-v1.1.0",
                      "test-operator-v1.1.2"
                  ]
              },
          ...

      Expected results:

          ...
          "entries": [
              {
                  "name": "test-operator-v1.0.0"
              },
              {
                  "name": "test-operator-v1.1.0"
              },
              {
                  "name": "test-operator-v1.1.2"
              },
              {
                  "name": "test-operator-v1.1.4",
                  "replaces": "test-operator-v1.0.0",
                  "skips": [  
                      "test-operator-v1.1.0",
                      "test-operator-v1.1.2"
                  ]
              },
          ...    

      Additional info:

          

       

              rh-ee-jkeister Jordan Keister
              rhn-support-ssardar Sameer Sardar
              None
              None
              Xia Zhao Xia Zhao
              None
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: