57 lines
1.6 KiB
Terraform
57 lines
1.6 KiB
Terraform
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
|
|
}
|