Details
-
Bug
-
Resolution: Done
-
Blocker
-
quay-v3.4.0
Description
Description of problem:
Failed to set GCS as the storage backend for Quay via config tool
Version-Release number of selected component (if applicable):
quay.io/projectquay/quay:40cb9ed5
How reproducible:
Always
Steps to Reproduce:
1.Use operator to setup Quay, CR like below:
quay: image: quay.io/projectquay/quay:40cb9ed5 registryBackends: - name: gcs googleCloud: accessKey: GOOGLH bucketName: quay-qe-01 secretKey: sRUcma storagePath: /gcs
2.Check pod status
3.Check logs in pod
Actual results:
Quay pod cannot be created, check logs in config tool pod:
Traceback (most recent call last): File "/quay-registry/util/config/validator.py", line 83, in validate_service_for_config VALIDATORS[service](validator_context) File "/quay-registry/util/config/validators/validate_storage.py", line 44, in validate "Invalid storage configuration: %s: %s" % (name, msg)util.config.validators.ConfigValidationException: Invalid storage configuration: gcs: initial_value must be str or None, not bytesgunicorn-config stdout | 2020-08-04 03:10:39,583 [41] [ERROR] [util.config.validator] Validation exceptiongunicorn-config stdout | Traceback (most recent call last):gunicorn-config stdout | File "/quay-registry/util/config/validators/validate_storage.py", line 37, in validategunicorn-config stdout | driver.validate(client)gunicorn-config stdout | File "/quay-registry/storage/basestorage.py", line 54, in validategunicorn-config stdout | self.put_content("_verify", b"testing 123")gunicorn-config stdout | File "/quay-registry/storage/cloud.py", line 154, in put_contentgunicorn-config stdout | key.set_contents_from_string(content, **self._upload_params)gunicorn-config stdout | File "/quay-registry/src/boto/boto/gs/key.py", line 710, in set_contents_from_stringgunicorn-config stdout | fp = StringIO(get_utf8_value(s))gunicorn-config stdout | TypeError: initial_value must be str or None, not bytesgunicorn-config stdout | During handling of the above exception, another exception occurred:gunicorn-config stdout | Traceback (most recent call last):gunicorn-config stdout | File "/quay-registry/util/config/validator.py", line 83, in validate_service_for_configgunicorn-config stdout | VALIDATORS[service](validator_context)gunicorn-config stdout | File "/quay-registry/util/config/validators/validate_storage.py", line 44, in validategunicorn-config stdout | "Invalid storage configuration: %s: %s" % (name, msg)gunicorn-config stdout | util.config.validators.ConfigValidationException: Invalid storage configuration: gcs: initial_value must be str or None, not bytes
Expected results:
Setup Quay successfully
Additional info:
It works well with AWS S3 and Azure Cloud Storage