Bug 1740599

Summary: The status of `Upgradeable` should NOT be `Unknown` after upgrading
Product: OpenShift Container Platform Reporter: Jian Zhang <jiazha>
Component: Service CatalogAssignee: Jesus M. Rodriguez <jesusr>
Status: CLOSED WONTFIX QA Contact: Jian Zhang <jiazha>
Severity: medium Docs Contact:
Priority: high    
Version: 4.1.zCC: bandrade, chezhang, chuo, jfan, scolange
Target Milestone: ---   
Target Release: 4.1.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-20 18:36:45 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1755492    
Bug Blocks:    

Description Jian Zhang 2019-08-13 10:47:17 UTC
Description of problem:
After upgrade to 4.1.11 from the 4.1.9(the same issue as upgrading from 4.1.11 to 4.2), the status of `Upgradeable` is `Unknown`. See below:
$ oc get co service-catalog-controller-manager -o yaml
...
  - lastTransitionTime: "2019-08-13T07:09:08Z"
    reason: NoData
    status: Unknown
    type: Upgradeable

But, the status of the `Available` of `servicecatalogcontrollermanager` is "True".
    conditions:
    - lastTransitionTime: "2019-08-13T10:02:09Z"
      status: "True"
      type: Available

Relevant code: https://github.com/openshift/cluster-svcat-controller-manager-operator/blob/master/vendor/github.com/openshift/library-go/pkg/operator/status/condition.go#L54 

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


mac:~ jianzhang$ oc get clusterversion
NAME      VERSION   AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.1.9     True        False         3h22m   Cluster version is 4.1.9

How reproducible:
always

Steps to Reproduce:
1. Install OCP 4.1.9.
2. Enable the Service Catalog by changing the `managementState` of servicecatalogapiserver/servicecatalogcontrollermanager value to `Managed` from `Removed`.

3, Upgrade cluster to 4.1.11.
4, Check the ClusterOperator: service-catalog-controller-manager

Actual results:
The status of `Upgradeable` is `Unknown`.

Expected results:
The status of `Upgradeable` should be `True`.

Additional info:
mac:~ jianzhang$ oc get co service-catalog-controller-manager -o yaml
apiVersion: config.openshift.io/v1
kind: ClusterOperator
metadata:
  creationTimestamp: "2019-08-13T02:34:53Z"
  generation: 1
  name: service-catalog-controller-manager
  resourceVersion: "111067"
  selfLink: /apis/config.openshift.io/v1/clusteroperators/service-catalog-controller-manager
  uid: ee5ed1d0-bd72-11e9-a729-068b4386931c
spec: {}
status:
  conditions:
  - lastTransitionTime: "2019-08-13T02:34:53Z"
    reason: AsExpected
    status: "False"
    type: Degraded
  - lastTransitionTime: "2019-08-13T06:26:46Z"
    reason: AsExpected
    status: "False"
    type: Progressing
  - lastTransitionTime: "2019-08-13T06:53:04Z"
    reason: AsExpected
    status: "True"
    type: Available
  - lastTransitionTime: "2019-08-13T02:34:53Z"
    reason: NoData
    status: Unknown
    type: Upgradeable
  extension: null
  relatedObjects:
  - group: operator.openshift.io
    name: cluster
    resource: servicecatalogcontrollermanagers
  - group: ""
    name: openshift-service-catalog-controller-manager-operator
    resource: namespaces
  - group: ""
    name: openshift-service-catalog-controller-manager
    resource: namespaces
  versions:
  - name: operator
    version: 4.1.11

mac:~ jianzhang$ oc get servicecatalogcontrollermanager cluster -o yaml
apiVersion: operator.openshift.io/v1
kind: ServiceCatalogControllerManager
metadata:
  creationTimestamp: "2019-08-13T02:34:53Z"
  generation: 2
  name: cluster
  resourceVersion: "111066"
  selfLink: /apis/operator.openshift.io/v1/servicecatalogcontrollermanagers/cluster
  uid: ee4eec24-bd72-11e9-a729-068b4386931c
spec:
  logLevel: Normal
  managementState: Managed
status:
  conditions:
  - lastTransitionTime: "2019-08-13T06:53:04Z"
    status: "True"
    type: Available
  - lastTransitionTime: "2019-08-13T06:26:46Z"
    status: "False"
    type: Progressing
  - lastTransitionTime: "2019-08-13T02:34:53Z"
    reason: Removed
    status: "False"
    type: Degraded
  - lastTransitionTime: "2019-08-13T06:02:03Z"
    status: "False"
    type: WorkloadDegraded
  generations:
  - group: apps
    hash: ""
    lastGeneration: 3
    name: controller-manager
    namespace: openshift-service-catalog-controller-manager
    resource: daemonsets
  observedGeneration: 2
  readyReplicas: 0
  version: 4.1.11

Service Catalog Apiserver works as expected:
mac:~ jianzhang$ oc get co service-catalog-apiserver -o yaml
apiVersion: config.openshift.io/v1
kind: ClusterOperator
metadata:
  creationTimestamp: "2019-08-13T02:34:42Z"
  generation: 1
  name: service-catalog-apiserver
  resourceVersion: "110758"
  selfLink: /apis/config.openshift.io/v1/clusteroperators/service-catalog-apiserver
  uid: e7c67a55-bd72-11e9-94d3-0a42b9de771a
spec: {}
status:
  conditions:
  - lastTransitionTime: "2019-08-13T02:34:43Z"
    reason: AsExpected
    status: "False"
    type: Degraded
  - lastTransitionTime: "2019-08-13T06:26:04Z"
    reason: AsExpected
    status: "False"
    type: Progressing
  - lastTransitionTime: "2019-08-13T06:52:47Z"
    reason: AsExpected
    status: "True"
    type: Available
  - lastTransitionTime: "2019-08-13T06:01:40Z"
    reason: AsExpected
    status: "True"
    type: Upgradeable
  extension: null
  relatedObjects:
  - group: ""
    name: openshift-config
    resource: namespaces
  - group: ""
    name: openshift-config-managed
    resource: namespaces
  - group: ""
    name: openshift-service-catalog-apiserver-operator
    resource: namespaces
  - group: ""
    name: openshift-service-catalog-apiserver
    resource: namespaces
  - group: apiregistration.k8s.io
    name: v1beta1.servicecatalog.k8s.io
    resource: apiservices
  versions:
  - name: operator
    version: 4.1.11
  - name: service-catalog-apiserver
    version: ""