Chapter 4. Environment variables Red Hat Quay supports a limited number of environment variables for dynamic configuration. 4.1. Geo-replication The same configuration should be used across all regions, with exception of the storage backend, which can be configured explicitly using the QUAY_DISTRIBUTED_STORAGE_PREFERENCE environment variable. Table 4.1. Geo-replication configuration Variable Type Description QUAY_DISTRIBUTED_STORAGE_PREFERENCE String The preferred storage engine (by ID in DISTRIBUTED_STORAGE_CONFIG) to use. 4.2. Database connection pooling Red Hat Quay is composed of many different processes which all run within the same container. Many of these processes interact with the database. Database connection pooling is enabled by default, and each process that interacts with the database contains a connection pool. These per-process connection pools are configured to maintain a maximum of 20 connections. Under heavy load, it is possible to fill the connection pool for every process within a Red Hat Quay container. Under certain deployments and loads, this might require analysis to ensure that Red Hat Quay does not exceed the configured database's maximum connection count. Overtime, the connection pools release idle connections. To release all connections immediately, Red Hat Quay requires a restart. For standalone Red Hat Quay deployments, database connection pooling can be toggled off when starting your deployment. For example: USD sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v USDQUAY/config:/conf/stack:Z \ -v USDQUAY/storage:/datastorage:Z \ -e DB_CONNECTION_POOLING=false registry.redhat.io/quay/quay-rhel8:v3.12.1 For Red Hat Quay on OpenShift Container Platform, database connection pooling can be configured by modifying the QuayRegistry custom resource definition (CRD). For example: Example QuayRegistry CRD spec: components: - kind: quay managed: true overrides: env: - name: DB_CONNECTION_POOLING value: "false" Table 4.2. Database connection pooling configuration Variable Type Description DB_CONNECTION_POOLING String Whether to enable or disable database connection pooling. Defaults to true. Accepted values are "true" or "false" If database connection pooling is enabled, it is possible to change the maximum size of the connection pool. This can be done through the following config.yaml option: config.yaml ... DB_CONNECTION_ARGS: max_connections: 10 ... 4.3. HTTP connection counts It is possible to specify the quantity of simultaneous HTTP connections using environment variables. These can be specified as a whole, or for a specific component. The default for each is 50 parallel connections per process. Table 4.3. HTTP connection counts configuration Variable Type Description WORKER_CONNECTION_COUNT Number Simultaneous HTTP connections Default: 50 WORKER_CONNECTION_COUNT_REGISTRY Number Simultaneous HTTP connections for registry Default: WORKER_CONNECTION_COUNT WORKER_CONNECTION_COUNT_WEB Number Simultaneous HTTP connections for web UI Default: WORKER_CONNECTION_COUNT WORKER_CONNECTION_COUNT_SECSCAN Number Simultaneous HTTP connections for Clair Default: WORKER_CONNECTION_COUNT 4.4. Worker count variables Table 4.4. Worker count variables Variable Type Description WORKER_COUNT Number Generic override for number of processes WORKER_COUNT_REGISTRY Number Specifies the number of processes to handle Registry requests within the Quay container Values: Integer between 8 and 64 WORKER_COUNT_WEB Number Specifies the number of processes to handle UI/Web requests within the container Values: Integer between 2 and 32 WORKER_COUNT_SECSCAN Number Specifies the number of processes to handle Security Scanning (e.g. Clair) integration within the container Values: Integer. Because the Operator specifies 2 vCPUs for resource requests and limits, setting this value between 2 and 4 is safe. However, users can run more, for example, 16 , if warranted. 4.5. Debug variables The following debug variables are available on Red Hat Quay. Table 4.5. Debug configuration variables Variable Type Description DEBUGLOG Boolean Whether to enable or disable debug logs. USERS_DEBUG Integer. Either 0 or 1 . Used to debug LDAP operations in clear text, including passwords. Must be used with DEBUGLOG=TRUE . Important Setting USERS_DEBUG=1 exposes credentials in clear text. This variable should be removed from the Red Hat Quay deployment after debugging. The log file that is generated with this environment variable should be scrutinized, and passwords should be removed before sending to other users. Use with caution.

Commands:
sudo podman run -d --rm -p 80:8080 -p 443:8443 --name=quay -v USDQUAY/config:/conf/stack:Z -v USDQUAY/storage:/datastorage:Z -e DB_CONNECTION_POOLING=false registry.redhat.io/quay/quay-rhel8:v3.12.1
spec: components: - kind: quay managed: true overrides: env: - name: DB_CONNECTION_POOLING value: "false"
DB_CONNECTION_ARGS: max_connections: 10