1
0
mirror of https://github.com/quay/quay.git synced 2026-01-26 06:21:37 +03:00
Li Zhang bd587488c8 fix(proxy): serve cached images without upstream check (PROJQUAY-8440)
This fix resolves an issue where cached images required upstream
registry availability to be pulled, defeating the purpose of the
proxy cache feature.

Problem:
- The _update_manifest_for_tag() method always contacted the upstream
  registry via manifest_exists() HTTP HEAD request
- When upstream registry was unavailable, pulls failed with 504 timeout
- This occurred even when the manifest and blobs were fully cached

Solution:
- Add early return that serves from cache when:
  1. Tag is not expired (still within TTL)
  2. Manifest is not a placeholder (has full content)
- Only contact upstream when tag expired or manifest incomplete
- Reduces upstream traffic and improves availability

Benefits:
- Cached images work when upstream unavailable
- Reduced upstream registry traffic
- Lower latency for cached pulls
- True proxy cache behavior (cache-first)

Fixes: https://issues.redhat.com/browse/PROJQUAY-8440

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-06 16:13:50 +08:00
2022-06-16 16:52:52 +02:00
2019-11-12 11:09:47 -05:00
2019-11-12 11:09:47 -05:00
2019-11-12 11:09:47 -05:00
2019-11-12 11:09:47 -05:00
2024-08-21 15:42:08 -04:00
2025-01-14 18:33:02 +00:00
2019-11-12 11:09:47 -05:00
2025-11-20 09:01:18 -05:00
2019-11-12 11:09:47 -05:00
2019-11-12 11:09:47 -05:00

Project Quay

CI Container Repository on Quay

⚠️ The master branch may be in an unstable or even broken state during development. Please use releases instead of the master branch in order to get stable software.

Project Quay Logo

Project Quay builds, stores, and distributes your container images.

High-level features include:

Getting Started

  • Explore a live instance of Project Quay hosted at Quay.io
  • Watch talks given about Project Quay
  • Review the documentation for Red Hat Quay
  • Get up and running with our getting started guide for developing or deploying Quay
  • Deploy on Kubernetes using the Quay Operator

Community

License

Project Quay is under the Apache 2.0 license. See the LICENSE file for details.

Description
Создавайте, храните и распространяйте свои приложения и контейнеры
https://www.projectquay.io
Readme Apache-2.0 246 MiB
Languages
Python 54.8%
TypeScript 25.1%
JavaScript 8.8%
HTML 5.5%
CSS 2.8%
Other 2.8%