# lab-production.yaml - Production-quality lab for Hetzner (OC + 3-node cluster) # # Deploys 1 Operations Center instance and 3 Incus nodes for OC-managed clustering. # Sized for a Hetzner dedicated server with generous resources. # # Architecture: # hz-oc (910) - Operations Center dashboard and monitoring # hz-node-01 (911) - Cluster init node + OVN control plane host (150G disk) # hz-node-02 (912) - Cluster member # hz-node-03 (913) - Cluster member # # Network: 10.10.0.0/24 on vmbr1 (private bridge, NAT to internet). # OVN overlay (once configured): 10.10.10.0/24 internal, 10.10.0.200+ external. # # RAM budget: ~248 GiB of 256 GiB (8 GiB OC + 3×80 GiB nodes; ~8 GiB reserved for Proxmox host) # # Usage: # incusos-proxmox --proxmox incusos/targets/hetzner/proxmox.yaml \ # incusos/targets/hetzner/lab-production.yaml # # After deployment, follow notes/production-lab-guide.md for: # - Cluster formation (section 4) # - OVN networking (section 6) # - Workload deployment (sections 7-9) # # Connection settings from proxmox.yaml in this directory. defaults: cores: 16 memory: 81920 # ~80 GiB per node (3 nodes × 80 = 240 GiB + 8 for OC = 248 GiB total) disk: 100 start_vmid: 910 vms: - name: hz-oc app: operations-center apply_defaults: true cores: 4 memory: 8192 # OC needs very little RAM ip: 10.10.0.110/24 - name: hz-node-01 app: incus apply_defaults: false # OC manages cluster formation + storage/network setup disk: 150 # extra space for OVN control plane container ip: 10.10.0.111/24 - name: hz-node-02 app: incus apply_defaults: false # joining node: cluster join creates pool entry ip: 10.10.0.112/24 - name: hz-node-03 app: incus apply_defaults: false # joining node: cluster join creates pool entry ip: 10.10.0.113/24