Project Quay container registry platform provides secure storage, distribution, and governance of containers and cloud-native artifacts on any infrastructure. It is available as a standalone component or as an Operator on OpenShift Container Platform. Project Quay includes the following features and benefits:
-
Granular security management
-
Fast and robust at any scale
-
High velocity CI/CD
-
Automated installation and updates
-
Enterprise authentication and team-based access control
-
OpenShift Container Platform integration
Project Quay is regularly released, containing new features, bug fixes, and software updates. To upgrade Project Quay for both standalone and OpenShift Container Platform deployments, see Upgrade Project Quay.
|
Important
|
Project Quay only supports rolling back, or downgrading, to previous z-stream versions, for example, {producty-n1}.2 → {producty-n1}.1. Rolling back to previous y-stream versions (3.18 → {producty-n1}) is not supported. This is because Project Quay updates might contain database schema upgrades that are applied when upgrading to a new version of Project Quay. Database schema upgrades are not considered backwards compatible. Downgrading to previous z-streams is neither recommended nor supported by either Operator based deployments or virtual machine based deployments. Downgrading should only be done in extreme circumstances. The decision to rollback your Project Quay deployment must be made in conjunction with the Project Quay support and development teams. For more information, contact Project Quay support. |
Project Quay release notes
The following sections detail y and z stream release information.
RHBA-TBD - Project Quay 3.18.0 release
Issued TBD
Project Quay release 3.18 is now available with Clair 4.9. The bug fixes that are included in the update are listed in the RHBA-TBD advisory. For the most recent compatibility matrix, see Quay Enterprise 3.x Tested Integrations. For information on the release cadence of Project Quay, see the Project Quay Life Cycle Policy.
Project Quay new features and enhancements
The following updates have been made to Project Quay 3.18.
Microsoft Entra ID v2 token and multi-issuer OIDC support
With this release, Project Quay supports multiple OIDC issuers and audiences per identity provider in *_LOGIN_CONFIG blocks. You can configure Project Quay to accept Microsoft Entra ID v1.0 and v2.0 tokens from the same provider, validate custom token audiences for On-Behalf-Of (OBO) API flows, and optionally restrict which client applications can authenticate by using the authorized party (azp) claim.
This enhancement enables integrations with Red Hat Developer Hub (RHDH), Red Hat Dev Spaces, and other tools that use modern Entra ID v2.0 access tokens. Existing configurations that use a single OIDC_ISSUER continue to work without changes.
Project Quay now validates token audiences on API bearer-token requests. Audience verification is no longer disabled for SSO bearer tokens.
Federated robot authentication also supports an optional audiences array on each federation configuration entry. When configured, Project Quay validates the external OIDC token audience during robot token exchange. When absent, audience validation is skipped and a deprecation warning is logged. For more information, see Robot federation audiences field.
For configuration field descriptions, see OIDC multi-issuer configuration fields. For setup and migration procedures, see Configuring Microsoft Entra ID v2 and multi-issuer OIDC.
Red Hat Quay on OpenShift Container Platform new features and enhancements
The following updates have been made to Red Hat Quay on OpenShift Container Platform.
OpenShift Container Platform cluster TLS security profile inheritance & Post-Quantum Cryptography (PQC) readiness
When the tls component is set to unmanaged, the Project Quay Operator inherits the cluster’s TLS security profile from the APIServer configuration when neither SSL_PROTOCOLS nor SSL_CIPHERS is configured in the configBundleSecret resource. This helps align Project Quay with the platform TLS policy and supports Post-Quantum Cryptography (PQC) readiness when the cluster profile requires TLS 1.3.
To fully override or preserve TLS behavior, set both SSL_PROTOCOLS and SSL_CIPHERS in the configBundleSecret resource. Setting either field disables cluster-profile inheritance for both fields; partial configuration is not supported. Supported profile types are Old, Intermediate, Modern, and Custom. If the cluster has no profile set, the Operator defaults to the Intermediate profile (TLS 1.2 and TLS 1.3).
| TLS mode | Before this release | After this release |
|---|---|---|
Managed TLS (Operator-managed route) |
OpenShift Container Platform Route enforces the cluster TLS profile |
No change |
Unmanaged TLS ( |
Project Quay used built-in TLS defaults |
Project Quay inherits the cluster TLS security profile when neither |
|
Important
|
If you use unmanaged TLS and require specific TLS settings that differ from the cluster default, set both |
On Kubernetes clusters without the config.openshift.io API, the Operator does not inject TLS settings and Project Quay uses its built-in defaults.
For more information about SSL/TLS configuration fields, see SSL/TLS configuration fields.
For information about custom certificates and the config bundle, see Configuring custom SSL/TLS certificates for Red Hat Quay on OpenShift Container Platform. For information about TLS protocol and cipher inheritance, see OpenShift Container Platform cluster TLS security profile inheritance.
For more information about NIST post-quantum cryptography standards, see Post-Quantum Cryptography.
For the latest compliance information for OpenShift Container Platform, RHEL, and Red Hat Enterprise Linux CoreOS (RHCOS), see Compliance Activities and Government Standards.
Redis component resource overrides
With this release, you can override CPU and memory requests and limits for the Operator-managed redis component in the QuayRegistry custom resource. This brings redis in line with other managed components, such as quay, clair, mirror, and postgres, that already support resource overrides through spec.components[].overrides.resources.
When you do not set resource overrides for redis, the Operator uses the following defaults:
-
Requests:
500mCPU and1Gimemory -
Limits:
4000mCPU and16Gimemory
For example, to tune Redis resources for a smaller cluster, add an entry like the following under spec.components:
- kind: redis
managed: true
overrides:
resources:
limits:
cpu: 400m
memory: 400Mi
requests:
cpu: 400m
memory: 400Mi
For more information about configuring resource requests and limits, see Configuring QuayRegistry CR resources.
Clair ephemeral storage overrides
With this release, you can configure volumeSize and storageClassName overrides on the managed clair component in the QuayRegistry custom resource. These overrides customize the ephemeral volume that Clair uses for image layer extraction at /var/tmp.
When you do not set overrides, the Operator requests 20Gi of ephemeral storage with no explicit storage class. Large or unexpected images can exhaust this scratch space and disrupt vulnerability scanning.
For example:
- kind: clair
managed: true
overrides:
volumeSize: 50Gi
storageClassName: fast-ssd
These overrides apply to Clair scratch storage only. They do not resize the managed Clair PostgreSQL database.
For more information, see Configuring ephemeral storage for managed Clair.
External TLS Secret reference for the QuayRegistry CR
The Project Quay Operator supports referencing an external kubernetes.io/tls Secret for registry HTTPS certificates through the QuayRegistry CR. This feature enables automated certificate rotation without embedding ssl.cert and ssl.key files in the configBundleSecret CR. Certificate sources can include cert-manager, HashiCorp Vault, or manually updated Secrets. When the referenced Secret changes, the Operator performs a rolling restart of Project Quay pods.
The QuayRegistry status includes a ComponentTLSReady condition that reports whether TLS from the external Secret is valid and applied.
For configuration steps, see Referencing an external TLS Secret for Red Hat Quay on OpenShift Container Platform. For a cert-manager example, see Example: Using cert-manager with an external TLS Secret.
Project Quay configuration fields updates and changes
The following configuration fields have been added or changed in Project Quay 3.18.
SSL_PROTOCOLS and SSL_CIPHERS Operator inheritance on OpenShift Container Platform
When you deploy Red Hat Quay on OpenShift Container Platform, the Operator can populate the existing SSL_PROTOCOLS and SSL_CIPHERS fields from the cluster-wide OpenShift Container Platform tlsSecurityProfile when neither field is set in the configBundleSecret resource. To fully override or preserve TLS behavior, set both fields. Setting either field disables cluster-profile inheritance for both fields.
OIDC multi-issuer and multi-audience fields
The following optional fields were added to *_LOGIN_CONFIG blocks in Project Quay 3.18:
| Field | Type | Description |
|---|---|---|
.OIDC_ISSUERS |
Array of String |
Accepted issuer URLs for the provider. When set, Project Quay accepts tokens whose |
.OIDC_AUDIENCES |
Array of String |
Accepted audience values for bearer token and On-Behalf-Of (OBO) flows. When set, Project Quay validates the token |
.OIDC_ALLOWED_CLIENTS |
Array of String |
Optional whitelist of authorized party ( |
If both OIDC_ISSUER and OIDC_ISSUERS are set, OIDC_ISSUERS takes precedence and Project Quay logs a warning.
For field reference details, see OIDC configuration fields. For configuration examples, see Configuring Microsoft Entra ID v2 and multi-issuer OIDC. The following configuration fields have been added to Project Quay 3.18.
QuayRegistry TLS component fields
The following fields apply to the tls entry in spec.components of the QuayRegistry CR when deploying Red Hat Quay on OpenShift Container Platform.
| Field | Type | Description |
|---|---|---|
|
Object |
References an external TLS Secret in the same namespace as the |
|
String |
Name of the Kubernetes Secret that stores the TLS certificate and private key. |
| Condition | Type | Description |
|---|---|---|
|
Status |
Reports whether TLS from the configured source (external Secret or config bundle) is valid and applied to the registry deployment. |
For procedures and examples, see Referencing an external TLS Secret for Red Hat Quay on OpenShift Container Platform.
API endpoint enhancements
The following API changes were made in Project Quay 3.18.
Robot federation audiences field
Robot federation configuration entries now support an optional audiences array in addition to issuer and subject. During federated robot token exchange (GET /oauth2/federation/robot/token), when audiences is present on the matching federation entry, Project Quay validates the external OIDC token audience against that list. When audiences is absent, audience validation is skipped and Project Quay logs a deprecation warning advising you to configure audiences.
A future release will require the audiences field for federated robot authentication.
Configure federation entries by using the Project Quay v2 UI or POST /api/v1/organization/{orgname}/robots/{robot_shortname}/federation. In Project Quay 3.18, create and update requests persist issuer and subject only; audience validation applies when audiences is present in the stored federation configuration. For field descriptions, examples, and current API limitations, see createOrgRobotFederation and Configuring federation audiences.
Known issues and limitations
The following sections note known issues and limitations for Project Quay 3.18.
Example
Project Quay bug fixes
The following issues were fixed with Project Quay 3.18:
-
PROJQUAY-. Previously,
Project Quay feature tracker
New features have been added to Project Quay, some of which are currently in Technology Preview. Technology Preview features are experimental features and are not intended for production use.
Some features available in previous releases have been deprecated or removed. Deprecated functionality is still included in Project Quay, but is planned for removal in a future release and is not recommended for new deployments. For the most recent list of deprecated and removed functionality in Project Quay, refer to Table 1.1. Additional details for more fine-grained functionality that has been deprecated and removed are listed after the table.
| Feature | Quay 3.18 | Quay 3.17 | Quay 3.16 |
|---|---|---|---|
General Availability |
General Availability |
- |
|
General Availability |
General Availability |
- |
|
General Availability |
General Availability |
- |
|
v1 UI |
Deprecated |
Deprecated |
Deprecated |
IBM Power, IBM Z, and IBM® LinuxONE support matrix
| Feature | IBM Power | IBM Z and IBM® LinuxONE |
|---|---|---|
Allow team synchronization via OIDC on Azure |
Not Supported |
Not Supported |
Backing up and restoring on a standalone deployment |
Supported |
Supported |
Clair Disconnected |
Supported |
Supported |
Geo-Replication (Standalone) |
Supported |
Supported |
Geo-Replication (Operator) |
Supported |
Supported |
IPv6 |
Not Supported |
Not Supported |
Migrating a standalone to operator deployment |
Supported |
Supported |
Mirror registry |
Supported |
Supported |
Quay config editor - mirror, OIDC |
Supported |
Supported |
Quay config editor - MAG, Kinesis, Keystone, GitHub Enterprise |
Not Supported |
Not Supported |
Quay config editor - Red Hat Quay V2 User Interface |
Supported |
Supported |
Quay Disconnected |
Supported |
Supported |
Repo Mirroring |
Supported |
Supported |