OLM is unable to generate new install plans
The Operator Lifecycle Manager (OLM) is unable to generate new installation plans for updates or new installations.
Symptom
OLM is leaving Subscription objects without an
InstallPlanRef and InstallPlan resulting
in any future updates of existing operators or installations of new
operators being able to generate install plans.
Looking at the catalog-operator log, you see the following:
$ oc logs -n openshift-operator-lifecycle-manager <catalog-operator-pod> | grep "unable to get installplan from cache"
2022-02-16T18:02:32.250375793Z time="2022-02-16T18:02:32Z" level=warning msg="unable to get installplan from cache" channel=stable id=7HkBf installplan=install-lhmkp namespace=ibm-common-services pkg=cloud-native-postgresql source=ibm-operator-catalog sub=cloud-native-postgresql-stable-ibm-operator-catalog-openshift-marketplace
Resolution
To resolve this issue, you can either delete the
Subscription or delete the
metadata.annotations.olm.generated-by field.
Deleting the
Subscription
The deletion of previous Subscription and
CSV from the namespace of that operator
which need to be upgraded fixes the missing
InstallPlan generation:
$ oc get subs -n [namespace_name]
[...]
$ oc delete subs [subs_names_separated_by_spaces] -n [namespace_name] --wait
subscription.operators.coreos.com "old-operator-subscription" deleted
$ oc get csv -n [namespace_name]
[...]
$ oc delete csv [cvs_names_separated_by_spaces] -n [namespace_name] --wait
clusterserviceversion.operators.coreos.com "old-operator.v2.4.2" deleted
$ oc describe subs/new-operator-subscription -n <namespace_name>
Install Plan Generation: 1
Install Plan Ref:
API Version: operators.coreos.com/v1alpha1
Kind: InstallPlan
Name: install-mxw59
Namespace: <namespace_name>
Resource Version: 215607
UID: 43162fc6-c91e-4394-a836-1399c7465a11
Installplan:
API Version: operators.coreos.com/v1alpha1
Kind: InstallPlan
Name: install-mxw59
Uuid: 43162fc6-c91e-4394-a836-1399c7465a11
Last Updated: 2022-04-25T08:24:08Z
State: UpgradePending
Deleting the metadata.annotations.olm.generated-by
field
Simply delete the
metadata.annotations.olm.generated-by field:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
annotations:
olm.generated-by: install-zs6p2 <----------------- this annotation
name: >-
ibm-common-service-operator-v4.2-opencloud-operators-v4-2-openshift-marketplace
namespace: bawent