Description of problem:
Now to detect whether Manila service is available in the cluster, the operator sends a request to fetch all share types. If the cloud returns ErrEndpointNotFound, the operator becomes Disabled and stops working, but if some other error is returned, then the operator changes its status to Degraded and prevents cluster upgrades.
The latter happens when the user doesn't have enough permissions to list share types and the system returns 403 error. We need to tolerate such errors and set the operator status to Disabled too.
Steps to Reproduce:
1. Deploy an OpenStack with enabled Manila service
2. Forbid a user to list share types in Manila
3. Deploy an OpenShift cluster
Manila operator becomes Degraded and prevents upgrades
Manila operator should be Disabled in this case
I verified on our openstack platform:
1. Simulate to get 404 response when check the share type:
$ manila type-list
/usr/lib/python3.6/site-packages/manilaclient/v1/contrib/list_extensions.py:22: UserWarning: Module manilaclient.v1.contrib.list_extensions is deprecated (taken as a basis for manilaclient.v2.contrib.list_extensions). The preferable way to get a client class or object is to use the manilaclient.client module.
"Module manilaclient.v1.contrib.list_extensions is deprecated "
ERROR: Not Found (HTTP 404) (Request-ID: req-e5345caf-5549-4625-bb83-5c01841f7365)
2. Check the manila csi driver and CSO:
$ oc get co storage -o yaml
- lastTransitionTime: "2021-02-04T13:26:37Z"
ManilaCSIDriverOperatorCRAvailable: CSI driver for Manila is disabled: Cannot find API to fetch Manila share types
OpenStackCinderCSIDriverOperatorCRAvailable: All is well
$ oc get co storage
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
storage 4.7.0-0.nightly-2021-02-03-165316 True False False 11h
So I change the status to VERIFIED
@igreen Feel free to add comments according your test result, thanks.
See the 4.6 backport in https://bugzilla.redhat.com/show_bug.cgi?id=1918367, it plans to be shipped with 4.6.18.
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.7.0 security, bug fix, and enhancement 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.
Needinfo answered already.