Reusable Image Deployment Element
After the base scripting element has been created as per issue #16 (closed), it should be
possible to create a more generic and reusable element for deploying bootable
disk images, so that we can replace the existing script
implementation
with something reusable and configurable.
This scripted image deployment should be used as a map to how this element should be implemented. It should define some variables and use a series of predefined but overridable commands to create the image, in the same way that build element implementations which derive from BuildElement do.
Some criteria for the image deployment element:
- Should be able to configure the filesystem type to use for root partition
- Should be able to configure swap size
- Should be able to configure some parameters for the bootloader, especially kernel command line parameters
- Should be able to specify boot and root partition sizes as minimum sizes and use a larger size in the case that the payloads exceed the user requested size
For now:
- Only supporting syslinux as a bootloader is acceptable for now, as we only have support for dos boot partition and syslinux bootloader readily available for creating bootable disks without mounting filesystems.
- No need for highly complex disk partitioning with llvm
Regardless of the above, it would be nice to design this element with some forward thinking towards being able to support more fancy filesystem layouts and alternative bootloaders without needing to break API or create separate elements for those.