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

Quay Operator should support configure existing Mysql database as Quay database

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • quay-v3.3.2, quay-v3.4.0
    • quay-operator
    • None

      Description:

      This is an issue found when use Quay Operator to deploy Quay, as officially Quay support use Postgresql and Mysql as Quay's database, and also using Quay-config app admin can choose Mysql database to setup database schema, but when specify Mysql database connection info in Quay CR file, quay deployment was failed with error message "Connection pooling disabled for postgresql", that means Quay operator can only support "Postgresql", if Quay Customers want to use Mysql Database, they need to use Quay-config app to setup db and update Quay config.yaml manually.

      Suggestions:

      To improve Customer's user experience, suggest Quay Operator add support Mysql database.

      Quay Operator Image: V3.3.2

      Steps:

      1. Deploy Quay V3.3.2 Operator on OCP
      2. Create new Quay CR file by specifying mysql database server
      3. Create secret including Mysql server's userName, password and dbName
      4. Trigger Quay Deployment

      Expected Results:

      Quay deployment complete successfully.

      Actual Results:

      Quay deployment was failed at setup DB, see logs.

      apiVersion: redhatcop.redhat.io/v1alpha1
      kind: QuayEcosystem
      metadata:
        name: demo-quayecosystem
      spec:
        quay:
          imagePullSecretName: redhat-pull-secret
          enableRepoMirroring: true
          image: quay.io/projectquay/quay:0c65f88a
          registryBackends:
            - name: default
              s3:
                accessKey: ************************
                bucketName: quaymysql0909
                secretKey: ************************
                host: s3.us-east-2.amazonaws.com
          database: 
            credentialsSecretName: quaydb
            server: terraform-20200909023133730900000001.cmqwuswughvh.us-east-2.rds.amazonaws.com
          envVars:
            - name: DEBUGLOG
              value: "true"
        clair:
          enabled: true
          image: quay.io/quay/clair-jwt:v3.3.1-2
          imagePullSecretName: redhat-pull-secret
      

       Logs:

      2020-09-09 06:29:06,606 [53] [INFO] [gunicorn.access]  - quayconfig [09/Sep/2020:06:29:06 +0000] "POST /api/v1/configapp/initialization HTTP/1.0" 200 2 "-" "Go-http-client/1.1"
      gunicorn-config stdout | 2020-09-09 06:29:06,606 [53] [INFO] [gunicorn.access]  - quayconfig [09/Sep/2020:06:29:06 +0000] "POST /api/v1/configapp/initialization HTTP/1.0" 200 2 "-" "Go-http-client/1.1"
      2020-09-09 06:29:06,608 [53] [INFO] [data.database] Connection pooling disabled for postgresql
      gunicorn-config stdout | 2020-09-09 06:29:06,608 [53] [INFO] [data.database] Connection pooling disabled for postgresql
      2020-09-09 06:29:11,641 [53] [ERROR] [util.config.validator] Validation exception
      Traceback (most recent call last):
        File "/usr/local/lib/python3.6/site-packages/peewee.py", line 2993, in connect
          self._state.set_connection(self._connect())
        File "/usr/local/lib/python3.6/site-packages/peewee.py", line 3688, in _connect
          conn = psycopg2.connect(database=self.database, **self.connect_params)
        File "/usr/local/lib64/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
          conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
      psycopg2.OperationalError: timeout expired
      

              Unassigned Unassigned
              lzha1981 luffy zhang
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: