Chapter 3. Understanding the Red Hat Quay configuration file
Whether deployed on premise of by the Red Hat Quay on OpenShift Container Platform Operator, the registry’s behavior is defined by the config.yaml
file. The config.yaml
file must include all required configuration fields for the registry to start. Red Hat Quay administrators can also define optional parameters that customize their registry, such as authentication parameters, storage parameters, proxy cache parameters, and so on.
The config.yaml
file must be written using valid YAML ("YAML Ain’t Markup Language") syntax, and Red Hat Quay cannot start if the file itself contains any formatting errors or missing required fields. Regardless of deployment type, whether that is on premise or Red Hat Quay on OpenShift Container Platform that is configured by the Operator, the YAML principles stay the same, even if the required configuration fields are slightly different.
The following section outlines basic YAML syntax relevant to creating and editing the Red Hat Quay config.yaml
file. For a more complete overview of YAML, see What is YAML.
3.1. Key-value pairs
Configuration fields within a config.yaml
file are written as key-value pairs in the following form:
... ...
# ...
EXAMPLE_FIELD_NAME: <value>
# ...
Each line within a config.yaml
file contains a field name, followed by a colon, a space, and then an appropriate value that matches with the key. The following example shows you how the AUTHENTICATION_TYPE
configuration field must be formatted in your config.yaml
file.
AUTHENTICATION_TYPE: Database # ...
AUTHENTICATION_TYPE: Database
# ...
- 1
- The authentication engine to use for credential authentication.
In the previous example, the AUTHENTICATION_TYPE
is set to Database
, however, different deployment types require a different value. The following example shows you how your config.yaml
file might look if LDAP
, or Lightweight Directory Access Protocol, was used for authentication:
AUTHENTICATION_TYPE: LDAP # ...
AUTHENTICATION_TYPE: LDAP
# ...
3.2. Indentation and nesting
Many Red Hat Quay configuration fields require indentation to indicate nested structures. Indentation must be done by using white spaces, or literal space characters; tab characters are not allowed by design. Indentation must be consistent across the file. The following YAML snippet shows you how the BUILDLOGS_REDIS
field uses indentation for the required host
, password,
and port
fields:
... ...
# ...
BUILDLOGS_REDIS:
host: quay-server.example.com
password: example-password
port: 6379
# ...
3.3. Lists
In some cases, the Red Hat Quay configuration field relies on lists to define certain values. Lists are formatted by using a hyphen (-
) followed by a space. The following example shows you how the SUPER_USERS
configuration field uses a list to define superusers:
... ...
# ...
SUPER_USERS:
- quayadmin
# ...
3.4. Quoted values
Some Red Hat Quay configuration fields require the use of quotation marks (""
) to properly define a variable. This is generally not required. The following examples shows you how the FOOTER_LINKS
configuration field uses quotation marks to define the TERMS_OF_SERVICE_URL
, PRIVACY_POLICY_URL
, SECURITY_URL
, and ABOUT_URL
:
FOOTER_LINKS: "TERMS_OF_SERVICE_URL": "https://www.index.hr" "PRIVACY_POLICY_URL": "https://www.jutarnji.hr" "SECURITY_URL": "https://www.bug.hr" "ABOUT_URL": "https://www.zagreb.hr"
FOOTER_LINKS:
"TERMS_OF_SERVICE_URL": "https://www.index.hr"
"PRIVACY_POLICY_URL": "https://www.jutarnji.hr"
"SECURITY_URL": "https://www.bug.hr"
"ABOUT_URL": "https://www.zagreb.hr"
3.5. Comments
The hash symbol, or #
, can be placed at the beginning of a line to add comments or to temporarily disable a configuration field. They are ignored by the configuration parser and will not affect the behavior of the registry. For example:
... FEATURE_UI_V2: true ...
# ...
# FEATURE_UI_V2: true
# ...
In this example, the FEATURE_UI_V2
configuration is ignored by the parser, meaning that the option to use the v2 UI is disabled. Using the #
symbol on a required configuration field results in failure for the registry to start.