Executor: Add support for product trees / board-specific kernels
Sometimes, some platforms cannot run the upstream kernels. This is especially true in the single-board-computer world.
To fix this issue, we need to be able to detect information about the board that is trying to boot when we are generating the boot configuration. iPXE can be helpful here, as it can parse the SMBIOS table that contains the manufacturer, product, and serial number, and send that to the executor when wanting to download the boot configuration (ipxe config change to be done here, default artifact to use here, and check out the list of host settings here).
We will then need to extend the format of the env vars for minio artifacts, so that we can have board-specific kernels. I suggest the following format BOOTS_DEFAULT_$BOOTLOADER_$ARCH_$FIRMWARE_$BOARD_KERNEL
.
With this done, we will easily be able to add as many downstream kernels :)