On Sun, Nov 5, 2017 at 12:33 PM, Jacob Gadikian <
jacobg...@gmail.com> wrote:
> We're not installing to disk, so I think that ignition is out of the
> question.
Why? You can give a URL to the JSON file with coreos.config.url= as a
kernel argument (along with coreos.first_boot=1 to make Ignition run).
It supports oem:// URLs that are paths relative to /usr/share/oem, so
you can bundle your Ignition config in the same directory as your
modules when appending to the initrd. For example, write the config
at usr/share/oem/ignition.json and boot with
"coreos.config.url=oem:///ignition.json coreos.first_boot=1".
Alternatively, all current OS releases support TFTP URLs, so you
should be able to serve them from your existing PXE server.
> Is there any way to get the drivers depmod'd in the pxe boot image? I guess
> I'm also curious how the PXE images are built, since we might be able to
> sneak our drivers (and hopefully their activation) in during the build of
> the vmlinuz/cpio.gz files?
No, you can't run depmod due to the modules directory being read-only.
The initrds are built by this function:
https://github.com/coreos/scripts/blob/master/build_library/vm_image_util.sh#L592
.
You could either recreate the squashfs image as you mentioned, or
maybe build your own customized OS image:
https://coreos.com/os/docs/latest/sdk-modifying-coreos.html .
However, I think it will be less work in the long run if you can use
the stock PXE initrd, append OEM files, and configure them into place
with Ignition.
Thanks.
David