Bug 1994648 - Resolution failed error condition in Subscription not being removed after resolution error is resolved.
Summary: Resolution failed error condition in Subscription not being removed after res...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: OLM
Version: 4.9
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 4.9.0
Assignee: Joe Lanford
QA Contact: xzha
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-08-17 15:50 UTC by Anik
Modified: 2021-10-18 17:47 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-10-18 17:47:03 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github openshift operator-framework-olm pull 176 0 None None None 2021-08-24 21:31:10 UTC
Red Hat Product Errata RHSA-2021:3759 0 None None None 2021-10-18 17:47:14 UTC

Description Anik 2021-08-17 15:50:26 UTC
Description of problem:

When a Subscription fails due to any dependency resolution error, a condition in the subscription captures the reason for the error in it's message. However, when the error is resolved, the condition status (true) and the message
sticks around. The condition status should be set to false, and the message and reason of the condition should be cleared off.

Version-Release number of selected component (if applicable):

4.9

How reproducible:

Always 

Steps to Reproduce:
1. Create a subscription for an operator to a non-existing CatalogSource 
2. Check for the following condition in the Subscription: 

- message: 'constraints not satisfiable: no operators found from catalog operatorhubio-catalog
        in namespace olm referenced by subscription lib-bucket, subscription lib-bucket
        exists'
      reason: ConstraintsNotSatisfiable
      status: "True"
      type: ResolutionFailed

3. Create the CatalogSource that provides the operator that the Subscription specifies

Actual results:

Subscription succeeds, with the operator being installed, but the condition is not removed/reset 

Expected results:

The condition is reset when the operator is installed, otherwise the Subscription conveys an erroneous message that the operator has not been installed. 


Additional info:

Comment 5 xzha 2021-08-27 08:42:20 UTC
verify:

zhaoxia@xzha-mac ditto % oc get clusterversion
NAME      VERSION                             AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.9.0-0.nightly-2021-08-26-164418   True        False         67m     Cluster version is 4.9.0-0.nightly-2021-08-26-164418
zhaoxia@xzha-mac ditto % oc exec catalog-operator-6467c8664f-wpgpr -- olm --version
OLM version: 0.18.3
git commit: 859291e1cd7486e3f3a93b19b5133b7432239900

1, install sub
zhaoxia@xzha-mac ditto % cat sub_ditto.yaml
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: ditto-operator
  namespace: test-1
spec:
  channel: "alpha"
  installPlanApproval: Automatic 
  name: ditto-operator
  source: ditto-operator-index 
  sourceNamespace: openshift-marketplace

zhaoxia@xzha-mac ditto % oc apply -f sub_ditto.yaml
subscription.operators.coreos.com/ditto-operator created
zhaoxia@xzha-mac ditto % oc get sub
NAME             PACKAGE          SOURCE                 CHANNEL
ditto-operator   ditto-operator   ditto-operator-index   alpha

zhaoxia@xzha-mac ditto % oc get sub -o yaml
apiVersion: v1
items:
- apiVersion: operators.coreos.com/v1alpha1
  kind: Subscription
    name: ditto-operator
    namespace: test-1
   ......
    conditions:
    - lastTransitionTime: "2021-08-27T08:29:41Z"
      message: targeted catalogsource openshift-marketplace/ditto-operator-index missing
      reason: UnhealthyCatalogSourceFound
      status: "True"
      type: CatalogSourcesUnhealthy
    - message: 'constraints not satisfiable: no operators found from catalog ditto-operator-index
        in namespace openshift-marketplace referenced by subscription ditto-operator,
        subscription ditto-operator exists'
      reason: ConstraintsNotSatisfiable
      status: "True"
      type: ResolutionFailed
    lastUpdated: "2021-08-27T08:29:43Z"
""

2, install catalog
zhaoxia@xzha-mac ditto % cat catsrc3.yaml 
apiVersion: operators.coreos.com/v1alpha1
kind: CatalogSource
metadata:
  name: ditto-operator-index
  namespace: openshift-marketplace
spec:
  displayName: Test
  publisher: OLM-QE
  sourceType: grpc
  image: quay.io/olmqe/ditto-index:v1-4.8
  updateStrategy:
    registryPoll:
      interval: 10m
zhaoxia@xzha-mac ditto % oc apply -f catsrc3.yaml 
catalogsource.operators.coreos.com/ditto-operator-index created
zhaoxia@xzha-mac ditto % oc get catsrc -A
NAMESPACE               NAME                   DISPLAY               TYPE   PUBLISHER   AGE
openshift-marketplace   certified-operators    Certified Operators   grpc   Red Hat     81m
openshift-marketplace   community-operators    Community Operators   grpc   Red Hat     81m
openshift-marketplace   ditto-operator-index   Test                  grpc   OLM-QE      10s
openshift-marketplace   redhat-marketplace     Red Hat Marketplace   grpc   Red Hat     81m
openshift-marketplace   redhat-operators       Red Hat Operators     grpc   Red Hat     81m

3, check sub condition
zhaoxia@xzha-mac ditto % oc get csv
NAME                    DISPLAY         VERSION   REPLACES                PHASE
ditto-operator.v0.2.0   Eclipse Ditto   0.2.0     ditto-operator.v0.1.1   Succeeded
zhaoxia@xzha-mac ditto % oc get sub ditto-operator -o yaml
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"operators.coreos.com/v1alpha1","kind":"Subscription","metadata":{"annotations":{},"name":"ditto-operator","namespace":"test-1"},"spec":{"channel":"alpha","installPlanApproval":"Automatic","name":"ditto-operator","source":"ditto-operator-index","sourceNamespace":"openshift-marketplace"}}
  creationTimestamp: "2021-08-27T08:29:27Z"
  generation: 1
  labels:
    operators.coreos.com/ditto-operator.test-1: ""
  name: ditto-operator
  namespace: test-1
  resourceVersion: "46887"
  uid: 82cb10ed-ed67-4869-b7f0-b98a82e8c1a5
......
  conditions:
  - lastTransitionTime: "2021-08-27T08:30:47Z"
    message: all available catalogsources are healthy
    reason: AllCatalogSourcesHealthy
    status: "False"
    type: CatalogSourcesUnhealthy
  - status: "False"
    type: ResolutionFailed
  currentCSV: ditto-operator.v0.2.0
  installPlanGeneration: 1
  installPlanRef:
    apiVersion: operators.coreos.com/v1alpha1
    kind: InstallPlan
    name: install-zfvvs
    namespace: test-1
    resourceVersion: "46667"
    uid: cd76cdfd-49e0-4c30-89e8-4ce64a003bf3
  installedCSV: ditto-operator.v0.2.0
  installplan:
    apiVersion: operators.coreos.com/v1alpha1
    kind: InstallPlan
    name: install-zfvvs
    uuid: cd76cdfd-49e0-4c30-89e8-4ce64a003bf3
  lastUpdated: "2021-08-27T08:31:02Z"
  state: AtLatestKnown


LGTM, verified.

Comment 8 errata-xmlrpc 2021-10-18 17:47:03 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Container Platform 4.9.0 bug fix and security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:3759


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