-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
4.14.z, 4.15.z, 4.17.z, 4.16.z, 4.18.z, 4.19.z
-
Quality / Stability / Reliability
-
False
-
-
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:
- causes
-
OCPBUGS-60253 opm validate is not failing when channel entry both replaces and skips the same bundle
-
- Verified
-
- links to