On Fri, Jan 04, 2019 at 12:11:03PM +0100, Remi Duraffort wrote:
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.
Thanks! I think there is a slight urgency here because containers were originally published to lavasoftware/lava-(server|dispatcher), then changed to lavasoftware/(aarch64|amd64)-lava-(server|dispatcher). But, the most recent released documentation still refers to the former paths. So, if it's fixed before next release, then the documentation can stay consistent, and perhaps the (aarch64|amd64)-* containers can be removed altogether.
So, it ends up being rather confusing to a new user looking at https://hub.docker.com/u/lavasoftware/. (hub.lavasoftware.org has no indexing/viewing enabled). There's also containers in there named -master, and I'm not sure their purpose.
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 :)).
Oohh, that is nice. Does lavacli have the primitives to add device-type and device jinja templates (I noticed it exports them)? Is it even possible? I thought the filesystem operations like adding device templates and device-type templates had to be done outside lava. Also, I noticed lavacli export didn't get the health-check files.
Dan