incus-contrib/incusos/targets/hetzner/lab-production.yaml

57 lines
1.7 KiB
YAML

# lab-production.yaml - Production-quality lab for Hetzner (OC + 3-node cluster)
#
# Deploys 1 Operations Center instance and 3 Incus nodes for manual 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: 56 GiB of 256 GiB (22% utilization -- plenty of room for workloads)
#
# 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: 8
memory: 16384
disk: 100
start_vmid: 910
vms:
- name: hz-oc
app: operations-center
apply_defaults: true
cores: 4
memory: 8192
ip: 10.10.0.110/24
- name: hz-node-01
app: incus
apply_defaults: true # init node: needs storage pool + network
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