Files
wild-cloud/setup/cluster-services

Infrastructure setup scripts

Creates a fully functional personal cloud infrastructure on a bare metal Kubernetes (k3s) cluster that provides:

  1. External access to services via configured domain names (using ${DOMAIN})
  2. Internal-only access to admin interfaces (via internal.${DOMAIN} subdomains)
  3. Secure traffic routing with automatic TLS
  4. Reliable networking with proper load balancing

Architecture

Internet → External DNS → MetalLB LoadBalancer → Traefik → Kubernetes Services
                                    ↑
                                 Internal DNS
                                    ↑
                              Internal Network

Key Components

Idempotent Design

All setup scripts are designed to be idempotent:

  • Scripts can be run multiple times without causing harm
  • Each script checks for existing resources before creating new ones
  • Configuration updates are applied cleanly without duplication
  • Failed or interrupted setups can be safely retried
  • Changes to configuration will be properly applied on subsequent runs

This idempotent approach ensures consistent, reliable infrastructure setup and allows for incremental changes without requiring a complete teardown and rebuild.