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:
@@ -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
|
||||
|
Reference in New Issue
Block a user