Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-8711

Cache all layers during pull of proxied repository

XMLWordPrintable

    • Icon: Epic Epic
    • Resolution: Done-Errata
    • Icon: Undefined Undefined
    • quay-v3.15.0
    • None
    • None
    • proxy-cache-all-layers
    • False
    • Hide

      None

      Show
      None
    • False
    • Not Selected
    • In Progress
    • 0% To Do, 0% In Progress, 100% Done

      Epic Goal

      The goal of this epic is to cache all of the layers when pulling from a proxy repository. 

      When we pull from a proxied repository currently, only the layers that are requested from the client are cached in the Quay registry. This is because Quay will only cache the layers it receives a request to the v2 blobs endpoint for. Clients who already have that layer present on their local machine will not request that layer again. Therefore quay will never pull that layer into the registry. The goal of this epic is to pull all of the layers into the registry on an image pull.

      Why is this important?

      Leaving image layers missing in the registry causes two issues:

      1. Clair is unable to scan these partial images since layers are missing
      2. If the upstream registry goes down these partial images are un-pullable

      Scenarios

      1. Scenario 1: Clair scan results are visible for all images in a proxied repository, including images pulled with some layers already present on the client machine
      2. Scenario 2: In the event the upstream registry goes down, all of the already pulled images are still capable of being pulled, including images pulled with some layers already present on the client machine

      Acceptance Criteria

      • CI - MUST be running successfully with tests automated
      • Release Technical Enablement - Provide necessary release enablement details and documents.
      • All images must be pullable in the scenario described above
      • All images must be scannable by clair in the scenario described above

      Dependencies (internal and external)

      1. N/A

      Previous Work (Optional):

      1.  

      Open questions::

      1.  

      Done Checklist

      • CI - CI is running, tests are automated and merged.
      • Release Enablement <link to Feature Enablement Presentation>
      • DEV - Upstream code and tests merged: <link to meaningful PR or GitHub Issue>
      • DEV - Upstream documentation merged: <link to meaningful PR or GitHub Issue>
      • DEV - Downstream build attached to advisory: <link to errata>
      • QE - Test plans in Polarion: <link or reference to Polarion>
      • QE - Automated tests merged: <link or reference to automated tests>
      • DOC - Downstream documentation merged: <link to meaningful PR>

              sleesinc Kenny Lee Sin Cheong
              bcaton@redhat.com Brandon Caton
              Votes:
              1 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: