Yodeler
automated, self-contained, simple Alpine VM setup
this is a work in progress
Yodeler is an opinionated, limited scope, orchestration framework. Yodeler's primary use case is standing up a new KVM host and all the associated VMs needed to run a small, moderate traffic network. The design is primarily based on home lab usage, but could be used for any configuration or network topology. It can automatically create and configure a set of KVM virtual machines running Alpine Linux.
Yodeler attempts to be as self-contained as possible. Configuration can be done on any system that can run Python 3. Running Yodler turns the YAML configuration files into a set of static shell scripts. These scripts can then be run from the Alpine install media on a new physical KVM host. The scripts will install Alpine, configure the host and setup & configure all the required VMs.
Yodeler is a standalone program. No extra software is required to run on each VM. VMs are meant to be immutable. Configuration changes imply destroying the old VM and creating a new one. This is a manual process and there are no processes running on the KVM host that will trigger a VM rebuild.
Yodeler will (eventually) know how to configure the following:
- An Alpine based KVM host
- Minimal, basic Alpine VMs
- Awall based firewalls
- Multiple Open vSwitch vswitches with multiple VLANs
- Routers based on Shorewall / iptables
- DNS / DHCP servers based on PowerDNS and Kea
- Dynamic IPv6 prefix delegation with radvd (internal) and dhcpcd (external)
- Metrics servers based on Grafana and Prometheus
See the roadmap for plans & progress.