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, ] } }