Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-861

Deploy Quay is failed with AWS S3 as backend storage registry

    XMLWordPrintable

Details

    • Tarkin [Quay 187]
    • 0

    Description

      Description:

      This is an issue found when deploy quay using Operator, using AWS S3 as backend storage registry, the deployment was failed, the error message is "util.config.validators.ConfigValidationException: Invalid storage configuration: s3: 'dict' object has no attribute 'iteritems', refer to logs for details.

      Image:

      quay.io/projectquay/quay:solo
      quay.io/projectquay/clair-jwt:solo

       

      Expected Results:

      Quay deployment should complete successfully.

      Actual Results:

      Quay deployment was failed.

       

      Logs:

      2020-07-14 02:37:39,983 [53] [INFO] [gunicorn.access]  - quayconfig [14/Jul/2020:02:37:39 +0000] "POST /api/v1/superuser/config/validate/redis HTTP/1.0" 200 17 "-" "Go-http-client/1.1"

      gunicorn-config stdout | 2020-07-14 02:37:39,983 [53] [INFO] [gunicorn.access]  - quayconfig [14/Jul/2020:02:37:39 +0000] "POST /api/v1/superuser/config/validate/redis HTTP/1.0" 200 17 "-" "Go-http-client/1.1"

      2020-07-14 02:37:39,994 [53] [ERROR] [util.config.validator] Validation exception

      Traceback (most recent call last):

        File "/quay-registry/util/config/validators/validate_storage.py", line 37, in validate

          driver.validate(client)

        File "/quay-registry/storage/basestorage.py", line 54, in validate

          self.put_content("_verify", b"testing 123")

        File "/quay-registry/storage/cloud.py", line 154, in put_content

          key.set_contents_from_string(content, **self._upload_params)

        File "/quay-registry/src/boto/boto/s3/key.py", line 1442, in set_contents_from_string

          encrypt_key=encrypt_key)

        File "/quay-registry/src/boto/boto/s3/key.py", line 1309, in set_contents_from_file

          chunked_transfer=chunked_transfer, size=size)

        File "/quay-registry/src/boto/boto/s3/key.py", line 762, in send_file

          chunked_transfer=chunked_transfer, size=size)

        File "/quay-registry/src/boto/boto/s3/key.py", line 963, in _send_file_internal

          query_args=query_args

        File "/quay-registry/src/boto/boto/s3/connection.py", line 671, in make_request

          retry_handler=retry_handler

        File "/quay-registry/src/boto/boto/connection.py", line 1071, in make_request

          retry_handler=retry_handler)

        File "/quay-registry/src/boto/boto/connection.py", line 927, in _mexe

          request.authorize(connection=self)

        File "/quay-registry/src/boto/boto/connection.py", line 377, in authorize

          connection._auth_handler.add_auth(self, **kwargs)

        File "/quay-registry/src/boto/boto/auth.py", line 760, in add_auth

          **kwargs)

        File "/quay-registry/src/boto/boto/auth.py", line 577, in add_auth

          canonical_request = self.canonical_request(req)

        File "/quay-registry/src/boto/boto/auth.py", line 453, in canonical_request

          cr.append(self.canonical_headers(headers_to_sign) + '\n')

        File "/quay-registry/src/boto/boto/auth.py", line 416, in canonical_headers

          for name, value in sorted(canonical.iteritems()):

      AttributeError: 'dict' object has no attribute 'iteritems'

       

      During handling of the above exception, another exception occurred:

       

      Traceback (most recent call last):

        File "/quay-registry/util/config/validator.py", line 85, 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: s3: 'dict' object has no attribute 'iteritems'

      gunicorn-config stdout | 2020-07-14 02:37:39,994 [53] [ERROR] [util.config.validator] Validation exception

      gunicorn-config stdout | Traceback (most recent call last):

      gunicorn-config stdout |   File "/quay-registry/util/config/validators/validate_storage.py", line 37, in validate

      gunicorn-config stdout |     driver.validate(client)

      gunicorn-config stdout |   File "/quay-registry/storage/basestorage.py", line 54, in validate

      gunicorn-config stdout |     self.put_content("_verify", b"testing 123")

      gunicorn-config stdout |   File "/quay-registry/storage/cloud.py", line 154, in put_content

      gunicorn-config stdout |     key.set_contents_from_string(content, **self._upload_params)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/s3/key.py", line 1442, in set_contents_from_string

      gunicorn-config stdout |     encrypt_key=encrypt_key)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/s3/key.py", line 1309, in set_contents_from_file

      gunicorn-config stdout |     chunked_transfer=chunked_transfer, size=size)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/s3/key.py", line 762, in send_file

      gunicorn-config stdout |     chunked_transfer=chunked_transfer, size=size)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/s3/key.py", line 963, in _send_file_internal

      gunicorn-config stdout |     query_args=query_args

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/s3/connection.py", line 671, in make_request

      gunicorn-config stdout |     retry_handler=retry_handler

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/connection.py", line 1071, in make_request

      gunicorn-config stdout |     retry_handler=retry_handler)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/connection.py", line 927, in _mexe

      gunicorn-config stdout |     request.authorize(connection=self)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/connection.py", line 377, in authorize

      gunicorn-config stdout |     connection._auth_handler.add_auth(self, **kwargs)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/auth.py", line 760, in add_auth

      gunicorn-config stdout |     **kwargs)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/auth.py", line 577, in add_auth

      gunicorn-config stdout |     canonical_request = self.canonical_request(req)

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/auth.py", line 453, in canonical_request

      gunicorn-config stdout |     cr.append(self.canonical_headers(headers_to_sign) + '\n')

      gunicorn-config stdout |   File "/quay-registry/src/boto/boto/auth.py", line 416, in canonical_headers

      gunicorn-config stdout |     for name, value in sorted(canonical.iteritems()):

      gunicorn-config stdout | AttributeError: 'dict' object has no attribute 'iteritems'

      gunicorn-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 85, in validate_service_for_config

      gunicorn-config stdout |     VALIDATORS[service](validator_context)

      gunicorn-config stdout |   File "/quay-registry/util/config/validators/validate_storage.py", line 44, in validate

      gunicorn-config stdout |     "Invalid storage configuration: %s: %s" % (name, msg)

      gunicorn-config stdout | util.config.validators.ConfigValidationException: Invalid storage configuration: s3: 'dict' object has no attribute 'iteritems'

      10.131.0.18 () - quayconfig [14/Jul/2020:02:37:39 +0000] "POST /api/v1/superuser/config/validate/registry-storage HTTP/1.1" 200 109 "-" "Go-http-client/1.1" (0.012 2518 0.012)

      nginx stdout | 10.131.0.18 () - quayconfig [14/Jul/2020:02:37:39 +0000] "POST /api/v1/superuser/config/validate/registry-storage HTTP/1.1" 200 109 "-" "Go-http-client/1.1" (0.012 2518 0.012)

      2020-07-14 02:37:39,997 [53] [INFO] [gunicorn.access]  - quayconfig [14/Jul/2020:02:37:39 +0000] "POST /api/v1/superuser/config/validate/registry-storage HTTP/1.0" 200 109 "-" "Go-http-client/1.1"

      gunicorn-config stdout | 2020-07-14 02:37:39,997 [53] [INFO] [gunicorn.access]  - quayconfig [14/Jul/2020:02:37:39 +0000] "POST /api/v1/superuser/config/validate/registry-storage HTTP/1.0" 200 109 "-" "Go-http-client/1.1"

       

      Attachments

        Issue Links

          Activity

            People

              sleesinc Kenny Lee Sin Cheong
              lzha1981 luffy zhang
              luffy zhang luffy zhang
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: