Bug 1889882 - Unable to load operator from catalog which worked in OCP 4.5
Summary: Unable to load operator from catalog which worked in OCP 4.5
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: OLM
Version: 4.6
Hardware: x86_64
OS: Linux
Target Milestone: ---
: 4.7.0
Assignee: Ben Luddy
QA Contact: Jian Zhang
Depends On:
TreeView+ depends on / blocked
Reported: 2020-10-20 19:19 UTC by Krishna Raman
Modified: 2020-10-21 21:59 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Last Closed: 2020-10-21 21:59:02 UTC
Target Upstream Version:

Attachments (Terms of Use)

Description Krishna Raman 2020-10-20 19:19:52 UTC
Description of problem:
Unable to load catalog which worked in OCP 4.5. 

Error in catalog-operator logs:

type: 'Warning' reason: 'ResolutionFailed' found more than one head for channel

Version-Release number of selected component (if applicable):
4.6-rc3 and 4.6-rc4

How reproducible:

Steps to Reproduce:
1. Add the following catalog sources:
  * docker.io/ibmcom/ibm-common-service-catalog:latest
  * ibmcom/datapower-operator-catalog:latest 
  * ibmcom/ibm-apiconnect-catalog:latest 
2. Create a new namespace and create a new subscription for "IBM API Connect"
3. Look at logs for catalog-operator.

Actual results:
Operator never installs and see error in catalog-operator re more than one head for channel

Expected results:
Installs common services, datapower and apiconnect operators

Additional info:

Comment 1 Ben Luddy 2020-10-20 21:41:53 UTC
I believe this is a duplicate of https://bugzilla.redhat.com/show_bug.cgi?id=1866861 -- ibmcom/datapower-operator-catalog:latest and ibmcom/ibm-apiconnect-catalog:latest both exhibit the same symptoms. Please rebuild those indices using the latest registry.redhat.io/openshift4/ose-operator-registry:v4.5 as your --binary-image and reopen this issue if that doesn't resolve the problem you're observing.

*** This bug has been marked as a duplicate of bug 1866861 ***

Comment 2 Krishna Raman 2020-10-20 23:07:04 UTC
I rebuilt the registry using registry.redhat.io/openshift4/ose-operator-registry:v4.5.0-202010081312.p0 but am still running into issues.

if I install the v2.0 channel (doesnt contain a dependencies.yaml, same bundles that worked in OCP 4.5) I get the following error:

E1020 22:21:24.376108       1 queueinformer_operator.go:290] sync "apic" failed: constraints not satisfiable: ibm-apiconnect has a dependency without any candidates to satisfy it, ibm-apiconnect is mandatory
I1020 22:21:24.376205       1 event.go:278] Event(v1.ObjectReference{Kind:"Namespace", Namespace:"", Name:"apic", UID:"e3746c53-b7cb-4f68-ae21-eec7971ad2a4", APIVersion:"v1", ResourceVersion:"59233", FieldPath:""}): type: 'Warning' reason: 'ResolutionFailed' constraints not satisfiable: ibm-apiconnect has a dependency without any candidates to satisfy it, ibm-apiconnect is mandatory

if I install the v2.1-eus channel (with a dependencies.yaml, new bundle) I get the following error:

E1020 22:20:40.069166       1 queueinformer_operator.go:290] sync "apic" failed: found more than one head for channel

for your reference, ive uploaded the 2.1.0 bundle to kraman/ibm-apiconnect-operator-bundle:2.1.0
and the catalog to kraman/ibm-apiconnect-catalog:build-1.

Comment 4 Ben Luddy 2020-10-21 21:59:02 UTC
Summary of the findings from our thread in Kubernetes Slack:

- Both the apiconnect and datapower index images need to be rebuilt with newer registry binaries. The error "found more than one head for channel" appears due to a bug that exists in registry-server in these images.
- In order to use the package/version dependencies introduced in 4.6, both the catalog containing the depender and the catalog containing the dependee should be built using the 4.6 binaries. 4.6-based index images should also work on <4.6 clusters as long as they do not make use of 4.6 features.
- There is a typo in the package/version dependency of ibm-apiconnect.v2.1.0: the packageName is listed as "ibm-datapower-operator", but the package available in the datapower catalog is named "datapower-operator", without the "ibm-" prefix.

I confirmed that I am able to resolve subscriptions for apiconnect's channels v1.0, v2.0, and v2.1-eus if these items are addressed.

Please feel free to follow up with any further questions on Slack and/or file new bugs for any other issues you run into.

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