Bug 1910500

Summary: Could not list CSI provisioner on web when create storage class on GCP platform
Product: OpenShift Container Platform Reporter: Chao Yang <chaoyang>
Component: Management ConsoleAssignee: Jakub Hadvig <jhadvig>
Status: CLOSED ERRATA QA Contact: Yadan Pei <yapei>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.7CC: aballant, anbehl, aos-bugs, cajieh, jokerman, jsafrane, nmukherj, spadgett, yapei
Target Milestone: ---   
Target Release: 4.8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Fixed an issue where CSI provisioners were not listed when creating a storage class in the web console.
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-07-27 22:35:38 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
CSIDrivers are listed dynamically none

Description Chao Yang 2020-12-24 08:28:43 UTC
Description of problem:
Could not list CSI provisioner on web when create storage class

Version-Release number of selected component (if applicable):
4.7.0-0.nightly-2020-12-21-131655

How reproducible:
Always

Steps to Reproduce:
1.In the OCP web console, click storage--storage classes 
2.Click Create Storage Class
3.When click the drop down list of Provisioners, some csi related provisioner listed.

Actual results:
No csi related provisioner listed when create storage class on web

Expected results:
There should be some csi provisioners, such as pd.csi.storage.gke.io

Master Log:

Node Log (of failed PODs):

PV Dump:

PVC Dump:

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

Additional info:

Comment 1 Jan Safranek 2021-01-05 12:20:43 UTC
Moving to Console. "Create Storage Class" page needs some updates:

1. It should allow users (admins) to set a custom provisioner, outside of the hardcoded list - they may want to use a custom provisioner for e.g. flex volumes.

2. In 4.6 we added some CSI drivers to the default installation and these new Provisioners should be added to the list:
   ebs.csi.aws.com
   csi.ovirt.org
   manila.csi.openstack.org

3. In 4.7, we're adding also:
   pd.csi.storage.gke.io
   cinder.csi.openstack.org

4. Instead of hardcoding the list of CSI drivers (= Provisioners) in 2. and 3., it's possible to list installed CSI drivers dynamically. List CSIDriver objects, "oc get csidriver", and collect CSIDriver.Name fields to get values allowed in StorageClass.Provisioner. Still, please keep the list of kubernetes.io/* provisioners there, they're hardcoded in Kubernetes and can't be listed (they're not CSI drivers by in-tree volume plugins).

Comment 2 Cyril 2021-02-03 21:54:57 UTC
Didn’t have time to work on this. Reassigning this to Jakub

Comment 5 Yadan Pei 2021-03-17 07:25:33 UTC
Created attachment 1763916 [details]
CSIDrivers are listed dynamically

I confirmed that on AWS cluster, CSIDrivers in the Provisioner list are dynamically listed.

# oc get csidrivers
NAME                   ATTACHREQUIRED   PODINFOONMOUNT   MODES        AGE
block.csi.ibm.com      true             false            Persistent   54s    (newly added CSIDriver)
ebs.csi.aws.com        true             false            Persistent   8h    (default CSIDriver on this AWS cluster)
example.ember-csi.io   true             true             Persistent   4m37s  (newly added CSIDriver)


All above CSIDrivers are listed in the Provisioner list, see screenshot

Comment 6 Yadan Pei 2021-03-17 07:35:46 UTC
console should be working as expected.

this seems a storage issue: missing CSIDriver for GCP PD

Comment 7 Ankush Behl 2021-03-17 07:48:00 UTC
Thanks, Yadan Pei, for confirming.

This PR on console https://github.com/openshift/console/pull/8337, the user will add the flexibility to add additional parameters
if the provisioner parameters are not known to the console.

Probably we can have a cloned bug to fix the storage backed for the GCP PD driver.

Comment 8 Yadan Pei 2021-03-17 09:08:32 UTC
> This PR on console https://github.com/openshift/console/pull/8337, the user will add the flexibility to add additional parameters
if the provisioner parameters are not known to the console

This sounds reasonable, if this is the issue we gonna fix in this bug I think the description should be totally different. 


> Probably we can have a cloned bug to fix the storage backed for the GCP PD driver

Open a new bug tracking the storage backend issue is the best

Comment 9 Chao Yang 2021-03-18 08:05:22 UTC
This is the storage bug for gcp csi driver 
https://bugzilla.redhat.com/show_bug.cgi?id=1939865

Comment 12 Yadan Pei 2021-04-12 02:45:55 UTC
1. check CSI drivers with CLI
# oc get csidriver
NAME                    ATTACHREQUIRED   PODINFOONMOUNT   STORAGECAPACITY   TOKENREQUESTS   REQUIRESREPUBLISH   MODES        AGE
pd.csi.storage.gke.io   true             false            false             <unset>         false               Persistent   84m

2. pd.csi.storage.gke.io is in the provisioners list on create storage class page
3. Install Operator for IBM block storage CSI driver then create some other csi drivers which are unknown to console
# oc get csv -n default
NAME                            DISPLAY                                     VERSION   REPLACES                        PHASE
ibm-block-csi-operator.v1.5.0   Operator for IBM block storage CSI driver   1.5.0     ibm-block-csi-operator.v1.4.0   Succeeded

# oc get csidriver
NAME                    ATTACHREQUIRED   PODINFOONMOUNT   STORAGECAPACITY   TOKENREQUESTS   REQUIRESREPUBLISH   MODES        AGE
block.csi.ibm.com       true             false            false             <unset>         false               Persistent   6s
pd.csi.storage.gke.io   true             false            false             <unset>         false               Persistent   94m

4. when `block.csi.ibm.com` is selected as provisioner, we show a section for use to add `Additional parameters` 

Verified on 4.8.0-0.nightly-2021-04-09-222447

Comment 16 errata-xmlrpc 2021-07-27 22:35:38 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.8.2 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:2438