Bug 1874751

Summary: OLM in OKD should use public mirror of the community operator index
Product: OpenShift Container Platform Reporter: Vadim Rutkovsky <vrutkovs>
Component: OLMAssignee: Vadim Rutkovsky <vrutkovs>
OLM sub component: OLM QA Contact: Jian Zhang <jiazha>
Status: CLOSED ERRATA Docs Contact:
Severity: low    
Priority: low CC: ecordell, krizza, nhale
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:37:10 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 Vadim Rutkovsky 2020-09-02 07:25:05 UTC
OKD can be installed without a pull secret, so community operator index should be pullable without a pull secret. In order to be aligned with OCP a different image needs to be promoted to OKD payload. This image should use registry.access.redhat.com as a source of community operator index

Comment 3 Vadim Rutkovsky 2020-09-02 15:15:29 UTC
Additional fix is required - https://github.com/operator-framework/operator-marketplace/pull/337

Comment 5 Jian Zhang 2020-09-09 10:30:13 UTC
The community operator can be pulled without a pull secret. But, 

[root@preserve-olm-env data]# docker pull registry.access.redhat.com/redhat/community-operator-index:latest
latest: Pulling from redhat/community-operator-index
df20fa9351a1: Already exists 
03260e9c3f62: Already exists 
3b3720faeeee: Already exists 
422d96fd767d: Already exists 
52be893bac91: Pull complete 
Digest: sha256:e96d337770f24513b70d8e9ac5fd09cad7d367966b3da34ac5f655e383c587b2
Status: Downloaded newer image for registry.access.redhat.com/redhat/community-operator-index:latest
registry.access.redhat.com/redhat/community-operator-index:latest

mac:~ jianzhang$ oc get clusterversion
NAME      VERSION                         AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.6.0-0.okd-2020-08-29-043816   True        False         3m33s   Cluster version is 4.6.0-0.okd-2020-08-29-043816
mac:~ jianzhang$ occ project openshift-marketplace
-bash: occ: command not found
mac:~ jianzhang$ oc project openshift-marketplace
Now using project "openshift-marketplace" on server "https://api.ci-ln-2jz117b-f76d1.origin-ci-int-gce.dev.openshift.com:6443".
mac:~ jianzhang$ oc get pods
NAME                                    READY   STATUS    RESTARTS   AGE
community-operators-spnht               1/1     Running   0          3m20s
marketplace-operator-85697d4b4f-g7h5w   1/1     Running   0          26m
mac:~ jianzhang$ oc get catalogsource 
NAME                  DISPLAY               TYPE   PUBLISHER   AGE
community-operators   Community Operators   grpc   Red Hat     25m

Use this registry.access.redhat.com/redhat/community-operator-index:latest as the CatalogSource index image. It works well.
mac:~ jianzhang$ oc edit catalogsource  community-operators 
catalogsource.operators.coreos.com/community-operators edited
mac:~ jianzhang$ oc get catalogsource community-operators -o yaml
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
...

spec:
  displayName: Community Operators
  icon:
    base64data: ""
    mediatype: ""
  image: registry.access.redhat.com/redhat/community-operator-index:latest
  publisher: Red Hat
  sourceType: grpc
  updateStrategy:
    registryPoll:
      interval: 10m0s

mac:~ jianzhang$ oc get pods
NAME                                    READY   STATUS    RESTARTS   AGE
community-operators-lm678               1/1     Running   0          28s
marketplace-operator-85697d4b4f-g7h5w   1/1     Running   0          29m
mac:~ jianzhang$ oc logs community-operators-lm678
time="2020-09-09T10:24:45Z" level=info msg="Keeping server open for infinite seconds" database=/database/index.db port=50051
time="2020-09-09T10:24:45Z" level=info msg="serving registry" database=/database/index.db port=50051

mac:~ jianzhang$ oc get packagemanifest
NAME                                    CATALOG               AGE
podium-operator-bundle                  Community Operators   31m
eclipse-che                             Community Operators   31m
mattermost-operator                     Community Operators   31m
...

LGTM, verify it.

Comment 6 Jian Zhang 2020-09-10 00:48:46 UTC
Sorry, antoher problem is that the default image of the Community CatalogSource is "quay.io/openshift-community-operators/catalog:latest", not the "registry.access.redhat.com/redhat/community-operator-index:latest". I guess that's not expected.
Change the status to the ASSIGNED first. 

mac:~ jianzhang$ oc get catalogsource 
NAME                  DISPLAY               TYPE   PUBLISHER   AGE
community-operators   Community Operators   grpc   Red Hat     25m
mac:~ jianzhang$ oc get catalogsource  community-operators -o yaml
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
...
  name: community-operators
  namespace: openshift-marketplace
  resourceVersion: "35685"
  selfLink: /apis/operators.coreos.com/v1alpha1/namespaces/openshift-marketplace/catalogsources/community-operators
  uid: 3d81a994-de5c-4300-99e2-149d6a9bace0
spec:
  displayName: Community Operators
  icon:
    base64data: ""
    mediatype: ""
  image: quay.io/openshift-community-operators/catalog:latest
  publisher: Red Hat
  sourceType: grpc
  updateStrategy:
    registryPoll:
      interval: 10m0s
...

Comment 7 Jian Zhang 2020-09-10 00:51:33 UTC
I installed this OKD cluster via the cluster-bot: launch 4.6.0-0.okd-2020-08-29-043816

Comment 8 Vadim Rutkovsky 2020-09-10 07:55:11 UTC
OKD release with this change has not yet been accepted (we're battling the installer/MCO issues). 
Lets keep this open until installable OKD release with this change is accepted

Comment 13 Jian Zhang 2020-09-30 09:45:35 UTC
LGTM, verify it based on comment5, 6 and this one. Details:
Cluster version is 4.6.0-0.okd-2020-09-30-024805
[root@preserve-olm-env data]# oc get catalogsource community-operators -o yaml
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
...
spec:
  displayName: Community Operators
  icon:
    base64data: ""
    mediatype: ""
  image: registry.access.redhat.com/redhat/community-operator-index:latest
  priority: -400
  publisher: Red Hat
  sourceType: grpc
  updateStrategy:
    registryPoll:
      interval: 10m0s
status:
  connectionState:
    address: community-operators.openshift-marketplace.svc:50051
    lastConnect: "2020-09-30T07:29:02Z"
    lastObservedState: READY
  latestImageRegistryPoll: "2020-09-30T09:33:12Z"
  registryService:
    createdAt: "2020-09-30T07:21:26Z"
    port: "50051"
    protocol: grpc
    serviceName: community-operators
    serviceNamespace: openshift-marketplace

[root@preserve-olm-env data]# oc get packagemanifest
NAME                                    CATALOG               AGE
pystol                                  Community Operators   140m
sealed-secrets-operator-helm            Community Operators   140m
...

Comment 15 errata-xmlrpc 2020-10-27 16:37: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 (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