Bug 1895952 - catalogSource named "redhat-operators" deleted in a disconnected cluster
Summary: catalogSource named "redhat-operators" deleted in a disconnected cluster
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: Anik
QA Contact: Jian Zhang
URL:
Whiteboard:
Depends On: 1868770
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-11-09 14:31 UTC by OpenShift BugZilla Robot
Modified: 2020-11-30 16:46 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: https://github.com/operator-framework/operator-marketplace/pull/336 Consequence: Pre 4.6, when marketplace operator had the OperatorSource CRD, customers with a disconnected cluster could disabled the default OperatorSources in the openshift-marketplace namespace and create CatalogSources with the same name as the default sources. Since 4.6, CatalogSources were promoted to first class citizens for marketplace after the OperatorSource CRD was deprecated. As a result openshift-marketplace had default CatalogSource that were managed by the OperatorHub API. In a disconnected environment, when a cluster admin tried to create a CatalogSource with the same name as that of the default sources after disabling the CatalogSources via the OperatorHub API, the OperatorHub API was removing the custom CatalogSource. If the CatalogSources was not disabled via the OperatorHub API and changes were made to the default CatalogSource (for example changing spec.image to point to an internal registry for the disconnected environment), the spec was being restored to the default spec. Fix: Allow for creation/update/deletion of CatalogSources with same name as the default sources if they are disabled via the OperatorHub. Result: Once the cluster is ready in the disconnected environment, disabling a default CatalogSource via the OperatorHub API will allow for the creation of a new CatalogSource with the same name as that of the default CatalogSource. The CatalogSource can be updated/deleted without OperatorHub API intervention too. If the default source is re-enabled via the OperatorHub API, the default spec will be restored for the CatalogSource.
Clone Of:
Environment:
Last Closed: 2020-11-30 16:46:09 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github operator-framework operator-marketplace pull 362 0 None closed [release-4.6] Bug 1895952: Allow catsrc with default catsrc name in disconnected env 2021-01-29 05:24:04 UTC
Red Hat Product Errata RHBA-2020:5115 0 None None None 2020-11-30 16:46:29 UTC

Comment 3 Jian Zhang 2020-11-23 02:29:34 UTC
Cluster version is 4.6.0-0.nightly-2020-11-22-160856

[root@preserve-olm-env data]# oc  -n openshift-marketplace exec marketplace-operator-5bcc66f6f6-m44x4 -- marketplace-operator --version
time="2020-11-23T02:20:59Z" level=info msg="Go Version: go1.15.2"
time="2020-11-23T02:20:59Z" level=info msg="Go OS/Arch: linux/amd64"
time="2020-11-23T02:20:59Z" level=info msg="operator-sdk Version: v0.8.0"
Marketplace source git commit: 1fc2b9b4d275f4186e55bf06b12868283159ef67

1, Disable the default CatalogSource resources.
[root@preserve-olm-env data]# oc patch operatorhub cluster -p '{"spec": {"disableAllDefaultSources": true}}' --type=merge
operatorhub.config.openshift.io/cluster patched
[root@preserve-olm-env data]# oc get catalogsource
No resources found in openshift-marketplace namespace.

2, Create a custom CatalogSource with a default CatalogSource object name.
[root@preserve-olm-env data]# cat cs-redhat.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: redhat-operators
  namespace: openshift-marketplace
spec:
  displayName: Red Hat Operators
  icon:
    base64data: ""
    mediatype: ""
  image: quay.io/openshift-qe-optional-operators/ocp4-index:latest
  priority: -100
  publisher: Jian
  sourceType: grpc
  updateStrategy:
    registryPoll:
      interval: 10m0s
[root@preserve-olm-env data]# oc create -f cs-redhat.yaml 
catalogsource.operators.coreos.com/redhat-operators created
[root@preserve-olm-env data]# oc get catalogsource
NAME               DISPLAY             TYPE   PUBLISHER   AGE
redhat-operators   Red Hat Operators   grpc   Jian        8s
[root@preserve-olm-env data]# oc get pods
NAME                                    READY   STATUS              RESTARTS   AGE
marketplace-operator-5bcc66f6f6-m44x4   1/1     Running             0          77m
redhat-operators-w66xx                  0/1     ContainerCreating   0          3s

This custom CatalogSource (Publisher is Jian) can be created well.

3, After the default OperatorHub reenabled, the default CatalogSource objects are back. That custom catalog source object is overwide.
[root@preserve-olm-env data]# oc patch operatorhub cluster -p '{"spec": {"disableAllDefaultSources": false}}' --type=merge
operatorhub.config.openshift.io/cluster patched
[root@preserve-olm-env data]# oc get catalogsource
NAME                  DISPLAY               TYPE   PUBLISHER   AGE
certified-operators   Certified Operators   grpc   Red Hat     9s
community-operators   Community Operators   grpc   Red Hat     9s
redhat-marketplace    Red Hat Marketplace   grpc   Red Hat     9s
redhat-operators      Red Hat Operators     grpc   Red Hat     3m12s
[root@preserve-olm-env data]# oc get pods
NAME                                    READY   STATUS    RESTARTS   AGE
certified-operators-p2xbm               1/1     Running   0          55s
community-operators-774vz               1/1     Running   0          55s
marketplace-operator-5bcc66f6f6-m44x4   1/1     Running   0          80m
redhat-marketplace-l9ttd                1/1     Running   0          55s
redhat-operators-nv577                  1/1     Running   0          55s

LGTM, verify it.

Comment 6 errata-xmlrpc 2020-11-30 16:46:09 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.6 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/RHBA-2020:5115


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