Hello Dan,
thanks for the investigation and the summary!
 
The only real gap that I can see is that the docker containers have the
architecture hard coded in the container name. This should use a
manifest[1] instead so that running docker on ARM "just works". A lot of
work has been done to make architecture transparent when running docker
(for the benefit of ARM users like us) - we should use it.

This is something we would want to fix. I created an issue: https://git.lavasoftware.org/lava/lava/issues/195
Feel free to comment in the issue.

Next step - I spoke with Matt Hart about the idea of having lava be more
ephemeral. If you don't actually need your historical runs, you could
have lava re-configure itself every time on start-up, based on the
contents of devices/ and health-checks/. I'm not sure the best way to do
that - perhaps as an additional setup script that's supported by
entrypoint.sh, or perhaps as an outside thing using lavacli. Or perhaps
it can be done with docker exec and lava-server manage...

Not sure about your use case for this but lavacli has some features that should help:
"lavacli system export" might help. The reverse ("import") is still missing (I'm waiting for your patch :)).


Cheers.