run pillar as a standalone container - tracking issue
This is a tracking issue for running pillar as a standalone container. This means, we should be able to do the following outside of a running EVE instance (virtual or physical):
docker run -v $PWD/persist:/var/persist lf-edge/pillar
or similar, and get a fully-running pillar instance.
The goal is to reduce the cycle time for development and debugging drastically, as well as simplify the development on-boarding process. Currently, to test anything material in pillar means building a rootfs/live image, and running it in qemu or on a real device. The time to build the image, launch it, register it with a controller, wait for it to sync, etc., is quite high, creating a very high cycle time. Further, the number of issues that can block it (minor errors in network configuration, app configuration, etc.) is too high.
This should be a tracking issue. No specific changes should be on this issue, other than discussions about how to achieve it.
Known issues and requirements:
- [ ] config will attempt to update the network interfaces, which we do not want when running in a container
- [ ] a typical container will have one network interface, while the typical EVE node has more than one, and we need to be able to test the interactions of
nim - [ ] pillar at times needs to do reboots, which don't make sense in a container, but we need to be able to track it
- [ ] mounting
/persistand/configshould be available, so we can update code without changing config, as well as easily read logs from outside the container - [ ] watchdog is very particular about processes it monitors so we will need to account for processes that don't make sense in a container (e.g. qemu-system-x86_64 for example) if we want to avoid watchdog initiated reboots (this coincidentally could be a great forcing function to pull watchdog out of the pillar into a separate container)
... add more issues here...