Chapter 2. Red Hat Quay configuration disclaimer With both standalone and Operator-based deployments of Red Hat Quay certain features and configuration parameters are not actively used or implemented. As a result, feature flags, such as those that enable or disable certain features, and configuration parameters that are not explicitly documented or requested for documentation by Red Hat Support, should only be modified with caution. Unused features or parameters might not be fully tested, supported, or compatible with Red Hat Quay. Modifying unused features parameters might lead to unexpected issues or disruptions with your deployment. For information about configuring Red Hat Quay in standalone deployments, see Advanced Red Hat Quay configuration For information about configuring Red Hat Quay Operator deployments, see Configuring Red Hat Quay on OpenShift Container Platform 2.1. Configuration updates for Red Hat Quay 3.10 The following sections detail new configuration fields added in Red Hat Quay 3.10. 2.1.1. Namespace auto-pruning configuration fields With Red Hat Quay 3.10, deployments can be configured to automatically prune old image tags by a specified, allotted amount, or by the time in which they were created. Table 2.1. Namespace auto-pruning configuration field Field Type Description FEATURE_AUTO_PRUNE Boolean When set to True , enables functionality related to the auto-pruning of tags. Default: False SECURITY_SCANNER_V4_MANIFEST_CLEANUP Boolean When set to true the Red Hat Quay garbage collector removes manifests that are not referenced by other tags or manifests. Default : True ROBOTS_DISALLOW Boolean When set to true , robot accounts are prevented from all interactions, as well as from being created Default : False FEATURE_UI_V2_REPO_SETTINGS Boolean When set to True , enables repository settings in the Red Hat Quay v2 UI. Default: False 2.2. Editing the configuration file To deploy a standalone instance of Red Hat Quay, you must provide the minimal configuration information. The requirements for a minimal configuration can be found in "Red Hat Quay minimal configuration." After supplying the required fields, you can validate your configuration. If there are any issues, they will be highlighted. Note It is possible to use the configuration API to validate the configuration, but this requires starting the Quay container in configuration mode. To deploy the configuration tool locally, see Getting started with Red Hat Quay and follow the instructions up to "Configuring Red Hat Quay". For changes to take effect, the registry must be restarted. 2.3. Location of configuration file in a standalone deployment For standalone deployments of Red Hat Quay, the config.yaml file must be specified when starting the Red Hat Quay registry. This file is located in the configuration volume. For example, the configuration file is located at USDQUAY/config/config.yaml when deploying Red Hat Quay by the following command: 2.4. Minimal configuration The following configuration options are required for a standalone deployment of Red Hat Quay: Server hostname HTTP or HTTPS Authentication type, for example, Database or Lightweight Directory Access Protocol (LDAP) Secret keys for encrypting data Storage for images Database for metadata Redis for build logs and user events Tag expiration options 2.4.1. Sample minimal configuration file The following example shows a sample minimal configuration file that uses local storage for images: AUTHENTICATION_TYPE: Database BUILDLOGS_REDIS: host: quay-server.example.com password: strongpassword port: 6379 ssl: false DATABASE_SECRET_KEY: 0ce4f796-c295-415b-bf9d-b315114704b8 DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay DEFAULT_TAG_EXPIRATION: 2w DISTRIBUTED_STORAGE_CONFIG: default: - LocalStorage - storage_path: /datastorage/registry DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] DISTRIBUTED_STORAGE_PREFERENCE: - default PREFERRED_URL_SCHEME: http SECRET_KEY: e8f9fe68-1f84-48a8-a05f-02d72e6eccba SERVER_HOSTNAME: quay-server.example.com SETUP_COMPLETE: true TAG_EXPIRATION_OPTIONS: - 0s - 1d - 1w - 2w - 4w USER_EVENTS_REDIS: host: quay-server.example.com port: 6379 ssl: false Note The SETUP_COMPLETE field indicates that the configuration has been validated. You should use the configuration editor tool to validate your configuration before starting the registry. 2.4.2. Local storage Using local storage for images is only recommended when deploying a registry for proof of concept purposes. When configuring local storage, storage is specified on the command line when starting the registry. The following command maps a local directory, USDQUAY/storage to the datastorage path in the container: 2.4.3. Cloud storage Storage configuration is detailed in the Image storage section. For some users, it might be useful to compare the difference between Google Cloud Platform and local storage configurations. For example, the following YAML presents a Google Cloud Platform storage configuration: USDQUAY/config/config.yaml DISTRIBUTED_STORAGE_CONFIG: default: - GoogleCloudStorage - access_key: GOOGQIMFB3ABCDEFGHIJKLMN bucket_name: quay_bucket secret_key: FhDAYe2HeuAKfvZCAGyOioNaaRABCDEFGHIJKLMN storage_path: /datastorage/registry DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] DISTRIBUTED_STORAGE_PREFERENCE: - default When starting the registry using cloud storage, no configuration is required on the command line. For example:

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 registry.redhat.io/quay/quay-rhel8:v3.10.9
AUTHENTICATION_TYPE: Database BUILDLOGS_REDIS: host: quay-server.example.com password: strongpassword port: 6379 ssl: false DATABASE_SECRET_KEY: 0ce4f796-c295-415b-bf9d-b315114704b8 DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay DEFAULT_TAG_EXPIRATION: 2w DISTRIBUTED_STORAGE_CONFIG: default: - LocalStorage - storage_path: /datastorage/registry DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] DISTRIBUTED_STORAGE_PREFERENCE: - default PREFERRED_URL_SCHEME: http SECRET_KEY: e8f9fe68-1f84-48a8-a05f-02d72e6eccba SERVER_HOSTNAME: quay-server.example.com SETUP_COMPLETE: true TAG_EXPIRATION_OPTIONS: - 0s - 1d - 1w - 2w - 4w USER_EVENTS_REDIS: host: quay-server.example.com port: 6379 ssl: false
sudo podman run -d --rm -p 80:8080 -p 443:8443 --name=quay -v USDQUAY/config:/conf/stack:Z -v USDQUAY/storage:/datastorage:Z registry.redhat.io/quay/quay-rhel8:v3.10.9
DISTRIBUTED_STORAGE_CONFIG: default: - GoogleCloudStorage - access_key: GOOGQIMFB3ABCDEFGHIJKLMN bucket_name: quay_bucket secret_key: FhDAYe2HeuAKfvZCAGyOioNaaRABCDEFGHIJKLMN storage_path: /datastorage/registry DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: [] DISTRIBUTED_STORAGE_PREFERENCE: - default
sudo podman run -d --rm -p 80:8080 -p 443:8443 --name=quay -v USDQUAY/config:/conf/stack:Z registry.redhat.io/quay/quay-rhel8:v3.10.9