-
Notifications
You must be signed in to change notification settings - Fork 168
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
cmd-osbuild: Add support for LiveISO #3861
Conversation
ravanelli
commented
Aug 19, 2024
- Add support for OSBUILD via COSA_USE_LIVEISO env var for now
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.
Approach looks sane overall! Want to fold the commits in #3847 into this one?
4bbcf0a
to
75f616f
Compare
954c139
to
543fdf6
Compare
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 did a review here but I'm not sure we should really merge this until we get a better idea of what the actual stages will look like (i.e. the manifests and the inputs will change).
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.
Two of the commits have a leading space in their titles.
The last commit is missing a blank line between the title and the body, which messes up git log --oneline
.
Agree we should wait until we finalize the stage before adding the pipeline here. Though if you'd like, we can at least get the prep commits in for now in a separate PR.
543fdf6
to
7e84e2c
Compare
7e84e2c
to
ba12dc1
Compare
2cc42e3
to
9abdf48
Compare
options: | ||
filename: efiboot.img | ||
size: | ||
mpp-format-string: '{live_efiboot_img_size_mb * 1024 * 1024}' |
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.
mpp-format-string: '{live_efiboot_img_size_mb * 1024 * 1024}' | |
mpp-format-string: '{16 * 1024 * 1024}' |
We discussed this last week and decided to just hardcode it to 16 here for now and add a comment about it and mention we can parameterize it if we ever need to adjust it in the future.
# XXX: we should rename this pipeline now that we don't use it as | ||
# a buildroot | ||
- name:build |
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.
if #3946 merges we'll need to update this to use the new name.
# XXX: we should rename this pipeline now that we don't use it as | |
# a buildroot | |
- name:build | |
# XXX: we should rename this pipeline now that we don't use it as | |
# a buildroot | |
- name:build |
src/cmd-osbuild
Outdated
@@ -242,6 +246,7 @@ main() { | |||
"cmd-buildextend-qemu") platforms=(qemu);; | |||
"cmd-buildextend-qemu-secex") platforms=(qemu-secex);; | |||
"cmd-buildextend-secex") platforms=(qemu-secex);; | |||
"cmd-buildextend-live") platforms=(live-iso);; |
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'd need a corresponding entry in the Perform postprocessing
case statement in this file to handle the multiple artifacts that are being generated (i.e. not just the ISO should be getting generated now)
Two largish change suggestions:
This means
|
# This file defines the pipeline for building the live ISO. | ||
version: '2' | ||
pipelines: | ||
- name: live-iso |
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.
since we are copying in the metal.raw and metal4k.raw images here when we copy out of this pipeline it will include those metal.raw and metal4k.raw images which isn't what we want.
what we'll have to do is have one stage for creating the live artifacts and another stage where we copy only the created artifacts, which then gets copied out.
That is... unless we figure out how to do the loopback device stuff inside the stage. If we can do the loopback stuff inside the stage code then we can use an input:
from a previous pipeline instead and then set up the loopback device from within the stage code.
I guess another option would be to teach the devices/org.osbuild.loopback
code to somehow work on inputs.. but I'm not sure if it can be done easily or if it would be accepted.
9e1cf94
to
8a0b479
Compare
The `build` pipeline was renamed to `deployed-tree` in 3a91ec2 and this should have been updated in that commit as well.
We run osbuild inside of supermin, so for building the live ISO we'll need all the tools it needs in there. This includes `genisoimage` and `syslinux-nonlinux`. We don't currently name `squashfs-tools` as a toplevel dependency. It's currently pulled in by libguestfs, but we need it in supermin too, so explicitly list it there.
- Introduce necessary variables for platform.live-iso.ipp.yaml. - Add the platform.live-iso.ipp manifest to support LiveISO creation. - Adapt CoreOS platform manifests Signed-off-by: Renata Ravanelli <[email protected]>
- Introduce LiveISO creation via cmd-osbuild. Signed-off-by: Renata Ravanelli <[email protected]>
- Add checkpoints for metal and metal4k pipelines due LiveISO builds; - Bump cache size from 14G to 20G. Signed-off-by: Renata Ravanelli <[email protected]>
8a0b479
to
16628f9
Compare
Ran this through the differ #3968 on FCOS x86_64:
We should repeat the exercise on other arches. |
successor in #3976 |