-
Story
-
Resolution: Unresolved
-
Major
-
None
-
None
Quay currently offers little protection to upstream registry errors. The current solution is based on Quay bumping the tag expiration time when an image is pulled and exists upstream. If the upstream is down or the image has been removed, the tag expiration is not bumped, thus the image will eventually expire and get garbage collected by Quay's GC.
Related requirements[1]:
- As a user I want to rely on Quay's cache to stay coherent with the upstream source so that I transparently get newer images from the cache when tags have been overwritten in the upstream registry immediately or after a certain period of time (see next story)
- As a user I want to be able to configure a staleness period in order to control when the cache checks for upstream image changes so that I can lower the amount of upstream registry dependency (e.g. in case of pull limits being reached or temporary connectivity issues)
ACCEPTANCE CRITERIA
- admins can configure a staleness period on the organization settings page
- Quay will not pass-through errors from the upstream registries to clients until the image lifetime exceeds the staleness period (affects all criteria below)
- clients can pull an already cached image when Quay can't talk to the upstream registry because of connection issues
- clients can pull an already cached image when the upstream registry dns can no longer be resolved
- clients can pull an already cached image when the upstream registry returns 5xx http status codes
- clients can pull an already cached image when the upstream registry returns 429 Too Many Requests