Bug 1959957 - After a channel head is deprecated, the channel still exists in the index, but with no installable content = BAD UX
Summary: After a channel head is deprecated, the channel still exists in the index, bu...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: OLM
Version: 4.8
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: 4.9.0
Assignee: Nick Hale
QA Contact: xzha
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-05-12 17:39 UTC by Nick Hale
Modified: 2021-10-18 17:31 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-10-18 17:31:04 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2021:3759 0 None None None 2021-10-18 17:31:56 UTC

Comment 5 xzha 2021-07-27 03:02:06 UTC
verify:

zhaoxia@xzha-mac ditto-operator % opm version
Version: version.Version{OpmVersion:"4a5ad031b", GitCommit:"4a5ad031bf1e4888b01792f70a8c1a159719626b", BuildDate:"2021-07-26T12:16:37Z", GoOs:"darwin", GoArch:"amd64"}

1, prepare quay.io/olmqe/ditto-index:test-1952101
zhaoxia@xzha-mac ditto-operator % oc image extract quay.io/xzhao/ditto-index:test-1959957 --file=/database/index.db
zhaoxia@xzha-mac ditto-operator % opm registry serve -p 50051 -d index.db -t /dev/null   
time="2021-07-27T10:37:15+08:00" level=info msg="Keeping server open for infinite seconds" database=index.db port=50051
time="2021-07-27T10:37:15+08:00" level=info msg="serving registry" database=index.db port=50051
^Ctime="2021-07-27T10:38:40+08:00" level=info msg="shutting down..." database=index.db port=50051

zhaoxia@xzha-mac bug-1952101 % grpcurl --plaintext localhost:50051 api.Registry/ListBundles | jq '{bundlePath, channelName, csvName}'
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.2.0-ab",
  "channelName": "beta",
  "csvName": "ditto-operator.v0.2.0"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.2.1-b",
  "channelName": "beta",
  "csvName": "ditto-operator.v0.2.1"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.1.0-a",
  "channelName": "alpha",
  "csvName": "ditto-operator.v0.1.0"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.1.0-a",
  "channelName": "beta",
  "csvName": "ditto-operator.v0.1.0"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.1.1-a",
  "channelName": "alpha",
  "csvName": "ditto-operator.v0.1.1"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.1.1-a",
  "channelName": "beta",
  "csvName": "ditto-operator.v0.1.1"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.2.0-ab",
  "channelName": "alpha",
  "csvName": "ditto-operator.v0.2.0"
}

2, Call `opm index deprecatetruncate`,  deprecate bundle quay.io/olmqe/ditto-operator:1959957-0.2.0-ab which is the head of channel alpha
zhaoxia@xzha-mac ditto-operator % opm index deprecatetruncate -b quay.io/olmqe/ditto-operator:1959957-0.2.0-ab -f quay.io/xzhao/ditto-index:test-1959957 -t quay.io/xzhao/ditto-index:test-1959957-dep -c docker     
INFO[0000] deprecating bundles from the index            bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0000] Pulling previous image quay.io/xzhao/ditto-index:test-1959957 to get metadata  bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0000] running /usr/local/bin/docker pull quay.io/xzhao/ditto-index:test-1959957  bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0005] running /usr/local/bin/docker pull quay.io/xzhao/ditto-index:test-1959957  bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0009] Getting label data from previous image        bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0009] running docker inspect                        bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0009] running docker create                         bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0009] running docker cp                             bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0011] running docker rm                             bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0011] deprecating bundles                           bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0011] Generating dockerfile                         bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0011] writing dockerfile: index.Dockerfile856696425  bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0011] running docker build                          bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
INFO[0011] [docker build -f index.Dockerfile856696425 -t quay.io/xzhao/ditto-index:test-1959957-dep .]  bundles="[quay.io/olmqe/ditto-operator:1959957-0.2.0-ab]"
zhaoxia@xzha-mac ditto-operator % docker push quay.io/xzhao/ditto-index:test-1959957-dep
The push refers to repository [quay.io/xzhao/ditto-index]
423dd3f8deaa: Pushed 
42fe7d7c9b1f: Layer already exists 
2b6e9ebccfa7: Layer already exists 
88d2b1b8a4ca: Layer already exists 
06888ef1f8b7: Layer already exists 
72e830a4dff5: Layer already exists 
test-1959957-dep: digest: sha256:de3f2d9f37978e443792bbc42a4061bc9ef37c0716620c043c62ee40f63e18df size: 1578
zhaoxia@xzha-mac ditto-operator % oc image extract quay.io/xzhao/ditto-index:test-1959957-dep --file=/database/index.db
zhaoxia@xzha-mac ditto-operator % sqlite3 index.db 
SQLite version 3.32.3 2020-06-18 14:16:19
Enter ".help" for usage hints.
sqlite> select * from channel;
beta|ditto-operator|ditto-operator.v0.2.1
sqlite> select * from channel_entry;
4|beta|ditto-operator|ditto-operator.v0.2.1|5|0
5|beta|ditto-operator|ditto-operator.v0.2.0||1
sqlite> select * from deprecated;
ditto-operator.v0.2.0
sqlite> .quit

zhaoxia@xzha-mac ditto-operator % opm registry serve -p 50051 -d index.db -t /dev/null   
time="2021-07-27T10:43:55+08:00" level=info msg="Keeping server open for infinite seconds" database=index.db port=50051
time="2021-07-27T10:43:55+08:00" level=info msg="serving registry" database=index.db port=50051
^Ctime="2021-07-27T10:45:23+08:00" level=info msg="shutting down..." database=index.db port=50051
zhaoxia@xzha-mac ditto-operator % 

zhaoxia@xzha-mac bug-1952101 % grpcurl --plaintext localhost:50051 api.Registry/ListBundles | jq '{bundlePath, channelName, csvName}'
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.2.0-ab",
  "channelName": "beta",
  "csvName": "ditto-operator.v0.2.0"
}
{
  "bundlePath": "quay.io/olmqe/ditto-operator:1959957-0.2.1-b",
  "channelName": "beta",
  "csvName": "ditto-operator.v0.2.1"
}

the channel alpha do not exist.

LGTM, verified.

Comment 8 errata-xmlrpc 2021-10-18 17:31:04 UTC
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 (Moderate: OpenShift Container Platform 4.9.0 bug fix and security update), 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/RHSA-2021:3759


Note You need to log in before you can comment on or make changes to this bug.