Bug 1826185

Summary: Deploy local storage operator on OCP 4.5 cluster failed
Product: OpenShift Container Platform Reporter: Qin Ping <piqin>
Component: StorageAssignee: Jan Safranek <jsafrane>
Status: CLOSED ERRATA QA Contact: Qin Ping <piqin>
Severity: high Docs Contact:
Priority: high    
Version: 4.5CC: aos-bugs, jsafrane
Target Milestone: ---Keywords: TestBlocker
Target Release: 4.5.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-07-13 17:29:33 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:
Attachments:
Description Flags
logs for local storage operator installation none

Description Qin Ping 2020-04-21 08:04:18 UTC
Description of problem:
When deploy local storage operator on OCP 4.5, the csv is always in "Pending" status.

Version-Release number of selected component (if applicable):
$ oc get clusterversion
NAME      VERSION                             AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.5.0-0.nightly-2020-04-18-184707   True        False         5h18m   Cluster version is 4.5.0-0.nightly-2020-04-18-184707

$ oc get csv -n local-storage
oc get clusterversionNAME                                        DISPLAY         VERSION              REPLACES   PHASE
local-storage-operator.4.5.0-202004191920   Local Storage   4.5.0-202004191920              Pending


How reproducible:
Always

Steps to Reproduce:
1. Install local storage operator from web console.
2. check the status of csv object
3.

Actual results:
Always in "Pending" status

Expected results:
local storage oparator can deploy successfully.

Master Log:

Node Log (of failed PODs):

PV Dump:

PVC Dump:

StorageClass Dump (if StorageClass used by PV/PVC):

Additional info:
$ oc describe csv local-storage-operator.4.5.0-202004191920 -n local-storage
...
  Requirement Status:
    Group:    operators.coreos.com
    Kind:     ClusterServiceVersion
    Message:  CSV minKubeVersion (1.14.0) less than server version (v1.18.0-rc.1)
    Name:     local-storage-operator.4.5.0-202004191920
    Status:   Present
    Version:  v1alpha1
    Group:    apiextensions.k8s.io
    Kind:     CustomResourceDefinition
    Message:  CRD is not present
    Name:     localvolumes.local.storage.openshift.io
    Status:   NotPresent
    Version:  v1
    Group:    
    Kind:     ServiceAccount
    Message:  Service account does not exist
    Name:     local-storage-operator
    Status:   NotPresent
    Version:  v1
    Group:    
    Kind:     ServiceAccount
    Message:  Service account does not exist
    Name:     local-storage-admin
    Status:   NotPresent
    Version:  v1
Events:
  Type    Reason               Age   From                        Message
  ----    ------               ----  ----                        -------
  Normal  RequirementsUnknown  17m   operator-lifecycle-manager  requirements not yet checked
  Normal  RequirementsNotMet   17m   operator-lifecycle-manager  one or more requirements couldn't be found


$ oc get installplans -n local-storage
NAME            CSV                                         APPROVAL    APPROVED
install-lr4df   local-storage-operator.4.5.0-202004191920   Automatic   true

$ oc describe installplans  install-lr4df -n local-storage
...
Status:
  Catalog Sources:
    qe-app-registry
  Conditions:
    Last Transition Time:  2020-04-21T07:32:35Z
    Last Update Time:      2020-04-21T07:32:35Z
    Message:               CustomResourceDefinition.apiextensions.k8s.io "localvolumes.local.storage.openshift.io" is invalid: [spec.validation.openAPIV3Schema.properties[status].properties[conditions].items.properties[lastTransitionTime].type: Unsupported value: "dateTime": supported values: "array", "boolean", "integer", "number", "object", "string", spec.validation.openAPIV3Schema.properties[status].properties[conditions].items.type: Required value: must not be empty for specified array items, spec.validation.openAPIV3Schema.type: Required value: must not be empty at the root]
    Reason:                InstallComponentFailed
    Status:                False
    Type:                  Installed
  Phase:                   Failed
...

Comment 1 Jan Safranek 2020-04-21 08:40:17 UTC
Strange, kubectl can apply LSO CRD without issues, the error must come from some other CRD validation.

Anyway, https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#specifying-a-structural-schema says everything (incl. array items) must have a type and does not specify "dateTime", so the CRD is indeed wrong.

Comment 4 Qin Ping 2020-04-23 09:39:34 UTC
Created attachment 1681045 [details]
logs for local storage operator installation

Comment 5 Qin Ping 2020-04-23 09:41:56 UTC
Verification failed with local-storage-operator.4.5.0-202004221317 

Hello Jan,

In case I missed some err msg, I attached all logs in the attachment.

Comment 7 Qin Ping 2020-05-09 02:26:40 UTC
verified with: 
# oc get clusterversion
NAME      VERSION                             AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.5.0-0.nightly-2020-05-08-222601   True        False         21m     Cluster version is 4.5.0-0.nightly-2020-05-08-222601

# oc get csv -n local-storage
NAME                                        DISPLAY         VERSION              REPLACES   PHASE
local-storage-operator.4.5.0-202005061719   Local Storage   4.5.0-202005061719              Succeeded

Comment 8 errata-xmlrpc 2020-07-13 17:29:33 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, 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/RHBA-2020:2409