Refactor wild-init script to integrate configuration setup and enhance scaffolding checks; remove wild-setup-config script and update setup documentation.

This commit is contained in:
2025-06-25 12:34:20 -07:00
parent 68ac9b2e8c
commit 3dc5d545ff
5 changed files with 361 additions and 462 deletions

View File

@@ -1,5 +1,21 @@
# Wild-cloud Setup
## Hardware prerequisites
Procure the following before setup:
- Any machine for running setup and managing your cloud.
- One small machine for dnsmasq (running Ubuntu linux)
- Three machines for control nodes (2GB memory, 100GB hard drive).
- Any number of worker node machines.
- A network switch connecting all these machines to your router.
- A network router (e.g. Fluke 2) connected to the Internet.
- A domain of your choice registerd (or managed) on Cloudflare.
## Setup
Clone this repo (you probably already did this).
```bash
source env.sh
```
@@ -10,80 +26,17 @@ Initialize a personal wild-cloud in any empty directory, for example:
cd ~
mkdir ~/my-wild-cloud
cd my-wild-cloud
wild-init
```
## Cloud configuration
```bash
cp config.example.yaml config.yaml
cp secrets.example.yaml secrets.yaml
```
```md
Core Variables:
- wildcloud.root - Used by wild-config wildcloud.root command
- cluster.name - Cluster name
DNS/Network Variables:
- cloud.dns.ip - DNS server IP for dnsmasq
- cloud.domain - Main public domain
- cloud.internalDomain - Internal/private domain
- cloud.dhcpRange - DHCP range for dnsmasq
- cloud.router.ip - Gateway/router IP
- cloud.dnsmasq.interface - Network interface for dnsmasq
- cloud.dns.externalResolver - External DNS resolver
Cluster Variables:
- cluster.loadBalancerIp - Load balancer IP for services
- cluster.ipAddressPool - MetalLB IP address pool
- cluster.nodes.control.vip - Virtual IP for control plane
- cluster.nodes.control.node1/2/3.ip - Control plane node IPs
- cluster.nodes.control.node1/2/3.interface - Network interfaces
- cluster.nodes.control.node1/2/3.disk - Installation disks
- cluster.nodes.talos.version - Talos version
- cluster.nodes.talos.schematicId - Talos schematic ID
Certificate/DNS Variables:
- operator.email - Email for Let's Encrypt certificates
- cluster.certManager.cloudflare.domain - Domain for Cloudflare DNS challenge
- cluster.externalDns.ownerId - Unique identifier for ExternalDNS
Storage Variables:
- cloud.nfs.host - NFS server host
- cloud.nfs.mediaPath - NFS media path
- cloud.nfs.storageCapacity - Storage capacity for NFS PV
Registry Variables:
- cloud.dockerRegistryHost - Docker registry hostname
```
Copy setup files.
```bash
wild-setup
```
## Dnsmasq
- 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:
```bash
sudo -i
cd /root/dnsmasq-setup
./setup.sh
wild-dnsmasq-install
```
## Cluster Setup