Bug 1885425 - opm index add cannot batch add multiple bundles that use skips
Summary: opm index add cannot batch add multiple bundles that use skips
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: OLM
Version: 4.6
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 4.7.0
Assignee: Nick Hale
QA Contact: kuiwang
URL:
Whiteboard:
: 1884404 1891581 1909183 (view as bug list)
Depends On:
Blocks: 1898746
TreeView+ depends on / blocked
 
Reported: 2020-10-05 22:14 UTC by lgallett
Modified: 2021-02-24 15:23 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
: 1898746 (view as bug list)
Environment:
Last Closed: 2021-02-24 15:23:10 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
the csv file of teiid (131.78 KB, application/gzip)
2020-11-25 07:55 UTC, kuiwang
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Github operator-framework operator-registry pull 503 0 None closed Bug 1885425: fix(indexing): order bulk add by version field 2021-01-18 16:20:04 UTC
Red Hat Product Errata RHSA-2020:5633 0 None None None 2021-02-24 15:23:51 UTC

Description lgallett 2020-10-05 22:14:46 UTC
Description of problem:

When using opm to add multiple bundles that skip each other to an index, it adds in such a way that the channel head is non-deterministic.

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

latest

How reproducible:

always

Steps to Reproduce:
1. Create bundles that reference each other sequentially in the skips field
2. Use opm to add them all to an index in a single command

Actual results:

Adds them in a non-deterministic order.

Expected results:

Should behave like replaces or in a deterministic way.

Additional info:

Comment 3 Kevin Rizza 2020-11-09 18:45:24 UTC
*** Bug 1891581 has been marked as a duplicate of this bug. ***

Comment 6 kuiwang 2020-11-23 08:03:33 UTC
Hi,
Verify it on 4.7. and I can not install it with index image, so change it to assigned.
Could you please help check it? thanks

--
[root@preserve-olm-env operator-registry]# git log -n 3
commit beace5415232d46fc803a259df1b082a3f20ad1e
Merge: 03865b2 a66d046
Author: OpenShift Merge Robot <openshift-merge-robot.github.com>
Date:   Sat Nov 21 01:18:10 2020 +0100

    Merge pull request #495 from exdx/feat/custom-validation-categories
    
    feat: add opm support for optional validators and custom category validation

commit a66d046d3be0c0ae7768877f162e62e2e523f2f9
Author: Daniel Sover <dsover>
Date:   Tue Oct 27 10:39:43 2020 -0400

    feat: bump api dep to v0.3.22; add support for operatorhub and bundle object validation

commit 03865b25148bf429dfbb74aa4ff9b75f71f05fde
Merge: fded0bf 09239b7
Author: OpenShift Merge Robot <openshift-merge-robot.github.com>
Date:   Thu Nov 19 21:09:08 2020 +0100

    Merge pull request #523 from njhale/fix-permissive
    
    fix(indexing): respect strict mode
[root@preserve-olm-env operator-registry]# make clan;make build
make: *** No rule to make target `clan'.  Stop.
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/appregistry-server ./cmd/appregistry-server
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/configmap-server ./cmd/configmap-server
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/initializer ./cmd/initializer
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/registry-server ./cmd/registry-server
GOFLAGS="-mod=vendor" go build -ldflags "-X 'github.com/operator-framework/operator-registry/cmd/opm/version.gitCommit=beace54' -X 'github.com/operator-framework/operator-registry/cmd/opm/version.opmVersion=v1.15.2-4-gbeace54' -X 'github.com/operator-framework/operator-registry/cmd/opm/version.buildDate=2020-11-23T07:01:21Z'"  -tags "json1" -o bin/opm ./cmd/opm
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# docker pull quay.io/operator-framework/upstream-opm-builder:latest
latest: Pulling from operator-framework/upstream-opm-builder
Digest: sha256:768eb0267f94484dc31a73ce8f0fe190d01fd5c2eaeff57d9a23588e06e047e5
Status: Image is up to date for quay.io/operator-framework/upstream-opm-builder:latest
quay.io/operator-framework/upstream-opm-builder:latest
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# grep "replaces" manifests/teiid-1885425/0.3.0/teiid.v0.3.0.clusterserviceversion.yaml
[root@preserve-olm-env operator-registry]# grep "replaces" manifests/teiid-1885425/0.4.0/teiid.v0.4.0.clusterserviceversion.yaml
[root@preserve-olm-env operator-registry]# grep -A1 "skips:" manifests/teiid-1885425/0.3.0/teiid.v0.3.0.clusterserviceversion.yaml
  skips:
  - teiid.v0.4.0
[root@preserve-olm-env operator-registry]# grep -A1 "skips:" manifests/teiid-1885425/0.4.0/teiid.v0.4.0.clusterserviceversion.yaml
  skips:
  - teiid.v0.3.0
[root@preserve-olm-env operator-registry]# 

[root@preserve-olm-env operator-registry]# ./bin/opm alpha bundle build --directory /root/kuiwang/operator-registry/manifests/teiid-1885425/0.3.0 --tag quay.io/kuiwang/teiid-operator:v1885425-3 -p teiid -c beta -e beta
INFO[0000] Building annotations.yaml                    
INFO[0000] Writing annotations.yaml in /root/kuiwang/operator-registry/manifests/teiid-1885425/metadata 
INFO[0000] Building Dockerfile                          
INFO[0000] Writing bundle.Dockerfile in /root/kuiwang/operator-registry 
INFO[0000] Building bundle image                        
Sending build context to Docker daemon  271.5MB
Step 1/9 : FROM scratch
 ---> 
Step 2/9 : LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
 ---> Using cache
 ---> 17f4d6cc02f6
Step 3/9 : LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
 ---> Using cache
 ---> ed5b62e609a0
Step 4/9 : LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
 ---> Using cache
 ---> 958a7490fbd5
Step 5/9 : LABEL operators.operatorframework.io.bundle.package.v1=teiid
 ---> Using cache
 ---> 660a23efdfcf
Step 6/9 : LABEL operators.operatorframework.io.bundle.channels.v1=beta
 ---> Using cache
 ---> c841860d7e05
Step 7/9 : LABEL operators.operatorframework.io.bundle.channel.default.v1=beta
 ---> Using cache
 ---> add28127624d
Step 8/9 : COPY manifests/teiid-1885425/0.3.0 /manifests/
 ---> 2672b934392f
Step 9/9 : COPY manifests/teiid-1885425/metadata /metadata/
 ---> c046da157a7b
Successfully built c046da157a7b
Successfully tagged quay.io/kuiwang/teiid-operator:v1885425-3
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-operator:v1885425-3
The push refers to repository [quay.io/kuiwang/teiid-operator]
40602032fd40: Pushed 
2eff50bccfc3: Pushed 
v1885425-3: digest: sha256:2627756d4154f054a164be3855d3cd2dd994880a32e1f8c5db18264b6f4b4497 size: 733
[root@preserve-olm-env operator-registry]# rm -fr bundle.Dockerfile manifests/teiid-1885425/metadata/
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# ./bin/opm alpha bundle build --directory /root/kuiwang/operator-registry/manifests/teiid-1885425/0.4.0 --tag quay.io/kuiwang/teiid-operator:v1885425-4 -p teiid -c beta -e beta
INFO[0000] Building annotations.yaml                    
INFO[0000] Writing annotations.yaml in /root/kuiwang/operator-registry/manifests/teiid-1885425/metadata 
INFO[0000] Building Dockerfile                          
INFO[0000] Writing bundle.Dockerfile in /root/kuiwang/operator-registry 
INFO[0000] Building bundle image                        
Sending build context to Docker daemon  271.5MB
Step 1/9 : FROM scratch
 ---> 
Step 2/9 : LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
 ---> Using cache
 ---> 17f4d6cc02f6
Step 3/9 : LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
 ---> Using cache
 ---> ed5b62e609a0
Step 4/9 : LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
 ---> Using cache
 ---> 958a7490fbd5
Step 5/9 : LABEL operators.operatorframework.io.bundle.package.v1=teiid
 ---> Using cache
 ---> 660a23efdfcf
Step 6/9 : LABEL operators.operatorframework.io.bundle.channels.v1=beta
 ---> Using cache
 ---> c841860d7e05
Step 7/9 : LABEL operators.operatorframework.io.bundle.channel.default.v1=beta
 ---> Using cache
 ---> add28127624d
Step 8/9 : COPY manifests/teiid-1885425/0.4.0 /manifests/
 ---> b2d98d0d4e3c
Step 9/9 : COPY manifests/teiid-1885425/metadata /metadata/
 ---> dbd54661b1f6
Successfully built dbd54661b1f6
Successfully tagged quay.io/kuiwang/teiid-operator:v1885425-4
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-operator:v1885425-4
The push refers to repository [quay.io/kuiwang/teiid-operator]
00af3505233e: Pushed 
2f9ac94f19ff: Pushed 
v1885425-4: digest: sha256:2c6fc2f08e943059ca739983320cd22e124b6a12b1709e6619136fdd36575a96 size: 733
[root@preserve-olm-env operator-registry]# rm -fr bundle.Dockerfile manifests/teiid-1885425/metadata/
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# ./bin/opm index add --bundles quay.io/kuiwang/teiid-operator:v1885425-3,quay.io/kuiwang/teiid-operator:v1885425-4  --tag quay.io/kuiwang/teiid-index:1885425 -c docker
INFO[0000] building the index                            bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-operator:v1885425-3  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-operator:v1885425-4  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] Could not find optional dependencies file     dir=bundle_tmp389249794 file=bundle_tmp389249794/metadata load=annotations
INFO[0001] found csv, loading bundle                     dir=bundle_tmp389249794 file=bundle_tmp389249794/manifests load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp389249794/manifests file=teiid.io_virtualdatabases_crd.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp389249794/manifests file=teiid.v0.4.0.clusterserviceversion.yaml load=bundle
INFO[0001] Could not find optional dependencies file     dir=bundle_tmp408182895 file=bundle_tmp408182895/metadata load=annotations
INFO[0001] found csv, loading bundle                     dir=bundle_tmp408182895 file=bundle_tmp408182895/manifests load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp408182895/manifests file=teiid.io_virtualdatabases_crd.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp408182895/manifests file=teiid.v0.3.0.clusterserviceversion.yaml load=bundle
INFO[0001] Generating dockerfile                         bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] writing dockerfile: index.Dockerfile039078005  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker build                          bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] [docker build -f index.Dockerfile039078005 -t quay.io/kuiwang/teiid-index:1885425 .]  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-index:1885425
The push refers to repository [quay.io/kuiwang/teiid-index]
64c5d23ae713: Pushed 
fbe39d558281: Layer already exists 
e105a1e44712: Layer already exists 
371d4702865c: Layer already exists 
4570b0d18853: Layer already exists 
ace0eda3e3be: Layer already exists 
1885425: digest: sha256:994f7466633fa2b54e90416223d017a4aeaa59099dac634cf1e8acfc03666a5b size: 1578
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# cd ~/kuiwang/cases/1885425
[root@preserve-olm-env 1885425]# 
[root@preserve-olm-env 1885425]# oc get pod -n openshift-operator-lifecycle-manager
NAME                                READY   STATUS    RESTARTS   AGE
catalog-operator-757d4dd574-28mns   1/1     Running   0          42m
olm-operator-7fb878d888-gkfsw       1/1     Running   0          42m
packageserver-666cf5dcd6-crhtl      1/1     Running   0          42m
packageserver-666cf5dcd6-hf4sk      1/1     Running   0          39m
[root@preserve-olm-env 1885425]# oc exec catalog-operator-757d4dd574-28mns  -n openshift-operator-lifecycle-manager -- olm --version
OLM version: 0.17.0
git commit: 3cb2cfd3cb7122f1b740787c7150852fcbd26371
[root@preserve-olm-env 1885425]# 

[root@preserve-olm-env 1885425]# cat teiidcatsrc.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: teiid
  namespace: default
spec:
  displayName: "teiid Operators"
  image: quay.io/kuiwang/teiid-index:1885425
  publisher: QE
  sourceType: grpc
[root@preserve-olm-env 1885425]# oc apply -f teiidcatsrc.yaml 
catalogsource.operators.coreos.com/teiid created
[root@preserve-olm-env 1885425]# oc get pod
NAME          READY   STATUS              RESTARTS   AGE
teiid-qs48s   0/1     ContainerCreating   0          3s
[root@preserve-olm-env 1885425]# oc get pod
NAME          READY   STATUS    RESTARTS   AGE
teiid-qs48s   1/1     Running   0          13s
[root@preserve-olm-env 1885425]# cat og-single.yaml 
kind: OperatorGroup
apiVersion: operators.coreos.com/v1
metadata:
  name: og-single1
  namespace: default
spec:
  targetNamespaces:
  - default
[root@preserve-olm-env 1885425]# oc apply -f og-single.yaml 
operatorgroup.operators.coreos.com/og-single1 created
[root@preserve-olm-env 1885425]# cat teiidsub.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: teiid
  namespace: default
spec:
  source: teiid
  sourceNamespace: default

  channel: beta
  installPlanApproval: Automatic
  name: teiid
  startingCSV: teiid.v0.3.0
[root@preserve-olm-env 1885425]# oc apply -f teiidsub.yaml 
subscription.operators.coreos.com/teiid created
[root@preserve-olm-env 1885425]# 

[root@preserve-olm-env 1885425]# oc logs catalog-operator-757d4dd574-28mns -n openshift-operator-lifecycle-manager
time="2020-11-23T06:53:59Z" level=info msg="log level info"
time="2020-11-23T06:53:59Z" level=info msg="TLS keys set, using https for metrics"
...
7", FieldPath:""}): type: 'Warning' reason: 'ResolutionFailed' constraints not satisfiable: teiid has a dependency without any candidates to satisfy it, teiid is mandatory
I1123 07:39:03.554014       1 event.go:282] Event(v1.ObjectReference{Kind:"Namespace", Namespace:"", Name:"default", UID:"aea4652c-93f7-47f5-887e-aeadbb258cd3", APIVersion:"v1", ResourceVersion:"50477", FieldPath:""}): type: 'Warning' reason: 'ResolutionFailed' constraints not satisfiable: teiid has a dependency without any candidates to satisfy it, teiid is mandatory


[root@preserve-olm-env 1885425]# docker create quay.io/kuiwang/teiid-index:1885425
3c9e8ee73d9b6c2fe70b8fda21cc8c0665cb8ab100799057ac9fa45671749687
[root@preserve-olm-env 1885425]# docker cp 3c9e8ee73d9b6c2fe70b8fda21cc8c0665cb8ab100799057ac9fa45671749687:/database/index.db .
[root@preserve-olm-env 1885425]# docker rm 3c9e8ee73d9b6c2fe70b8fda21cc8c0665cb8ab100799057ac9fa45671749687
3c9e8ee73d9b6c2fe70b8fda21cc8c0665cb8ab100799057ac9fa45671749687
[root@preserve-olm-env 1885425]# 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 name, version, replaces FROM operatorbundle;
name          version     replaces  
------------  ----------  ----------
teiid.v0.3.0  0.3.0                 
teiid.v0.4.0  0.4.0                 
sqlite> select entry_id, replaces, operatorbundle_name from channel_entry;
entry_id    replaces    operatorbundle_name
----------  ----------  -------------------
1                       teiid.v0.4.0       
2                       teiid.v0.3.0       
3           2           teiid.v0.4.0       
sqlite> .exit
[root@preserve-olm-env 1885425]# 



--

Comment 10 kuiwang 2020-11-25 07:55:08 UTC
Created attachment 1733284 [details]
the csv file of teiid

Comment 11 Kevin Rizza 2020-11-30 18:26:23 UTC
*** Bug 1884404 has been marked as a duplicate of this bug. ***

Comment 13 kuiwang 2020-12-07 07:33:49 UTC
verify it on 4.7. LGTM

Note: Per the above comment "OLM's resolver in OpenShift versions >= 4.6 doesn't include "skipped" bundles as potential candidates, which means that it's not possible to install skipped bundles using "startingCSV" even if the update graph generated by opm would otherwise allow you to in older versions", if the startingCSV is set and as older skipped version, it will not install operator.

---
[root@preserve-olm-env operator-registry]# git log -n 3
commit beace5415232d46fc803a259df1b082a3f20ad1e
Merge: 03865b2 a66d046
Author: OpenShift Merge Robot <openshift-merge-robot.github.com>
Date:   Sat Nov 21 01:18:10 2020 +0100

    Merge pull request #495 from exdx/feat/custom-validation-categories
    
    feat: add opm support for optional validators and custom category validation

commit a66d046d3be0c0ae7768877f162e62e2e523f2f9
Author: Daniel Sover <dsover>
Date:   Tue Oct 27 10:39:43 2020 -0400

    feat: bump api dep to v0.3.22; add support for operatorhub and bundle object validation

commit 03865b25148bf429dfbb74aa4ff9b75f71f05fde
Merge: fded0bf 09239b7
Author: OpenShift Merge Robot <openshift-merge-robot.github.com>
Date:   Thu Nov 19 21:09:08 2020 +0100

    Merge pull request #523 from njhale/fix-permissive
    
    fix(indexing): respect strict mode
[root@preserve-olm-env operator-registry]# make clan;make build
make: *** No rule to make target `clan'.  Stop.
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/appregistry-server ./cmd/appregistry-server
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/configmap-server ./cmd/configmap-server
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/initializer ./cmd/initializer
GOFLAGS="-mod=vendor" go build  -tags "json1" -o bin/registry-server ./cmd/registry-server
GOFLAGS="-mod=vendor" go build -ldflags "-X 'github.com/operator-framework/operator-registry/cmd/opm/version.gitCommit=beace54' -X 'github.com/operator-framework/operator-registry/cmd/opm/version.opmVersion=v1.15.2-4-gbeace54' -X 'github.com/operator-framework/operator-registry/cmd/opm/version.buildDate=2020-11-23T07:01:21Z'"  -tags "json1" -o bin/opm ./cmd/opm
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# docker pull quay.io/operator-framework/upstream-opm-builder:latest
latest: Pulling from operator-framework/upstream-opm-builder
Digest: sha256:768eb0267f94484dc31a73ce8f0fe190d01fd5c2eaeff57d9a23588e06e047e5
Status: Image is up to date for quay.io/operator-framework/upstream-opm-builder:latest
quay.io/operator-framework/upstream-opm-builder:latest
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# grep "replaces" manifests/teiid-1885425/0.3.0/teiid.v0.3.0.clusterserviceversion.yaml
[root@preserve-olm-env operator-registry]# grep "replaces" manifests/teiid-1885425/0.4.0/teiid.v0.4.0.clusterserviceversion.yaml
[root@preserve-olm-env operator-registry]# grep -A1 "skips:" manifests/teiid-1885425/0.3.0/teiid.v0.3.0.clusterserviceversion.yaml
  skips:
  - teiid.v0.2.0
[root@preserve-olm-env operator-registry]# grep -A1 "skips:" manifests/teiid-1885425/0.4.0/teiid.v0.4.0.clusterserviceversion.yaml
  skips:
  - teiid.v0.3.0
[root@preserve-olm-env operator-registry]# 

[root@preserve-olm-env operator-registry]# ./bin/opm alpha bundle build --directory /root/kuiwang/operator-registry/manifests/teiid-1885425/0.3.0 --tag quay.io/kuiwang/teiid-operator:v1885425-3 -p teiid -c beta -e beta
INFO[0000] Building annotations.yaml                    
INFO[0000] Writing annotations.yaml in /root/kuiwang/operator-registry/manifests/teiid-1885425/metadata 
INFO[0000] Building Dockerfile                          
INFO[0000] Writing bundle.Dockerfile in /root/kuiwang/operator-registry 
INFO[0000] Building bundle image                        
Sending build context to Docker daemon  271.5MB
Step 1/9 : FROM scratch
 ---> 
Step 2/9 : LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
 ---> Using cache
 ---> 17f4d6cc02f6
Step 3/9 : LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
 ---> Using cache
 ---> ed5b62e609a0
Step 4/9 : LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
 ---> Using cache
 ---> 958a7490fbd5
Step 5/9 : LABEL operators.operatorframework.io.bundle.package.v1=teiid
 ---> Using cache
 ---> 660a23efdfcf
Step 6/9 : LABEL operators.operatorframework.io.bundle.channels.v1=beta
 ---> Using cache
 ---> c841860d7e05
Step 7/9 : LABEL operators.operatorframework.io.bundle.channel.default.v1=beta
 ---> Using cache
 ---> add28127624d
Step 8/9 : COPY manifests/teiid-1885425/0.3.0 /manifests/
 ---> 81ad511b6424
Step 9/9 : COPY manifests/teiid-1885425/metadata /metadata/
 ---> 05317793f0b9
Successfully built 05317793f0b9
Successfully tagged quay.io/kuiwang/teiid-operator:v1885425-3
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-operator:v1885425-3
The push refers to repository [quay.io/kuiwang/teiid-operator]
3a86a3615948: Pushed 
74c1ca3f5051: Pushed 
v1885425-3: digest: sha256:6c6e475266541eb15d597f3aabd515a8a11c628d2387ae7f3df12236275fdbb2 size: 733
[root@preserve-olm-env operator-registry]# rm -fr bundle.Dockerfile  manifests/teiid-1885425/metadata/
[root@preserve-olm-env operator-registry]# 

[root@preserve-olm-env operator-registry]# ./bin/opm alpha bundle build --directory /root/kuiwang/operator-registry/manifests/teiid-1885425/0.4.0 --tag quay.io/kuiwang/teiid-operator:v1885425-4 -p teiid -c beta -e beta
INFO[0000] Building annotations.yaml                    
INFO[0000] Writing annotations.yaml in /root/kuiwang/operator-registry/manifests/teiid-1885425/metadata 
INFO[0000] Building Dockerfile                          
INFO[0000] Writing bundle.Dockerfile in /root/kuiwang/operator-registry 
INFO[0000] Building bundle image                        
Sending build context to Docker daemon  271.5MB
Step 1/9 : FROM scratch
 ---> 
Step 2/9 : LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1
 ---> Using cache
 ---> 17f4d6cc02f6
Step 3/9 : LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/
 ---> Using cache
 ---> ed5b62e609a0
Step 4/9 : LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/
 ---> Using cache
 ---> 958a7490fbd5
Step 5/9 : LABEL operators.operatorframework.io.bundle.package.v1=teiid
 ---> Using cache
 ---> 660a23efdfcf
Step 6/9 : LABEL operators.operatorframework.io.bundle.channels.v1=beta
 ---> Using cache
 ---> c841860d7e05
Step 7/9 : LABEL operators.operatorframework.io.bundle.channel.default.v1=beta
 ---> Using cache
 ---> add28127624d
Step 8/9 : COPY manifests/teiid-1885425/0.4.0 /manifests/
 ---> 48c30aad797b
Step 9/9 : COPY manifests/teiid-1885425/metadata /metadata/
 ---> 54ec5e1442e9
Successfully built 54ec5e1442e9
Successfully tagged quay.io/kuiwang/teiid-operator:v1885425-4
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-operator:v1885425-4
The push refers to repository [quay.io/kuiwang/teiid-operator]
b95c6ef633ec: Pushed 
d4532dead56a: Pushed 
v1885425-4: digest: sha256:f0f4e3561b1c75d8f1ad84cf617c066c5ae9b4c1719cadb5b1367cf2d770d857 size: 733
[root@preserve-olm-env operator-registry]# rm -fr bundle.Dockerfile  manifests/teiid-1885425/metadata/
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# ./bin/opm index add --bundles quay.io/kuiwang/teiid-operator:v1885425-3,quay.io/kuiwang/teiid-operator:v1885425-4  --tag quay.io/kuiwang/teiid-index:1885425 -c docker
INFO[0000] building the index                            bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-operator:v1885425-3  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-operator:v1885425-4  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] Could not find optional dependencies file     dir=bundle_tmp838476087 file=bundle_tmp838476087/metadata load=annotations
INFO[0001] found csv, loading bundle                     dir=bundle_tmp838476087 file=bundle_tmp838476087/manifests load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp838476087/manifests file=teiid.io_virtualdatabases_crd.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp838476087/manifests file=teiid.v0.3.0.clusterserviceversion.yaml load=bundle
INFO[0001] Could not find optional dependencies file     dir=bundle_tmp288914730 file=bundle_tmp288914730/metadata load=annotations
INFO[0001] found csv, loading bundle                     dir=bundle_tmp288914730 file=bundle_tmp288914730/manifests load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp288914730/manifests file=teiid.io_virtualdatabases_crd.yaml load=bundle
INFO[0001] loading bundle file                           dir=bundle_tmp288914730/manifests file=teiid.v0.4.0.clusterserviceversion.yaml load=bundle
INFO[0001] Generating dockerfile                         bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] writing dockerfile: index.Dockerfile977695741  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] running docker build                          bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
INFO[0001] [docker build -f index.Dockerfile977695741 -t quay.io/kuiwang/teiid-index:1885425 .]  bundles="[quay.io/kuiwang/teiid-operator:v1885425-3 quay.io/kuiwang/teiid-operator:v1885425-4]"
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-index:1885425
The push refers to repository [quay.io/kuiwang/teiid-index]
139ea30ac8dd: Pushed 
fbe39d558281: Layer already exists 
e105a1e44712: Layer already exists 
371d4702865c: Layer already exists 
4570b0d18853: Layer already exists 
ace0eda3e3be: Layer already exists 
1885425: digest: sha256:86a4ba40047301fc0bed1c9f849dcf261d60ba95b3bc21816f372abe13d2cea8 size: 1578
[root@preserve-olm-env operator-registry]# 

[root@preserve-olm-env 1885425]# docker create quay.io/kuiwang/teiid-index:1885425
e24a413080a06a0fcc426f700b021dc19946bd7c5bc6ad6ddf84a1ecbd56f69f
[root@preserve-olm-env 1885425]# docker cp e24a413080a06a0fcc426f700b021dc19946bd7c5bc6ad6ddf84a1ecbd56f69f:/database/index.db .
[root@preserve-olm-env 1885425]# docker rm e24a413080a06a0fcc426f700b021dc19946bd7c5bc6ad6ddf84a1ecbd56f69f
e24a413080a06a0fcc426f700b021dc19946bd7c5bc6ad6ddf84a1ecbd56f69f
[root@preserve-olm-env 1885425]# 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 name, version, replaces FROM operatorbundle;
name          version     replaces  
------------  ----------  ----------
teiid.v0.3.0  0.3.0                 
teiid.v0.4.0  0.4.0   
sqlite> select * from operatorbundle;
name          csv         bundle      bundlepath                                 skiprange   version     replaces    skips       
------------  ----------  ----------  -----------------------------------------  ----------  ----------  ----------  ------------
teiid.v0.3.0                          quay.io/kuiwang/teiid-operator:v1885425-3              0.3.0                   teiid.v0.2.0
teiid.v0.4.0  {"apiVersi  {"apiVersi  quay.io/kuiwang/teiid-operator:v1885425-4              0.4.0                   teiid.v0.3.0              
sqlite> select entry_id, replaces, operatorbundle_name from channel_entry;
entry_id    replaces    operatorbundle_name
----------  ----------  -------------------
1                       teiid.v0.4.0       
2                       teiid.v0.3.0       
3           2           teiid.v0.4.0       
sqlite> select * from channel;
name        package_name  head_operatorbundle_name
----------  ------------  ------------------------
beta        teiid         teiid.v0.4.0            
sqlite> .exit

[root@preserve-olm-env 1885425]# oc get pod -n openshift-operator-lifecycle-manager
NAME                                READY   STATUS    RESTARTS   AGE
catalog-operator-568d4985c4-rmwg9   1/1     Running   0          5h43m
olm-operator-5c9bd9984c-8dvp4       1/1     Running   0          5h43m
packageserver-5dfd7dbfbb-n272b      1/1     Running   0          5h43m
packageserver-5dfd7dbfbb-psxmt      1/1     Running   0          5h46m
[root@preserve-olm-env 1885425]# oc exec catalog-operator-568d4985c4-rmwg9 catalog-operator-65dffcf8-7rn4w catalog-operator-757d4dd574-28mns  -n openshift-operator-lifecycle-manager -- olm --version
OLM version: 0.17.0
git commit: d701e9a1361f636445d02140c63763248a7b95f9
[root@preserve-olm-env 1885425]# 

[root@preserve-olm-env 1885425]# cat teiidcatsrc.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: teiid
  namespace: default
spec:
  displayName: "teiid Operators"
  image: quay.io/kuiwang/teiid-index:1885425
  publisher: QE
  sourceType: grpc
[root@preserve-olm-env 1885425]# oc apply -f teiidcatsrc.yaml 
catalogsource.operators.coreos.com/teiid created
[root@preserve-olm-env 1885425]# cat og-single.yaml 
kind: OperatorGroup
apiVersion: operators.coreos.com/v1
metadata:
  name: og-single1
  namespace: default
spec:
  targetNamespaces:
  - default
[root@preserve-olm-env 1885425]# oc apply -f og-single.yaml 
operatorgroup.operators.coreos.com/og-single1 created
[root@preserve-olm-env 1885425]# 
[root@preserve-olm-env 1885425]# cat teiidsub.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: teiid
  namespace: default
spec:
  source: teiid
  sourceNamespace: default

  channel: beta
  installPlanApproval: Automatic
  name: teiid
[root@preserve-olm-env 1885425]# oc apply -f teiidsub.yaml
subscription.operators.coreos.com/teiid created
[root@preserve-olm-env 1885425]# oc get ip
NAME            CSV            APPROVAL    APPROVED
install-pdh98   teiid.v0.4.0   Automatic   true
[root@preserve-olm-env 1885425]# oc get csv
NAME           DISPLAY   VERSION   REPLACES   PHASE
teiid.v0.4.0   Teiid     0.4.0                Installing
[root@preserve-olm-env 1885425]# oc get csv
NAME           DISPLAY   VERSION   REPLACES   PHASE
teiid.v0.4.0   Teiid     0.4.0                Succeeded
[root@preserve-olm-env 1885425]# 


---

Comment 15 Shawn Hurley 2021-01-07 18:44:40 UTC
*** Bug 1909183 has been marked as a duplicate of this bug. ***

Comment 17 errata-xmlrpc 2021-02-24 15:23:10 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.7.0 security, bug fix, and enhancement 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-2020:5633


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