incus-contrib/incusos/examples/proxmox-lab.yaml

61 lines
1.9 KiB
YAML

# proxmox-lab.yaml - Full 4-VM IncusOS lab deployment
#
# Deploys:
# - 1x Operations Center (management UI)
# - 3x Incus nodes (cluster: 1 init + 2 join)
#
# Usage:
# incusos-proxmox --dry-run examples/proxmox-lab.yaml # Preview
# incusos-proxmox examples/proxmox-lab.yaml # Deploy
# incusos-proxmox --cleanup examples/proxmox-lab.yaml # Tear down
proxmox:
host: 192.168.1.10 # Proxmox host IP or hostname
node: pve # Proxmox node name
storage: local-lvm # VM disk storage
iso_storage: local # ISO/image storage
bridge: vmbr0 # Network bridge
method: ssh # ssh (default) or api
ssh_user: root # SSH user for ssh method
# api_token_id: automation@pve!deploy # For api method
defaults:
cores: 4
memory: 8192 # MiB (minimum: 4096)
disk: 64 # GiB (minimum: 50)
channel: stable
start_vmid: 200 # Auto-assign VMIDs from here
vms:
# Operations Center -- management dashboard for the cluster.
# Requires a client certificate for web UI access.
- name: ops-center
app: operations-center
apply_defaults: true
cores: 2
memory: 4096
disk: 50
# Incus cluster leader -- initializes the cluster, creates the default
# ZFS pool and network bridge via apply_defaults.
- name: incus-main
app: incus
apply_defaults: true
cluster: my-cluster
cluster_role: init
# Incus cluster joiner #1 -- joins the cluster created by incus-main.
# apply_defaults is false because the leader pushes configuration.
- name: incus-node-02
app: incus
apply_defaults: false
cluster: my-cluster
cluster_role: join
# Incus cluster joiner #2
- name: incus-node-03
app: incus
apply_defaults: false
cluster: my-cluster
cluster_role: join