OLM known issue: ResolutionFailed message
The IBM Cloud Pak foundational services operator subscription status is not updated
after the ClusterServiceVersion (CSV) status changes to Succeeded.
Symptom
The foundational services
operator is running. However, when you check the operator
subscription by using the command-line interface (CLI), you see
that the subscription does not have the
.status.installedCSV field.
On the Red Hat® OpenShift®
cluster console, the foundational services
operator CSV shows the Cannot update: CatalogSource was
removed status. However, the CatalogSource exists in the
cluster. Similarly, the operator Subscription exists in the
cluster, but shows the Unknown failure status.
You also see error message similar to following one in the operator subscription status:
- message: >-
constraints not satisfiable: subscription
operand-deployment-lifecycle-manager-app exists, clusterserviceversion
operand-deployment-lifecycle-manager.v4.0.0 exists and is not referenced
by a subscription,
@existing/cloudpak-control-2//operand-deployment-lifecycle-manager.v4.0.0
and
opencloud-operators/openshift-marketplace/v4.0/operand-deployment-lifecycle-manager.v4.0.0
provide OperandRequest (operator.ibm.com/v1alpha1), subscription
operand-deployment-lifecycle-manager-app requires
opencloud-operators/openshift-marketplace/v4.0/operand-deployment-lifecycle-manager.v4.0.0
reason: ConstraintsNotSatisfiable
status: 'True'
type: ResolutionFailed
Error message similar to following one can be seen in the logs
of the catalog-operator pod, which is in
openshift-operator-lifecycle-manager namespace:
$ oc -n openshift-operator-lifecycle-manager logs $(oc get pods -l app=catalog-operator -o NAME -n openshift-operator-lifecycle-manager ) |grep "'ResolutionFailed' constraints not satisfiable"
...
type: 'Warning' reason: 'ResolutionFailed' constraints not satisfiable: subscription operand-deployment-lifecycle-manager-app requires opencloud-operators/openshift-marketplace/v4.0/operand-deployment-lifecycle-manager.v4.0.0, opencloud-operators/openshift-marketplace/v4.0/operand-deployment-lifecycle-manager.v4.0.0 and @existing/cloudpak-control-2//operand-deployment-lifecycle-manager.v4.0.0 originate from package ibm-odlm, clusterserviceversion operand-deployment-lifecycle-manager.v4.0.0 exists and is not referenced by a subscription, subscription operand-deployment-lifecycle-manager-app exists
...
Cause
Operator Lifecycle Manager (OLM) fails to update the subscription status when the CSV status changes.
In majority of the cases, this issue is related to the subscriptions and CSVs creating requirements that cannot be satisfied by the resolver.
For more information, see GitHub issue and Red Hat OpenShift issue.
Resolution
For more information about how to resolve the issue, see the following topics:
- Reinstalling an Operator fails Due to Catalog Cache with ResolutionFailed in OpenShift Container Platform 4
-
Operator cannot be upgraded with the error
Cannot update: CatalogSource was removedwhile the CatalogSource exists in OpenShift Container Platform 4
Complete the following steps to resolve the issue:
-
Restart the
catalog-operatorpod in theopenshift-operator-lifecycle-managernamespace. This step resolves the issue in most cases.oc -n openshift-operator-lifecycle-manager delete $(oc get pods -l app=catalog-operator -o NAME -n openshift-operator-lifecycle-manager) -
If the issue is still not resolved, check the subscription in the OpenShift console to know which operator has the
Unknown failurestatus. Or, from the CLI, check the subscription description.oc describe subscription -n <operator-namespace> | grep "constraints not satisfiable"You might see a message similar to the following message:
Message: constraints not satisfiable: clusterserviceversion operand-deployment-lifecycle-manager.v4.0.0 exists and is not referenced by a subscription, @existing/cloudpak-control-2//operand-deployment-lifecycle-manager.v4.0.0 and opencloud-operators/openshift-marketplace/v4.0/operand-deployment-lifecycle-manager.v4.0.0 provide OperandRequest (operator.ibm.com/v1alpha1), subscription operand-deployment-lifecycle-manager-app exists, subscription operand-deployment-lifecycle-manager-app requires opencloud-operators/openshift-marketplace/v4.0/operand-deployment-lifecycle-manager.v4.0.0 -
Get the CSVs of the subscriptions that show the
constraints not satisfiableerror. In the example message in the prior step, see theoperand-deployment-lifecycle-manager.v4.0.0information.oc get csv -n <operator-namespace> | grep '<name-of-the-corresponding-CSV>' -
Delete the CSV that you got in the previous step.
oc delete csv <name-of-the-corresponding-CSV> -n <operator-namespace> -
Repeat the steps from the check the subscription step until no more
constraints not satisfiableerror is seen in the subscription.
After the constraints not satisfiable error is
gone, OLM re-creates the CSV that you deleted.