feat!: add multi arch support#4843
Conversation
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
✅ Deploy Preview for zarf-docs canceled.
|
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
|
Good question @Femure. Index sha's will be supported for pulling and pushing index sha's when multiple architectures are selected. We definitely want to keep this case around, as it is the most secure route. When a tag is used, then Zarf will pull only the architectures for that tag. When an index sha is used then Zarf will pull every platform to keep the index in sync |
|
Thanks for the clarification, that makes things much clearer. Glad to hear that OCI index SHAs will be preserved when using them, that fully addresses my use case. I’m looking forward to seeing this PR progress and hopefully get merged soon 🙂 |
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
Signed-off-by: Austin Abro <[email protected]>
|
This PR has ballooned in size, and I feel it is hard to review. Going to break in into three parts:
|
|
Image sha support was introduced in #4879. I'm going to stop working on this for the time being to focus on getting Zarf to v1.0. Adding in proper multi arch support raises a lot of questions, and probably needs a ZEP to design it. For instance:
|
Breaking changes
Breaking changes are only in the SDK. ImagesWithManifests->PulledImage. This removes manifests from the struct. Instead of having to collect the manifest in several places (indexes, image archives, daemon) we check the manifest before we create the SBOM, this was our only use case for it The name PulledImage should be more resistant to future breaking changes.
UnpackandPullreturnPulledImagenow.Description
This adds multi arch support thorough a special package architecture "multi"
We may want to change
zarf package pullso that if a multi platform exists for a Zarf OCI package, when runningzarf package pull <package-oci-ref>we fallback to pull multi. This PR is already large so I didn't change anything atm.This adds a minimum version check for v0.76.0. Also worth noting that if a multi arch package is pulled from an earlier version of Zarf then Zarf will panic, since it assumed the index.json in an OCI layout will only have manifests.
Related Issue
Relates to #2425 (arguably fixes though we may want to keep it open or break it out into other issues such as packaging only x and y architecture).
Checklist before merging