variable "vm_name" {
description = "Domain name, e.g. \"office1-netbox\", \"office1-maas-region\"."
type = string
}
variable "memory_mib" {
description = "Memory in MiB. No default -- pass explicitly."
type = number
}
variable "vcpu" {
description = "Virtual CPU count. No default -- pass explicitly."
type = number
}
variable "pool_name" {
description = "libvirt_pool this VM's disk + cloud-init seed volume live in."
type = string
}
variable "disk_size_bytes" {
description = "Boot disk size in bytes (the backing_store overlay's capacity, not the base image's). No default -- pass explicitly."
type = number
}
variable "base_volume_path" {
description = <<-EOT
Host filesystem path of the base image this VM boots from -- pass
modules/base-image's `path` OUTPUT directly (a real resource attribute),
e.g. `module.ubuntu_base.path`. Do not reconstruct this from a pool name
+ volume name; libvirt's actual pool-relative path convention was not
independently confirmed this session (see main.tf's note on this).
EOT
type = string
}
variable "network_names" {
description = "Ordered list of libvirt_network names (outputs of modules/dc-planes or modules/mesh-link) this VM attaches to."
type = list(string)
}
variable "user_data" {
description = <<-EOT
Full #cloud-config YAML content (a real, chosen configuration -- hostname,
packages, users, etc. for THIS specific VM). No default and no generic
fallback content is provided here: what Office1's MAAS-region/NetBox/
GitBucket VMs actually need installed/configured is real design work that
hasn't been done yet, and inventing placeholder cloud-config content would
misrepresent it as a real decision. Pass the actual config once written.
EOT
type = string
}
variable "meta_data" {
description = "Cloud-init meta-data YAML (instance-id, local-hostname). No default -- pass explicitly, instance-id must be unique per VM."
type = string
}
variable "network_config" {
description = <<-EOT
Cloud-init network-config YAML (version 2 netplan-style). No default and
deliberately NOT a "dhcp4: true" fallback: this repo's plane networks
carry no libvirt-managed DHCP (NetBox is the IPAM apex, skill hard rule
3), so a real static address from NetBox is required here, not a
plausible-looking default that would silently fail to reach anything.
EOT
type = string
}