aboutsummaryrefslogtreecommitdiff
path: root/opentofu/modules/k8s_worker/variables.tf
diff options
context:
space:
mode:
Diffstat (limited to 'opentofu/modules/k8s_worker/variables.tf')
-rw-r--r--opentofu/modules/k8s_worker/variables.tf175
1 files changed, 149 insertions, 26 deletions
diff --git a/opentofu/modules/k8s_worker/variables.tf b/opentofu/modules/k8s_worker/variables.tf
index 1328088..e11a5a2 100644
--- a/opentofu/modules/k8s_worker/variables.tf
+++ b/opentofu/modules/k8s_worker/variables.tf
@@ -1,26 +1,149 @@
-variable "vm_count" {}
-variable "name_prefix" {}
-variable "desc" {}
-variable "agent" {}
-variable "target_node" {}
-variable "tags" {}
-variable "clone" {}
-variable "full_clone" {}
-variable "qemu_os" {}
-variable "cores" {}
-variable "sockets" {}
-variable "cpu_type" {}
-variable "memory" {}
-variable "scsihw" {}
-variable "bootdisk" {}
-variable "cloudinit_storage" {}
-variable "disk_storage" {}
-variable "disk_size" {}
-variable "iothread" {}
-variable "replicate" {}
-variable "network_id" {}
-variable "network_model" {}
-variable "network_bridge" {}
-variable "ipconfig0" {}
-variable "ciuser" {}
-variable "sshkeys" {}
+variable "vm_count" {
+ type = number
+ description = "The number of virtual machines to create."
+ default = 1
+}
+
+variable "name_prefix" {
+ type = string
+ description = "The prefix for the names of the virtual machines. The VM names will be in the format '<name_prefix>-<index>'."
+}
+
+variable "desc" {
+ type = string
+ description = "A description of the virtual machines."
+ default = ""
+}
+
+variable "agent" {
+ type = number
+ description = "Whether to enable the QEMU guest agent (0 = disabled, 1 = enabled)."
+ default = 0
+}
+
+variable "target_node" {
+ type = string
+ description = "The name of the Proxmox node where the VMs will be created."
+}
+
+variable "tags" {
+ type = string
+ description = "Tags to assign to the virtual machines."
+ default = ""
+}
+
+variable "clone" {
+ type = string
+ description = "The name of the VM template to clone."
+}
+
+variable "full_clone" {
+ type = bool
+ description = "Whether to create a full clone of the template (true) or a linked clone (false)."
+ default = true
+}
+
+variable "qemu_os" {
+ type = string
+ description = "The type of OS installed on the VMs."
+ default = "l26" # Default is Linux 2.6/3.x/4.x/5.x kernel
+}
+
+variable "cores" {
+ type = number
+ description = "The number of CPU cores to allocate to each VM."
+ default = 1
+}
+
+variable "sockets" {
+ type = number
+ description = "The number of CPU sockets to allocate to each VM."
+ default = 1
+}
+
+variable "cpu_type" {
+ type = string
+ description = "The type of CPU to emulate (e.g., 'host', 'kvm64')."
+ default = "host"
+}
+
+variable "memory" {
+ type = number
+ description = "The amount of memory (in MB) to allocate to each VM."
+ default = 1024
+}
+
+variable "scsihw" {
+ type = string
+ description = "The SCSI controller type (e.g., 'virtio-scsi-pci', 'virtio-scsi-pci')."
+ default = "virtio-scsi-pci"
+}
+
+variable "bootdisk" {
+ type = string
+ description = "The boot disk interface (e.g., 'scsi0', 'virtio0')."
+ default = "virtio0"
+}
+
+variable "cloudinit_storage" {
+ type = string
+ description = "The storage pool for the cloud-init drive."
+}
+
+variable "disk_storage" {
+ type = string
+ description = "The storage pool for the primary disk."
+}
+
+variable "disk_size" {
+ type = string
+ description = "The size of the primary disk (e.g., '20G')."
+}
+
+variable "iothread" {
+ type = bool
+ description = "Whether to enable IO threading for the disk."
+ default = false
+}
+
+variable "replicate" {
+ type = bool
+ description = "Whether to replicate the disk to other nodes."
+ default = false
+}
+
+variable "network_id" {
+ type = number
+ description = "The ID of the network interface."
+ default = 0
+}
+
+variable "network_model" {
+ type = string
+ description = "The model of the network interface (e.g., 'virtio')."
+ default = "virtio"
+}
+
+variable "network_bridge" {
+ type = string
+ description = "The bridge to attach the network interface to."
+ default = "vmbr0"
+}
+
+variable "ipconfig0" {
+ type = string
+ description = "The IP configuration for the VMs (e.g., 'ip=dhcp')."
+ default = "ip=dhcp"
+}
+
+variable "ciuser" {
+ type = string
+ description = "The username for cloud-init."
+ default = ""
+}
+
+variable "sshkeys" {
+ type = string
+ description = "The SSH public keys to inject into the VMs via cloud-init."
+ default = ""
+}