-
Notifications
You must be signed in to change notification settings - Fork 9
Conversation
I don't feel confident enough in this repo to give a good review. @ChrisBr or @shanesmith ? |
Sorry I don't feel any more confident. I'd like to make sure I understand what are the outcomes of this PR though. After it's merged we'll be able to push multi-arch images, only one platform (amd64 by default) will be vouched for, but the multi-arch image will still be available in gcr.io to be pulled down. Is that correct? |
That's correct! For the worked example in grafeas#47 -
All of the above would be available to pull, but only |
This part is a lie. From Image Manifest V2 Schema 2 (emphasis mine):
The aforementioned systems that resolve images to digests will rely on this functionality and work without changes. Voucher can't use this functionality, as voucher operates on the canonical (aka digested) url. In the instance of grafeas#47 - the canonical URL is a manifest list. This reaffirms the viable approaches:
|
The image manifest v2 allows returning an "manifest list", containing references to multiple manifests for distinct platforms. This is how a single image can represent multiple architectures.
Voucher should eventually support manifest lists, but doing so is a large refactor: many
Manifest
andImageConfig
objects become[]Manifest
and[]ImageConfig
.This PR is aiming to "support" manifest lists rather quickly, by discarding all but a single target architecture (by default:
linux/amd64
, but it can be overridden by environment variables, I did not wire the configuration file through 🤢). This allows voucher to vouch for thelinux/amd64
platform of multi-arch images.A similar change will be required for any systems that resolve these images to vouched digests at deploy time. Until that happens, these images will be vouch-able but not deploy-able.Other systems will query by image label, and get fallback behaviour from the registry.Related