fix: upload one ISO per PVE version, not per node

Changed Terraform ISO resource from for_each=pve_instances (per-node)
to for_each=pve_isos (per-version). With HTTP answer server, both
nodes of the same version share the same generic ISO.

New pve_isos variable maps version to ISO path. pve_instances now
has pve_version field instead of iso_local_path. VMs reference
their version's ISO via auto_iso[each.value.pve_version].

Updated run-integration.sh tfvars generation and -target flags
for both provision and cleanup to use the new schema.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Clint Branham
2026-03-25 14:43:15 -05:00
parent a27863f4ef
commit 53e567f38b
3 changed files with 44 additions and 27 deletions
+11 -5
View File
@@ -21,15 +21,21 @@ variable "target_node" {
}
variable "pve_instances" {
description = "Map of PVE instances to provision. Key is a label (e.g. 'pve9'), value defines the VM."
description = "Map of PVE instances to provision. Key is a node label (e.g. '9a'), value defines the VM."
type = map(object({
iso_local_path = string
vm_id = number
vm_name = string
mac_address = string
pve_version = string
vm_id = number
vm_name = string
mac_address = string
}))
}
variable "pve_isos" {
description = "Map of PVE version to the local path of the generic HTTP auto-install ISO."
type = map(string)
default = {}
}
variable "cores" {
description = "Number of CPU cores to allocate to each nested PVE VM"
type = number