---
# file: host_vars/vm_template/vars
# Ansible vars template for hosts created via cloning.

# Supported hypervisors:
# - Proxmox

platform: "proxmox"

# Templates are named in the following format (all lower case): <OS Distribution>-<OS Version>-<VM Size>
# Current OS offerings are:
# - Ubuntu (clone)
#    - 24.04
# - Fedora (clone)
#    - 42
# - Talos (create)
#    - 1.11.5

vm_os_distribution: "talos"
vm_os_version: "1.11.5"

# VM ISO
# Talos: talos-v1.11.5-nocloud-amd64.iso

vm_iso_storage: "templates"
vm_iso: "talos-v{{ vm_os_version }}-nocloud-amd64.iso"

# This is the Proxmox node where all the VM templates are stored. (Templates are not global.)
# Comment out for VM create

proxmox_clone_node: "fantasyland"

# Proxmox storage target.

vm_storage: "liberty-tree"

# Current VM sizes are:
# - Small: 2 cores, 2GB memory, 8 GiB virtual disk
# - Medium: 2 cores, 4GB memory, 16 GiB virtual disk
# - Large: 4 cores, 4GB memory, 32 GiB virtual disk
# - Large Plus: 4 cores, 4GB memory, 48 GiB virtual disk
# - Xlarge: 4 cores, 8GB memory, 64 GiB virtual disk
# - Xlarge Plus: 4 cores, 8GB memory, 128 GiB virtual disk

vm_size: "xlarge"

# Proxmox does not yet do dynamic load balancing, the host target sets the target for HA groups
# and backup groups. (ha_group will be factored out in the next functionality update.)

ha_group: "pve03"
proxmox_host_target: "pve03"

# Currently, only single NIC VMs using IPv4 are supported via cloning.  The IP address also 
# sets the Proxmox VMID.  The VMID is a combination of the 3rd and 4th octet of the IPv4 address.

ip_address: 10.1.71.61
vm_mac_address: 'BC:24:11:C9:3A:13'

# Software
# Future enhancement will allow specification of additional software to automatically deploy to
# the VM after creation.

#terraform_version: "1.11.3"

# ---

vm_clone_source: "{{ vm_os_distribution }}-{{ vm_os_version }}-{{ vm_size }}"
hostname: "{{ inventory_hostname }}.{{ base_domain }}" # Change variable to fqdn

# Dictionaries for VM resources
# - cores (quantity)
# - memory (MB)
# - virtual disk (GiB)

vm_definitions:
  small:
    cores: 2
    memory: 2048
    disk: 8
  medium:
    cores: 2
    memory: 4096
    disk: 16
  large:
    cores: 4
    memory: 4096
    disk: 32
  large-plus:
    cores: 4
    memory: 4096
    disk: 48
  xlarge:
    cores: 4
    memory: 8192
    disk: 64
  xlarge-plus:
    cores: 4
    memory: 8192
    disk: 128
