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: Always 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:
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 ***
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.
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.