We expect the repo root to contain pre-installed Alpine 3.15.4 in raw
drive file 'dummydisk.img'. This then gets copied to
output/<machine>/disk.img and the generated files are put into it in
order to be used.
Beware, this uses hardcoded paths and expects specific disk layout.
This relies on how the installation formatted the disk. While the
installation procedure is not documented anywhere, it is in essence
default setup of Alpine Linux, with minimal tweaks that should not
affect behaviour of routing (but still impede reproducibility). The only
major difference from default settings is BIRD being pre-installed.
Unfortunately, using loop devices and mounting requires root privileges
(as far as I know). It should be possible to use some other way, but
this is the simplest I know at the moment.
QEMU's bridge.conf is now directly usable, yet really easy to both
generate and parse, should that be needed in the future.
This partially breaks layers of abstraction, but the point of the script
is to make setup easy, not to be an example of clean code :-)
Jinja directives keep indentation. Therefore, if tokens like
`{% for … %}` are indented, the indentation accumulates and this creates
confusing indentation in output.