Bug 1920873 - Failure to upgrade operator when a Service is included in a Bundle
Summary: Failure to upgrade operator when a Service is included in a Bundle
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.6.z
Assignee: Ben Luddy
QA Contact: kuiwang
URL:
Whiteboard:
Depends On: 1898500
Blocks: 1933779
TreeView+ depends on / blocked
 
Reported: 2021-01-27 07:36 UTC by OpenShift BugZilla Robot
Modified: 2022-10-11 07:09 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1933779 (view as bug list)
Environment:
Last Closed: 2021-02-08 13:51:26 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github operator-framework operator-lifecycle-manager pull 1977 0 None closed [release-4.6] Bug 1920873: Support InstallPlan steps upgrading existing ClusterIP Services. 2021-02-09 01:08:45 UTC
Red Hat Product Errata RHSA-2021:0308 0 None None None 2021-02-08 13:51:57 UTC

Comment 2 kuiwang 2021-01-28 06:57:10 UTC
verify it on 4.6. LGTM

--
[root@preserve-olm-env operator-registry]# tree manifests/teiid-1898500
manifests/teiid-1898500
|-- 0.0.1
|   |-- teiid.0.0.1.clusterserviceversion.yaml
|   `-- virtualdatabases.teiid.io.crd.yaml
|-- 0.1.0
|   |-- teiid.0.1.0.clusterserviceversion.yaml
|   `-- virtualdatabase.crd.yaml
|-- 0.1.1
|   |-- teiid.0.1.1.clusterserviceversion.yaml
|   `-- virtualdatabase.crd.yaml
|-- 0.2.0
|   |-- teiid.io_virtualdatabases_crd.yaml
|   `-- teiid.v0.2.0.clusterserviceversion.yaml
|-- 0.3.0
|   |-- teiid.io_virtualdatabases_crd.yaml
|   |-- teiid_service.yaml
|   `-- teiid.v0.3.0.clusterserviceversion.yaml
|-- 0.4.0
|   |-- teiid.io_virtualdatabases_crd.yaml
|   |-- teiid_service.yaml
|   `-- teiid.v0.4.0.clusterserviceversion.yaml
|-- ci.yaml
`-- teiid.package.yaml

6 directories, 16 files
[root@preserve-olm-env operator-registry]# cat manifests/teiid-1898500/0.3.0/teiid_service.yaml 
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: teiid-operator
  name: teiid-service
spec:
  ports:
  - name: https
    port: 8443
    targetPort: https
  selector:
    app: teiid-operator
status:
  loadBalancer: {}
[root@preserve-olm-env operator-registry]# cat manifests/teiid-1898500/0.4.0/teiid_service.yaml 
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: teiid-operator
  name: teiid-service
spec:
  ports:
  - name: https
    port: 8443
    targetPort: https
  selector:
    app: teiid-operator
status:
  loadBalancer: {}
[root@preserve-olm-env operator-registry]# 


[root@preserve-olm-env operator-registry]# ./bin/opm alpha bundle build --directory /root/kuiwang/operator-registry/manifests/teiid-1898500/0.3.0 --tag quay.io/kuiwang/teiid-operator:v1898500-3 -p teiid -c alpha -e alpha
INFO[0000] Building annotations.yaml                    
INFO[0000] Writing annotations.yaml in /root/kuiwang/operator-registry/manifests/teiid-1898500/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  117.6MB
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=alpha
 ---> Running in 52324d71259a
Removing intermediate container 52324d71259a
 ---> 89d62d90f67d
Step 7/9 : LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha
 ---> Running in 6eb437988134
Removing intermediate container 6eb437988134
 ---> 10ffde972c83
Step 8/9 : COPY manifests/teiid-1898500/0.3.0 /manifests/
 ---> 9f0f3474803a
Step 9/9 : COPY manifests/teiid-1898500/metadata /metadata/
 ---> bf886260d189
Successfully built bf886260d189
Successfully tagged quay.io/kuiwang/teiid-operator:v1898500-3
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-operator:v1898500-3
The push refers to repository [quay.io/kuiwang/teiid-operator]
f733c016c96f: Pushed 
90b0a18e463d: Pushed 
v1898500-3: digest: sha256:43457b119b4332054cdd27746366fe197987cf4d3f54079d4dcc4c41f33aa34e size: 733
[root@preserve-olm-env operator-registry]# rm -fr bundle.Dockerfile manifests/teiid-1898500/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-1898500/0.4.0 --tag quay.io/kuiwang/teiid-operator:v1898500-4 -p teiid -c beta -e beta
INFO[0000] Building annotations.yaml                    
INFO[0000] Writing annotations.yaml in /root/kuiwang/operator-registry/manifests/teiid-1898500/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  117.6MB
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-1898500/0.4.0 /manifests/
 ---> c76d8d190c3b
Step 9/9 : COPY manifests/teiid-1898500/metadata /metadata/
 ---> 73fa5e8e73e7
Successfully built 73fa5e8e73e7
Successfully tagged quay.io/kuiwang/teiid-operator:v1898500-4
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-operator:v1898500-4
The push refers to repository [quay.io/kuiwang/teiid-operator]
bd961919d71f: Pushed 
2cb0281357ce: Pushed 
v1898500-4: digest: sha256:a391c30fbce9e159eea312aa8193936bbbb637e9ae98087246828ee121aaa788 size: 733
[root@preserve-olm-env operator-registry]# rm -fr bundle.Dockerfile manifests/teiid-1898500/metadata/
[root@preserve-olm-env operator-registry]# 

[root@preserve-olm-env operator-registry]# ./bin/opm index add --bundles quay.io/kuiwang/teiid-operator:v1898500-3 --tag quay.io/kuiwang/teiid-index:1898500 -c docker
INFO[0000] building the index                            bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-operator:v1898500-3  bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0000] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0000] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0000] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0000] Could not find optional dependencies file     dir=bundle_tmp154897146 file=bundle_tmp154897146/metadata load=annotations
INFO[0000] found csv, loading bundle                     dir=bundle_tmp154897146 file=bundle_tmp154897146/manifests load=bundle
INFO[0000] loading bundle file                           dir=bundle_tmp154897146/manifests file=teiid.io_virtualdatabases_crd.yaml load=bundle
INFO[0000] loading bundle file                           dir=bundle_tmp154897146/manifests file=teiid.v0.3.0.clusterserviceversion.yaml load=bundle
INFO[0000] loading bundle file                           dir=bundle_tmp154897146/manifests file=teiid_service.yaml load=bundle
INFO[0001] Generating dockerfile                         bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0001] writing dockerfile: index.Dockerfile121648264  bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0001] running docker build                          bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
INFO[0001] [docker build -f index.Dockerfile121648264 -t quay.io/kuiwang/teiid-index:1898500 .]  bundles="[quay.io/kuiwang/teiid-operator:v1898500-3]"
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-index:1898500
The push refers to repository [quay.io/kuiwang/teiid-index]
b8a0e050ae65: Pushed 
53b2ccb878f2: Mounted from operator-framework/upstream-opm-builder 
772b412a6a9d: Mounted from operator-framework/upstream-opm-builder 
371d4702865c: Layer already exists 
4570b0d18853: Layer already exists 
ace0eda3e3be: Layer already exists 
1898500: digest: sha256:c2d7fcab488f615fd356060a804cf2f145249105547a9e0b2813615de7f1620f size: 1578
[root@preserve-olm-env operator-registry]# ./bin/opm index add --bundles quay.io/kuiwang/teiid-operator:v1898500-4 --from-index quay.io/kuiwang/teiid-index:1898500 --tag quay.io/kuiwang/teiid-index:1898500 -c docker
INFO[0000] building the index                            bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0000] Pulling previous image quay.io/kuiwang/teiid-index:1898500 to get metadata  bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-index:1898500  bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0000] running /usr/bin/docker pull quay.io/kuiwang/teiid-index:1898500  bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0001] Getting label data from previous image        bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0001] running docker inspect                        bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0001] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0001] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0001] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0001] running /usr/bin/docker pull quay.io/kuiwang/teiid-operator:v1898500-4  bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] running docker create                         bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] running docker cp                             bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] running docker rm                             bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] Could not find optional dependencies file     dir=bundle_tmp866806378 file=bundle_tmp866806378/metadata load=annotations
INFO[0002] found csv, loading bundle                     dir=bundle_tmp866806378 file=bundle_tmp866806378/manifests load=bundle
INFO[0002] loading bundle file                           dir=bundle_tmp866806378/manifests file=teiid.io_virtualdatabases_crd.yaml load=bundle
INFO[0002] loading bundle file                           dir=bundle_tmp866806378/manifests file=teiid.v0.4.0.clusterserviceversion.yaml load=bundle
INFO[0002] loading bundle file                           dir=bundle_tmp866806378/manifests file=teiid_service.yaml load=bundle
INFO[0002] Generating dockerfile                         bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] writing dockerfile: index.Dockerfile291380344  bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] running docker build                          bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
INFO[0002] [docker build -f index.Dockerfile291380344 -t quay.io/kuiwang/teiid-index:1898500 .]  bundles="[quay.io/kuiwang/teiid-operator:v1898500-4]"
[root@preserve-olm-env operator-registry]# docker push quay.io/kuiwang/teiid-index:1898500
The push refers to repository [quay.io/kuiwang/teiid-index]
e42f38b23694: Pushed 
53b2ccb878f2: Layer already exists 
772b412a6a9d: Layer already exists 
371d4702865c: Layer already exists 
4570b0d18853: Layer already exists 
ace0eda3e3be: Layer already exists 
1898500: digest: sha256:0c3d4787022d27d80efaa3f3ab25ef648dcd1501a6bd8e8d6d042a7623f564ce size: 1578
[root@preserve-olm-env operator-registry]# cd /root/kuiwang/cases/1920873 
[root@preserve-olm-env 1920873]# 
[root@preserve-olm-env 1920873]# oc get clusterversion
NAME      VERSION                             AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.6.0-0.nightly-2021-01-28-030348   True        False         8m51s   Cluster version is 4.6.0-0.nightly-2021-01-28-030348
[root@preserve-olm-env 1920873]# oc get pod -n openshift-operator-lifecycle-manager
NAME                                READY   STATUS    RESTARTS   AGE
catalog-operator-7db86988c8-pb876   1/1     Running   0          37m
olm-operator-77d5f6ffff-fj59q       1/1     Running   0          37m
packageserver-6867858db8-ctxsb      1/1     Running   0          31m
packageserver-6867858db8-k7d2b      1/1     Running   0          31m
[root@preserve-olm-env 1920873]# oc exec catalog-operator-7db86988c8-pb876 -n openshift-operator-lifecycle-manager -- olm --version
OLM version: 0.16.1
git commit: f437d2bdbab91bfbd80691c3969bad17d0866fcb
[root@preserve-olm-env 1920873]# 

[root@preserve-olm-env 1920873]# cat og-single.yaml
kind: OperatorGroup
apiVersion: operators.coreos.com/v1
metadata:
  name: og-single1
  namespace: default
spec:
  targetNamespaces:
  - default
[root@preserve-olm-env 1920873]# oc apply -f og-single.yaml 
operatorgroup.operators.coreos.com/og-single1 created
[root@preserve-olm-env 1920873]# 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:1898500
  publisher: QE
  sourceType: grpc
[root@preserve-olm-env 1920873]# oc apply -f teiidcatsrc.yaml
catalogsource.operators.coreos.com/teiid created
[root@preserve-olm-env 1920873]# cat teiidsub.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: teiid
  namespace: default
spec:
  source: teiid
  sourceNamespace: default

  channel: alpha
  installPlanApproval: Automatic
  name: teiid
[root@preserve-olm-env 1920873]# oc apply -f teiidsub.yaml 
subscription.operators.coreos.com/teiid created

[root@preserve-olm-env 1920873]# oc get csv
NAME           DISPLAY   VERSION   REPLACES   PHASE
teiid.v0.3.0   Teiid     0.3.0                Succeeded
[root@preserve-olm-env 1920873]# 

[root@preserve-olm-env 1920873]# oc get svc teiid-service -o yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2021-01-28T06:52:27Z"
  labels:
    app: teiid-operator
    operators.coreos.com/teiid.default: ""
...
  name: teiid-service
  namespace: default
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: teiid.v0.3.0
    uid: 4fb0a508-b57a-4ecc-8911-bc32508db05f
  resourceVersion: "29845"
  selfLink: /api/v1/namespaces/default/services/teiid-service
  uid: bec93149-79d9-4d3b-bc31-c4965090fc41
spec:
  clusterIP: 172.30.195.21
  ports:
  - name: https
    port: 8443
    protocol: TCP
    targetPort: https
  selector:
    app: teiid-operator
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

[root@preserve-olm-env 1920873]# oc patch sub teiid -n default --type merge -p '{"spec": {"channel": "beta"}}'
subscription.operators.coreos.com/teiid patched
[root@preserve-olm-env 1920873]# oc get sub
NAME    PACKAGE   SOURCE   CHANNEL
teiid   teiid     teiid    beta
[root@preserve-olm-env 1920873]# oc get ip
NAME            CSV            APPROVAL    APPROVED
install-l5vr4   teiid.v0.3.0   Automatic   true
install-ns2ck   teiid.v0.4.0   Automatic   true
[root@preserve-olm-env 1920873]# oc get csv
NAME           DISPLAY   VERSION   REPLACES       PHASE
teiid.v0.4.0   Teiid     0.4.0     teiid.v0.3.0   Succeeded
[root@preserve-olm-env 1920873]# oc get svc teiid-service -o yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2021-01-28T06:52:27Z"
  labels:
    app: teiid-operator
    operators.coreos.com/teiid.default: ""
...
  name: teiid-service
  namespace: default
  ownerReferences:
  - apiVersion: operators.coreos.com/v1alpha1
    blockOwnerDeletion: false
    controller: false
    kind: ClusterServiceVersion
    name: teiid.v0.4.0
    uid: 23f0552d-c898-4184-83bf-9cf819973d69
  resourceVersion: "30571"
  selfLink: /api/v1/namespaces/default/services/teiid-service
  uid: bec93149-79d9-4d3b-bc31-c4965090fc41
spec:
  clusterIP: 172.30.195.21
  ports:
  - name: https
    port: 8443
    protocol: TCP
    targetPort: https
  selector:
    app: teiid-operator
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}
[root@preserve-olm-env 1920873]# 



--

Comment 5 errata-xmlrpc 2021-02-08 13:51:26 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 (Important: OpenShift Container Platform 4.6.16 security and bug fix 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:0308


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