-
Notifications
You must be signed in to change notification settings - Fork 158
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
Ship live PXE artifacts inside live ISO #548
Conversation
It feels a bit weird to me to change from
|
overlay.d/05core/usr/lib/dracut/modules.d/20live/coreos-livepxe-rootfs.sh
Show resolved
Hide resolved
How so? Is anything likely to depend on the old paths? Up until now, everything in the ISO image was supposed to be an implementation detail. 🙂 And if we add the hardlink, new things may acquire a dependency on the old path. |
Mostly that it just feels wrong. Naming is hard, but it feels awkard that we would move to a less appropriate name for compat even if it is just an internal implementation detail. Also our live PXE initramfs we put on the website is Something similar seems to be done for the Fedora 32 server DVD where the same initramfs is in two different locations:
If I were investigating a problem it might throw me down the wrong path because in the ISO case we clearly aren't PXE booting and I would say "wait a minute, why are we using the I know it doesn't really matter and I don't really know why I'm defending this so hard. |
oh wow, but if I look at the grub.cfg (for EFI) on that F32 ISO I see:
So I guess there is a case where it's set up counter to what I would have expected. That certainly weakens my argument. |
I agree that it's weird. I'd argue the alias is actually worse for two reasons: 1) if there's only one name for a thing, it's obvious which name is being used at any given time, and 2) if there are two names for the thing, people might think there's a difference between them. |
overlay.d/05core/usr/lib/dracut/modules.d/20live/coreos-livepxe-rootfs.sh
Outdated
Show resolved
Hide resolved
overlay.d/05core/usr/lib/dracut/modules.d/20live/coreos-liveiso-persist-osmet.service
Show resolved
Hide resolved
Yeah, I'll concede. I think the only point that still really sticks is the difference between |
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.
LGTM, only few optional comments left. Nice work @bgilbert
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.
One optional comment, but LGTM as is! Needs rebase on top of #545.
overlay.d/05core/usr/lib/dracut/modules.d/20live/live-generator
Outdated
Show resolved
Hide resolved
We're no longer compressing the rootfs.
This allows the user to extract a pristine initrd image without unnecessary padding.
It seems to be conventional in Fedora/RHEL to put the kernel in /images/pxeboot/vmlinuz and the initramfs in /images/pxeboot/initrd.img. Requires matching coreos-assembler buildextend-installer changes.
It adds another small binary to the OS (and libarchive to the initramfs) but it can also do something cpio can't: seek over archive members it doesn't intend to read.
cosa now uses identical initramfs and rootfs images in the PXE and ISO artifacts. Instead of expecting /root.squashfs, find the rootfs image in the ISO pxeboot directory and mount the squashfs from a fixed offset in the cpio archive. Use the existence of the coreos.liveiso= karg, rather than a flag file, to detect that we're ISO-booted. In ISO mode, use bsdtar to read the osmet files out of the rootfs image.
Update bootloaders and 20live for coreos/coreos-assembler#1643.
This adds
bsdtar
to the package list; it's a wrapper around libarchive (and can handle cpio files). We use it instead ofcpio
to unpack the rootfs image, because in ISO boots we need to extract the osmet files, andcpio
can't do that without reading the entire rootfs image (including the root squashfs) from the boot medium.This is interlocked with coreos/coreos-assembler#1643 and there is no ratchet.