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

Pull-thru proxy should convert manifests to v2s1 when clients need it

XMLWordPrintable

    • False
    • None
    • False

      When a client tries to pull a manifest without specifying what media types it accepts via the Accept header Quay will consistently respond with a "manifest is not acceptable by the client" error.

      As per the docker specification, for backwards compatibility purposes a server should return a manifest schema 2 v1 when a client does not send an Accept header in a request.

      Relevant documentation quote[1]:

      If the manifest being requested uses the new format, and the appropriate media type is not present in an Accept header, the registry will assume that the client cannot handle the manifest as-is, and rewrite it on the fly into the old format.

      Note: Quay needs the image's config blob to be downloaded in order to convert an image to the docker schema 2 v1 manifest version. There's also a chance that the code will require all of the image's blobs to exist in storage before attempting the conversion - for the pull-thru proxy feature, it should be possible to convert an image manifest before it being fully cached.

      [1] https://docs.docker.com/registry/spec/manifest-v2-2/#backward-compatibility

              Unassigned Unassigned
              fmissi Flavian Missi
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: