Closed grahamc closed 1 year ago
With the sandbox moving to https://github.com/tinkerbell/hook is this still an issue, @grahamc?
I think "support Action Images being light-weight VMs, via something like qemu." would be really cool. I've added a help wanted label because I think we need someone to build a demo/proof of concept for this idea.
I've raised a discussion in the Tinkerbell Roadmap where we can figure out if and what we could do for this. Closing the issue as we don't necessarily intend on fulfilling it.
Tink starts by booting OSIE, OSIE runs the workflow engine, the workflow engine runs some Action Images via docker containers, and hopefully at the last step in the workflow the system boots in to the freshly installed OS.
These Action Images, though, are limited by what OSIE can do. In fact, this binding is quite tight and probably by mistake.
Some examples of this:
One way I was able to get around this this was by:
/etc
/etc/issue
/
to/hostroot
in the containerchroot /hostroot apk add ...
to install my required kernel modules to the hostchroot /hostroot modprobe ...
to load the kernel modulesbut this is not actually a viable solution. In particular, I was stuck in mud for a bit by osie using a somewhat / lightly patched version of alpine's kernel, making it tricky to do this custom build.
Some different ways to work around this might be:
This option is most flexible as these VMs could be minimally small but support exactly the hardware and VM the user needs. Further, they can be built with matched pairs of kernel modules to CLI tools.
This is probably desirable anyway. Like I mentioned the Action Images are quite tightly tied to what the host provides. This sort of binding can be hard to upgrade, especially when the purpose of the action images are to fiddle bits with the hardware. Being able to pin and version them would likely help a lot.