Files
wild-cli/docs/setup.md
2025-10-11 17:19:11 +00:00

3.4 KiB

Wild Central CLI Setup Guide

This guide shows how to set up a complete Wild Cloud cluster using the wild CLI.

All configuration values are examples.

Prerequisites

# Ensure wild daemon is running
wild daemon status

# Create and select your instance
wild instance create test-cloud
wild instance use test-cloud

1. Cluster Configuration

Configure your cluster's basic settings:

# Set operator email
wild config set operator.email "your-email@example.com"

wild config set cloud.baseDomain "payne.io"
wild config set cloud.domain "cloud2.payne.io"
wild config set cloud.internalDomain "internal.cloud2.payne.io"

# Set cluster name
wild config set cluster.name "wild-cluster"

# Configure network settings
wild config set cloud.router.ip "192.168.8.1"
wild config set cloud.dns.ip "192.168.8.50"
wild config set cloud.dhcpRange "192.168.8.34,192.168.8.79"
wild config set cloud.dnsmasq.interface "eth0"

# Configure MetalLB IP pool
wild config set cluster.ipAddressPool "192.168.8.80-192.168.8.89"
wild config set cluster.loadBalancerIp "192.168.8.80"

# Configure control plane VIP
wild config set cluster.nodes.control.vip "192.168.8.30"

# Set Talos version and schematic
wild config set cluster.nodes.talos.version "v1.11.2"
wild config set cluster.nodes.talos.schematicId "434a0300db532066f1098e05ac068159371d00f0aba0a3103a0e826e83825c82"

2. Generate Cluster Configuration

wild cluster config generate

3. Configure talosctl Context

wild cluster talosconfig --persist
source <(wild instance env)

Set up three control plane nodes for high availability:

# Control plane node 1
wild node detect 192.168.8.122
wild node add test-control-1 controlplane --current-ip 192.168.8.122 --target-ip 192.168.8.31 --disk /dev/sdb --interface enp4s0
wild node apply test-control-1

After the first control plane node is up, bootstrap the cluster!

wild cluster bootstrap test-control-1
wild cluster kubeconfig --persist
source <(wild instance env)

Now repeat the detect/add/apply for control nodes 2 and 3.

After all control plane nodes are running, configure endpoints to use the VIP:

wild cluster endpoints

This updates the talosconfig to use the control plane VIP and retrieves the kubeconfig.

Worker Nodes

Add as many worker nodes as you would like:

wild node detect 192.168.8.100
wild node add test-worker-1 worker --target-ip 192.168.8.100 --disk /dev/sda --interface eth0 --maintenance
wild node apply test-worker-1

5. Services Setup

Install cluster services in dependency order:

wild service install metallb
wild service install longhorn
wild service install traefik
wild service install coredns
wild service install node-feature-discovery

wild config set certManager.cloudflare.domain "payne.io"
wild config set certManager.cloudflare.zoneId "<your-cloudflare-zone-id>"
wild secret set cloudflare.token "<your-cloudflare-api-token>"
wild service install cert-manager

wild service install externaldns
wild service install kubernetes-dashboard
wild service install nfs
wild service install docker-registry
wild service install nvidia-device-plugin
wild service install smtp

Or install all services at once:

wild services install --all

6. Verification

Verify your cluster is healthy:

# Check cluster health
wild health

# Check nodes
kubectl get nodes

# Get dashboard token
wild dashboard token