Bug 1866930
| Summary: | OPM can strand packages with no resolution | ||
|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Kevin Rizza <krizza> |
| Component: | OLM | Assignee: | Kevin Rizza <krizza> |
| OLM sub component: | OLM | QA Contact: | Jian Zhang <jiazha> |
| Status: | CLOSED ERRATA | Docs Contact: | |
| Severity: | urgent | ||
| Priority: | unspecified | CC: | kuiwang |
| Version: | 4.6 | ||
| Target Milestone: | --- | ||
| Target Release: | 4.6.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2020-10-27 16:26:23 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Kevin Rizza
2020-08-06 20:44:56 UTC
LGTM, verify it. Test steps as follows:
[root@preserve-olm-env operator-registry]# ./bin/opm version
Version: version.Version{OpmVersion:"v1.12.5-104-g018a040", GitCommit:"018a040", BuildDate:"2020-08-10T02:53:22Z", GoOs:"linux", GoArch:"amd64"}
1. Build two bundle images with the same package. Insert both into the same channels, but do not set the second bundle as a replacement of the first.
[root@preserve-olm-env etcd]# tree 0.9.0/
0.9.0/
├── etcdbackups.etcd.database.coreos.com.crd.yaml
├── etcdclusters.etcd.database.coreos.com.crd.yaml
├── etcdoperator.v0.9.0.clusterserviceversion.yaml
└── etcdrestores.etcd.database.coreos.com.crd.yaml
0 directories, 4 files
Remove the `Replace` field from the etcdoperator.v0.9.2.clusterserviceversion.yaml.
[root@preserve-olm-env etcd]# tree 0.9.2/
0.9.2/
├── etcdbackups.etcd.database.coreos.com.crd.yaml
├── etcdclusters.etcd.database.coreos.com.crd.yaml
├── etcdoperator.v0.9.2.clusterserviceversion.yaml
└── etcdrestores.etcd.database.coreos.com.crd.yaml
0 directories, 4 files
[root@preserve-olm-env etcd]# opm alpha bundle build -c 4.6 -e 4.6 -d ./0.9.2/ -p etcd -t quay.io/olmqe/etcd-bundle:0.9.2-1866930
...
Successfully tagged quay.io/olmqe/etcd-bundle:0.9.2-1866930
[root@preserve-olm-env etcd]# opm alpha bundle build -c 4.6 -e 4.6 -d ./0.9.0/ -p etcd -t quay.io/olmqe/etcd-bundle:0.9.0-1866930 -o=true
...
Successfully tagged quay.io/olmqe/etcd-bundle:0.9.0-1866930
[root@preserve-olm-env etcd]# docker push quay.io/olmqe/etcd-bundle:0.9.0-1866930
The push refers to repository [quay.io/olmqe/etcd-bundle]
f48764a200ff: Pushed
c65a27adc000: Pushed
0.9.0-1866930: digest: sha256:2b3990cfb0917e62b76d0ceec4f3a3ebe4ef7f48da5622a028b8c6acc0fb31aa size: 732
[root@preserve-olm-env etcd]# docker push quay.io/olmqe/etcd-bundle:0.9.2-1866930
The push refers to repository [quay.io/olmqe/etcd-bundle]
fa5fa46c9f7d: Pushed
e19d156a82f3: Pushed
0.9.2-1866930: digest: sha256:a2040f42ed6abf44baed7ea6d36e8c630ca7b38ad17242ee0036b2d9aa475124 size: 732
[root@preserve-olm-env operator-registry]# ./bin/opm index add -b quay.io/olmqe/etcd-bundle:0.9.0-1866930 -t quay.io/olmqe/etcd-index:test-1866930 -c docker
INFO[0000] building the index bundles="[quay.io/olmqe/etcd-bundle:0.9.0-1866930]"
...
INFO[0001] [docker build -f index.Dockerfile573114636 -t quay.io/olmqe/etcd-index:test-1866930 .] bundles="[quay.io/olmqe/etcd-bundle:0.9.0-1866930]"
[root@preserve-olm-env operator-registry]# docker push quay.io/olmqe/etcd-index:test-1866930
The push refers to repository [quay.io/olmqe/etcd-index]
412d5f461694: Pushed
9e3f512ced9c: Layer already exists
5658e440f799: Layer already exists
d8a53ddb879b: Layer already exists
3e207b409db3: Layer already exists
test-1866930: digest: sha256:ee11cc057fe22b71eabbdc257991dff05dd9c08db40bbdf6a17c447db77e4ab9 size: 1371
[root@preserve-olm-env operator-registry]# ./bin/opm index add -b quay.io/olmqe/etcd-bundle:0.9.2-1866930 -f quay.io/olmqe/etcd-index:test-1866930 -c docker -t quay.io/olmqe/etcd-index:test-1866930
INFO[0000] building the index bundles="[quay.io/olmqe/etcd-bundle:0.9.2-1866930]"
...
INFO[0002] [docker build -f index.Dockerfile297989043 -t quay.io/olmqe/etcd-index:test-1866930 .] bundles="[quay.io/olmqe/etcd-bundle:0.9.2-1866930]"
[root@preserve-olm-env operator-registry]# docker push quay.io/olmqe/etcd-index:test-1866930
The push refers to repository [quay.io/olmqe/etcd-index]
69a58f5cad23: Pushed
9e3f512ced9c: Layer already exists
5658e440f799: Layer already exists
d8a53ddb879b: Layer already exists
3e207b409db3: Layer already exists
test-1866930: digest: sha256:b8a9a9b66792be366e0f32bd399104c37312517f9e7790b4dd4eb79248a52b00 size: 1371
2. `opm index rm` the package
[root@preserve-olm-env operator-registry]# ./bin/opm index rm -f quay.io/olmqe/etcd-index:test-1866930 -c docker -o etcd -t quay.io/olmqe/etcd-index:rm
INFO[0000] building the index operators="[etcd]"
...
INFO[0002] [docker build -f index.Dockerfile736900445 -t quay.io/olmqe/etcd-index:rm .] operators="[etcd]"
[root@preserve-olm-env operator-registry]# docker push quay.io/olmqe/etcd-index:rm
The push refers to repository [quay.io/olmqe/etcd-index]
e66521fafe06: Pushed
9e3f512ced9c: Layer already exists
5658e440f799: Layer already exists
d8a53ddb879b: Layer already exists
3e207b409db3: Layer already exists
rm: digest: sha256:f8196aa8b21a686ccd1fedf5ef7cfc4ecbc62b3f9d3d4e4e4d0a478c73e37416 size: 1371
[root@preserve-olm-env operator-registry]# docker create quay.io/olmqe/etcd-index:rm
d5054afda4228e6a0df5223aec502cce6484b1e462d106b675c03f3b6bbaa93e
[root@preserve-olm-env operator-registry]# docker cp d5054afda4228e6a0df5223aec502cce6484b1e462d106b675c03f3b6bbaa93e:/database/index.db .
[root@preserve-olm-env operator-registry]# sqlite3 index.db
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .header on
sqlite> .mode column
sqlite> .table
api channel operatorbundle related_image
api_provider channel_entry package schema_migrations
api_requirer dependencies properties
sqlite> select * from channel_entry;
sqlite> select * from operatorbundle;
sqlite>
sqlite> .quit
3. Attempt to add both packages back into the index.
1) add the 0.9.0 version to the index image: quay.io/olmqe/etcd-index:rm
[root@preserve-olm-env operator-registry]# ./bin/opm index add -b quay.io/olmqe/etcd-bundle:0.9.0-1866930 -f quay.io/olmqe/etcd-index:rm -c docker -t quay.io/olmqe/etcd-index:add
INFO[0000] building the index bundles="[quay.io/olmqe/etcd-bundle:0.9.0-1866930]"
...
INFO[0002] [docker build -f index.Dockerfile581059945 -t quay.io/olmqe/etcd-index:add .] bundles="[quay.io/olmqe/etcd-bundle:0.9.0-1866930]"
[root@preserve-olm-env operator-registry]#
[root@preserve-olm-env operator-registry]# docker push quay.io/olmqe/etcd-index:add
The push refers to repository [quay.io/olmqe/etcd-index]
fb585cdd5832: Pushed
9e3f512ced9c: Layer already exists
5658e440f799: Layer already exists
d8a53ddb879b: Layer already exists
3e207b409db3: Layer already exists
add: digest: sha256:2e32321fd107d8518f49cedd93d236c499adbba2ff269d3668ad2370e192f0d3 size: 1371
2) add the 0.9.2 version to the index image: quay.io/olmqe/etcd-index:add
[root@preserve-olm-env operator-registry]# ./bin/opm index add -b quay.io/olmqe/etcd-bundle:0.9.2-1866930 -f quay.io/olmqe/etcd-index:add -c docker -t quay.io/olmqe/etcd-index:add
INFO[0000] building the index bundles="[quay.io/olmqe/etcd-bundle:0.9.2-1866930]"
...
INFO[0002] [docker build -f index.Dockerfile232446836 -t quay.io/olmqe/etcd-index:add .] bundles="[quay.io/olmqe/etcd-bundle:0.9.2-1866930]"
[root@preserve-olm-env operator-registry]# docker push quay.io/olmqe/etcd-index:add
The push refers to repository [quay.io/olmqe/etcd-index]
0d5f565889fa: Pushed
9e3f512ced9c: Layer already exists
5658e440f799: Layer already exists
d8a53ddb879b: Layer already exists
3e207b409db3: Layer already exists
add: digest: sha256:363e8a1973facb0c47192dc8e3cc06c63ed6df3fe8cc089123504c7dabb3988a size: 1371
[root@preserve-olm-env operator-registry]# docker create quay.io/olmqe/etcd-index:add
abba807f9521f9202dbe1dfaa22f64ea75e598d17ac65c0b46e5fe5830567e1a
[root@preserve-olm-env operator-registry]# docker cp abba807f9521f9202dbe1dfaa22f64ea75e598d17ac65c0b46e5fe5830567e1a:/database/index.db .
[root@preserve-olm-env operator-registry]# sqlite3 index.db
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .header on
sqlite> .mode column
sqlite> .table
api channel operatorbundle related_image
api_provider channel_entry package schema_migrations
api_requirer dependencies properties
sqlite> select * from channel_entry;
entry_id channel_name package_name operatorbundle_name replaces depth
---------- ------------ ------------ ------------------- ---------- ----------
1 4.6 etcd etcdoperator.v0.9.2 0
sqlite> select * from operatorbundle;
name csv bundle bundlepath skiprange version replaces skips
------------------- ---------- ---------- --------------------------------------- ---------- ---------- ---------- ----------
etcdoperator.v0.9.0 quay.io/olmqe/etcd-bundle:0.9.0-1866930 0.9.0
etcdoperator.v0.9.2 {"apiVersi {"apiVersi quay.io/olmqe/etcd-bundle:0.9.2-1866930 0.9.2
sqlite> .quit
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4196 |