data "vsphere_datacenter" "dc" { name = var.vsphere_datacenter } data "vsphere_virtual_machine" "vm" { name = var.vm_name datacenter_id = data.vsphere_datacenter.dc.id } locals { current_disk_size_gb = data.vsphere_virtual_machine.vm.disks[0].size target_disk_size_gb = local.current_disk_size_gb + var.increase_gb } resource "vsphere_virtual_machine" "resize" { name = data.vsphere_virtual_machine.vm.name resource_pool_id = data.vsphere_virtual_machine.vm.resource_pool_id datastore_id = data.vsphere_virtual_machine.vm.datastore_id num_cpus = data.vsphere_virtual_machine.vm.num_cpus memory = data.vsphere_virtual_machine.vm.memory guest_id = data.vsphere_virtual_machine.vm.guest_id firmware = data.vsphere_virtual_machine.vm.firmware scsi_type = data.vsphere_virtual_machine.vm.scsi_type network_interface { network_id = data.vsphere_virtual_machine.vm.network_interface_types[0] != "" ? data.vsphere_virtual_machine.vm.network_interface[0].network_id : null adapter_type = data.vsphere_virtual_machine.vm.network_interface_types[0] } disk { label = var.disk_label size = local.target_disk_size_gb unit_number = 0 thin_provisioned = data.vsphere_virtual_machine.vm.disks[0].thin_provisioned } lifecycle { ignore_changes = [ annotation, clone, extra_config, hv_mode, vapp, network_interface, ] } } output "current_disk_size_gb" { value = local.current_disk_size_gb } output "target_disk_size_gb" { value = local.target_disk_size_gb }