# lab-oc.yaml - Operations Center + 3-node lab
#
# Deploys 1 Operations Center instance and 3 Incus nodes.
# Uses VMID range 910+ to avoid collisions with lab-cluster.yaml (900+).
#
# The init node (lab-node-01) uses apply_defaults: true for storage pool
# and 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.
#
# Workflow:
#   1. Deploy with incusos-proxmox
#   2. Access OC web UI (import client.pfx into browser)
#   3. Create provisioning token in OC
#   4. Either redeploy nodes with OC-provisioned ISO or manually adopt
#   5. Form cluster via OC CLI or web UI
#
# Usage:
#   incusos-proxmox --dry-run examples/lab-oc.yaml
#   incusos-proxmox --yes examples/lab-oc.yaml
#   incusos-proxmox --status examples/lab-oc.yaml
#   incusos-proxmox --cleanup --deep examples/lab-oc.yaml
#
# Connection settings from proxmox.yaml (see examples/proxmox.yaml.example).
# Add a proxmox: section here to override per-deployment.

defaults:
  cores: 2
  memory: 4096
  disk: 50
  start_vmid: 910

vms:
  - name: lab-oc
    app: operations-center
    apply_defaults: true
    ip: 192.168.102.110/22

  - name: lab-node-01
    app: incus
    apply_defaults: true          # init node: needs storage pool + network
    cores: 4
    memory: 8192
    disk: 64
    ip: 192.168.102.111/22

  - name: lab-node-02
    app: incus
    apply_defaults: false         # joining node: cluster join creates pool entry
    cores: 4
    memory: 8192
    ip: 192.168.102.112/22

  - name: lab-node-03
    app: incus
    apply_defaults: false         # joining node: cluster join creates pool entry
    cores: 4
    memory: 8192
    ip: 192.168.102.113/22
