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).

Table 1. TLS security profile inheritance by TLS mode
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 (tls component set to unmanaged)

Project Quay used built-in TLS defaults

Project Quay inherits the cluster TLS security profile when neither SSL_PROTOCOLS nor SSL_CIPHERS is configured

Important

If you use unmanaged TLS and require specific TLS settings that differ from the cluster default, set both SSL_PROTOCOLS and SSL_CIPHERS in your configBundleSecret resource before upgrading. Setting only one field disables cluster-profile inheritance for both fields. For more information, see Preserving TLS settings before upgrading Red Hat Quay on OpenShift Container Platform.

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: 500m CPU and 1Gi memory

  • Limits: 4000m CPU and 16Gi memory

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.

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.

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:

Table 2. OIDC multi-issuer fields
Field Type Description

   .OIDC_ISSUERS

Array of String

Accepted issuer URLs for the provider. When set, Project Quay accepts tokens whose iss claim matches any entry. If not set, Project Quay uses the existing OIDC_ISSUER value.

   .OIDC_AUDIENCES

Array of String

Accepted audience values for bearer token and On-Behalf-Of (OBO) flows. When set, Project Quay validates the token aud claim against this list. CLIENT_ID is always implicitly included. If not set, audience validation defaults to CLIENT_ID.

   .OIDC_ALLOWED_CLIENTS

Array of String

Optional whitelist of authorized party (azp) client IDs. When set, only tokens from these client applications are accepted. If not set, all clients are accepted.

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.

Table 3. QuayRegistry TLS component fields
Field Type Description

secretRef

Object

References an external TLS Secret in the same namespace as the QuayRegistry CRD. Valid only when managed is false. The Secret must be of type kubernetes.io/tls and contain tls.crt and tls.key data keys. The Operator watches the Secret and triggers a rolling restart of Project Quay pods when certificate data changes. Do not use with ssl.cert and ssl.key files in the configBundleSecret.

secretRef.name

String

Name of the Kubernetes Secret that stores the TLS certificate and private key.

Table 4. QuayRegistry TLS status condition
Condition Type Description

ComponentTLSReady

Status

Reports whether TLS from the configured source (external Secret or config bundle) is valid and applied to the registry deployment.

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:

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.

Table 5. Features tracker
Feature Quay 3.18 Quay 3.17 Quay 3.16

Sparse manifest support for multi-architecture filtering

General Availability

General Availability

-

Immutable tags overview

General Availability

General Availability

-

Proof Key for Code Exchange support for OIDC

General Availability

General Availability

-

v1 UI

Deprecated

Deprecated

Deprecated

IBM Power, IBM Z, and IBM® LinuxONE support matrix
Table 6. list of supported and unsupported features
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