How Appliances Should Be.
Goals:
- Cloud provider and hardware agnostic. This doesn't depend on anything only provided by any vendor, cloud or hardware.
- Easy upgrades Currently, this is simply running the installer again.
The base system is build to run entirely from RAM. The drives in the system are only there for persistent data and booting.
The first partition on the system is 200MB. This partition is marked bootable and has the syslinux bootloader installed. This should leave room for a primary and backup kernel and initramfs and allow future room for expansion.
The second partition is used for Docker images, containers and any shared filesystem. This partition is automatically expanded at boot if needed.
The system uses the runit version in busybox for PID 1.
TODO
Boot the system in a variety of ways, PXE, ISO, vagrant, AMI.
TODO
Just copy the upgrade script to the host somewhere?
- Start a build environment with
make debug
- Copy in /docker/.config to /buildroot/.config
- Use
make menuconfig
andmake
as needed. - Change files in
files
as needed. - Copy
output/build/root.cpio.gz
to/docker/root.cpio.gz
when done. - Copy
output/build/vmlinuz
to/docker/build/vmlinuz
when done. - Copy
.config
back to/docker/.config
when done.