# lab-cluster.yaml - 3-node IncusOS cluster for lab testing
#
# Deploys 3 standalone Incus nodes that can be clustered after deployment.
# The init node gets apply_defaults: true (storage pool + network bridge).
# Joining nodes use apply_defaults: false -- the cluster join process creates
# member-specific pool entries. This follows the upstream IncusOS recommendation
# and avoids the 8-command cleanup per joining node.
#
# Usage:
#   incusos-proxmox --dry-run examples/lab-cluster.yaml   # Preview
#   incusos-proxmox --yes examples/lab-cluster.yaml        # Deploy
#   incusos-proxmox --status examples/lab-cluster.yaml     # Check status
#   incusos-proxmox --cleanup examples/lab-cluster.yaml    # Tear down VMs
#   incusos-proxmox --cleanup --deep examples/lab-cluster.yaml  # Full cleanup
#
# After deployment, form a cluster with lab-test:
#   lab-test --phase cluster examples/lab-cluster.yaml
#
# Connection settings from proxmox.yaml (see examples/proxmox.yaml.example).
# Add a proxmox: section here to override per-deployment.

defaults:
  cores: 4
  memory: 4096
  disk: 50
  start_vmid: 900

vms:
  - name: incus-lab-01
    app: incus
    apply_defaults: true    # init node: needs storage pool + network
    ip: 192.168.102.101/22

  - name: incus-lab-02
    app: incus
    apply_defaults: false   # joining node: cluster join creates pool entry
    ip: 192.168.102.102/22

  - name: incus-lab-03
    app: incus
    apply_defaults: false   # joining node: cluster join creates pool entry
    ip: 192.168.102.103/22
