Creating a custom confluent OS image
Sometimes the options available for osdeploy import
are too limited and an additional boot payload is desired. In such a scenario, it is feasible to create a custom OS install image payload. The requirements for a confluent OS payload are, ultimately:
- Must be a directory located in /var/lib/confluent/public/os/
- Has a
profile.yaml
file that at least says 'label: Friendly label here` in it.
While more options are possible, it is most straightforward to consider a 'custom' payload to be either a generic linux based OS payload or an utterly generic payload that is not linux based.
For a custom Linux payload that is too different from a stock profile to start from a copy, the following additional requirements should be considered to be compatible with osdeploy updateboot
: * Add desired kernel command line arguments to profile.yaml, e.g. kernelargs: quiet
* Place the kernel in boot/kernel * Place any initramfs content into boot/initramfs/ directory. * Optionally, you may wish to link /var/lib/confluent/public/site/initramfs.cpio to the image sub-directory to get the site TLS and SSH certificates during initrd * It is highly recommended to put an appropriate grub and optionally shim into boot/efi/boot/grubx64.efi and efi/boot/BOOTX64.efi
For a more generic OS payload (e.g. Windows), osdeploy updateboot cannot be supported, and the following must be done for the image, * Contains a boot.ipxe file that is a valid ipxe script if wanting to support PXE boot (for Windows PE, this would generally include wimboot and the wim file that you want to boot) * Contains a boot.img file if wanting to support HTTP/HTTPS boot that is a VFAT filesystem with efi/boot/BOOTx64.efi file in it.