Files

Central dnsmasq setup

Overview

dnsmasq solves two problems for us. It provides:

  • LAN DNS w/ forwarding of internal and external cloud domains to the cluster.
  • PXE for setting up cluster nodes.

PXE Bootloading

A "PXE client" is any machine that is booting using PXE. This is a great way to set up a new cluster node.

  • PXE client broadcasts a request for help across the LAN.
  • Dnsmasq's DHCP service responds with an IP address and TFTP server info.
  • PXE client downloads PXE's iPEXE bootloader files:
    • ipxe.efi
    • undionly.kpxe
    • ipxe-arm64.efi (pxelinux.0) via TFTP.
  • PXE client reads the bootloader config for the correct web address and fetches the boot files:
    • The kernel, vmlinuz.
    • The initial RAM disk, initrd.
    • The Talos image,

Setup

  • Install a Linux machine on your LAN. Record it's IP address in your config:cloud.dns.ip.
  • Ensure it is accessible with ssh.
  • From your wild-cloud directory, run wild-central-generate-setup.
  • Run cluster/dnsmasq/bin/create-setup-bundle.sh
  • Run cluster/dnsmasq/bin/transfer-setup-bundle.sh

Now ssh into your dnsmasq machine and do the following:

sudo -i
cd /root/dnsmasq-setup
./setup.sh

Future setup

To provide a better user experience, we have been creating a debian apt package that also does this while providing a UI.

Development repo: https://github.com/civil-society-dev/wild-central

The setup will look something like this:

# Download and install GPG key
curl -fsSL https://mywildcloud.org/apt/wild-cloud-central.gpg | sudo tee /usr/share/keyrings/wild-cloud-central-archive-keyring.gpg > /dev/null

# Add repository (modern .sources format)
sudo tee /etc/apt/sources.list.d/wild-cloud-central.sources << 'EOF'
Types: deb
URIs: https://mywildcloud.org/apt
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/wild-cloud-central-archive-keyring.gpg
EOF

# Update and install
sudo apt update
sudo apt install wild-cloud-central

browse to http://localhost:5050!