From 687f0795dd22c606ba8bf1a58ab644b17dcfc3ad Mon Sep 17 00:00:00 2001 From: ogrechko Date: Wed, 6 May 2026 20:15:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20terraform/resize-vm-disk/main.tf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terraform/resize-vm-disk/main.tf | 56 ++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 terraform/resize-vm-disk/main.tf diff --git a/terraform/resize-vm-disk/main.tf b/terraform/resize-vm-disk/main.tf new file mode 100644 index 0000000..f7eeafd --- /dev/null +++ b/terraform/resize-vm-disk/main.tf @@ -0,0 +1,56 @@ +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 +}