aboutsummaryrefslogtreecommitdiff
path: root/opentofu/modules/k8s_worker/variables.tf
blob: e11a5a2c667ecb03b61591fc787407999d75f871 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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     = ""
}