Files

104 lines
2.0 KiB
HCL

resource "proxmox_virtual_environment_vm" "this" {
node_name = var.node_name
vm_id = var.vm_id
name = var.name
description = var.description
tags = var.tags
on_boot = var.on_boot
bios = var.bios
machine = var.machine
dynamic "clone" {
for_each = var.clone_vm_id != null ? [1] : []
content {
vm_id = var.clone_vm_id
full = var.clone_full
datastore_id = var.clone_datastore_id
}
}
operating_system {
type = var.os_type
}
cpu {
cores = var.cpu_cores
sockets = var.cpu_sockets
type = var.cpu_type
numa = true
}
memory {
dedicated = var.memory_dedicated
}
disk {
datastore_id = var.disk_datastore
interface = var.disk_interface
size = var.disk_size
file_id = var.clone_vm_id == null ? var.disk_file_id : null
discard = "on"
file_format = "raw"
}
dynamic "disk" {
for_each = var.data_disk_size != null ? [1] : []
content {
datastore_id = var.data_disk_datastore
interface = var.data_disk_interface
size = var.data_disk_size
discard = "on"
file_format = "raw"
}
}
dynamic "efi_disk" {
for_each = var.bios == "ovmf" ? [1] : []
content {
datastore_id = var.disk_datastore
file_format = "raw"
type = "4m"
}
}
network_device {
bridge = var.network_bridge
model = "virtio"
vlan_id = var.network_vlan_id
}
agent {
enabled = true
trim = true
}
initialization {
datastore_id = var.cloud_init_datastore
dynamic "dns" {
for_each = length(var.init_dns_servers) > 0 ? [1] : []
content {
servers = var.init_dns_servers
}
}
ip_config {
ipv4 {
address = var.init_ipv4_address
gateway = var.init_ipv4_gateway
}
}
user_account {
username = var.init_username
password = var.admin_password
}
}
lifecycle {
ignore_changes = [
disk[0].file_id,
]
}
}