Generalize container-push to support multi-arch images and varying artifacts#2828
Generalize container-push to support multi-arch images and varying artifacts#2828rmohr wants to merge 1 commit intocoreos:mainfrom
Conversation
Signed-off-by: Roman Mohr <rmohr@redhat.com>
| ) | ||
|
|
||
|
|
||
| class MetadataNavigator: |
There was a problem hiding this comment.
I think this is at least the 3rd version of this we have in tree now...there's also class Builds etc.
| for manifest in inspect_result["manifests"]: | ||
| arch = manifest["platform"]["architecture"] | ||
| if arch == "amd64": | ||
| arch = "x86_64" |
There was a problem hiding this comment.
We also have this bit in the mantle code, but fine as is.
|
Thanks for working on this BTW! |
|
@rmohr: PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
I am uncertain about this PR...it ties into the bigger multiarch discussion. What I don't quite understand is this command seems to assume the containers have already been built for multiple architectures and stored in I think we should more clearly separate "multi-arch unification" flows from the "individual build command". The "multi-arch unification" (i.e. convert arch-specific container builds into a standard manifest list, or convert arch-specific cosa disk image builds into stream metadata) I think should be a separate command. I pushed some (textually but not logically) conflicting code in #2907 FWIW. |
Yes, in theory gangplank would allow us to have all multi-arch artifacts and the unified meta.json in the same place. You wouldn't need to fetch/build it as part of Since we are probably dropping gangplank, we may think if that's what we really want, have everything unified in the sam e place? If so, it could be some enhancement for For the manifest part, we really don't need to have the containers in the host itself. We can push them directly from the remote to a registry and then create a manifest pointing to it. We can still change this PR to look for both cases. |
|
Closing this one since I am not actively working on it. Doing some cleanup. Thanks everyone for your help. |
The
container-pushcommand now works like this:meta.jsonfile of every built architecture referenced inbuilds.jsonbuildaha multi-arch image and pushes it.meta.jsonof each architecture.Right now the command works with
ostreeandkubevirt. If not arthifact is specified it falls back toostreeto not interrupt any build pipelines wich assume that it solely works forostree.Pushing ostree:
Push kubevirt:
Note: Since this modifie
meta.jsonstream metadata needs to be regenerated after all artifacts are pushed.Background discussion happened at coreos/fedora-coreos-pipeline#515 (comment).