An
OperandRequest instance has no status
An OperandRequest instance is
deployed by a service, but it contains no status.
Environment
This issue might occur in any IBM Cloud PakĀ® product that uses one of the following IBM Cloud PakĀ® foundational services versions for the following release types:
- Continuous Delivery (CD) IBM Cloud Pak foundational services version 4.x
- Support Cycle-2 version 4.6.
For more information about release types, see Release types for IBM Cloud Pak foundational services .
Symptom
An OperandRequest instance is deployed in the
service namespace, but no phase, such as pending or running, is
present. Also, the status in the OperandRequest
instance is empty.
Cause
The Operator Lifecycle Manager (OLM) operator can't add the
operators.coreos.com/<packageName>.<namespace>:
"" label to the Operand Deployment Lifecycle Manager (ODLM)
ClusterServiceVersion (CSV). Because network security services
(NSS) can't modify the ODLM CSV, ODLM can't manage its resource in
the service namespace.
Diagnostic steps
Complete these steps to check if this issue occurs in your instance.
-
Run the following command to check if the status of an
OperandRequestinstance is empty. Replace the<serviceNamespace>value with your service namespace.$ oc get operandreqeuest -n <serviceNamespace> -
Run the following command to check the
WatchNamespaceenvironment variable of the operator. Replace the<operatorNamespace>value with your operator namespace.$ oc get deployment operand-deployment-lifecycle-manager -n <operatorNamespace> --no-headers -o jsonpath='{.spec.template.spec.containers[0].env[?(@.name == "WATCH_NAMESPACE")]}'If the command returns the following text, proceed to the next step. Otherwise, this issue doesn't apply to your instance.
{"name":"WATCH_NAMESPACE","valueFrom":{"fieldRef":{"apiVersion":"v1","fieldPath":"metadata.annotations['olm.targetNamespaces']"}}}` -
Check the label in the
Operand-Deployment-Lifecycle-ManagerCSV. Replace the<ODLM csvName>value with your ODLM CSV name, and replace the<operatorNamespace>value with your operator namespace.oc get ClusterServiceVersion <ODLM csvName> -n <operatorNamespace> --no-headers -o jsonpath='{.metadata.labels}'Check if the
"operators.coreos.com/ibm-odlm.<operatorNamespace>":""label exists in the label.
Workaround
- Add the
"operators.coreos.com/ibm-odlm.<operatorNamespace>":""label to theOperand-Deployment-Lifecycle-ManagerCSV. Replace the<operatorNamespace>value with your operator namespace. - Delete the
ibm-namespace-scope-operatorpod to trigger a new reconciliation. - Check to confirm that the status of the
OperandRequestinstance appears.