-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generalize container-push to support multi-arch images and varying artifacts #2828
Conversation
Signed-off-by: Roman Mohr <[email protected]>
) | ||
|
||
|
||
class MetadataNavigator: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We also have this bit in the mantle code, but fine as is.
Thanks for working on this BTW! |
@rmohr: PR needs rebase. Instructions 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-push
command now works like this:meta.json
file of every built architecture referenced inbuilds.json
buildah
a multi-arch image and pushes it.meta.json
of each architecture.Right now the command works with
ostree
andkubevirt
. If not arthifact is specified it falls back toostree
to not interrupt any build pipelines wich assume that it solely works forostree
.Pushing ostree:
Push kubevirt:
Note: Since this modifie
meta.json
stream metadata needs to be regenerated after all artifacts are pushed.Background discussion happened at coreos/fedora-coreos-pipeline#515 (comment).