@@ -53,7 +53,8 @@ function New-OpenShiftVM {
5353 {
5454 Set-VM - VM $vm - MemoryMB $MemoryMB - NumCpu $NumCpu - CoresPerSocket 4 - Confirm:$false > $null
5555 }
56- Get-HardDisk - VM $vm | Select-Object - First 1 | Set-HardDisk - CapacityGB 120 - Confirm:$false > $null
56+ # Get-HardDisk -VM $vm | Select-Object -First 1 | Set-HardDisk -CapacityGB 120 -Confirm:$false > $null
57+ updateDisk - VM $vm - CapacityGB 120
5758
5859 # Configure Network (Assuming template networking may not be correct if shared across clusters)
5960 $pg = Get-VirtualPortgroup - Name $Network - VMHost $ (Get-VMHost - VM $vm ) 2> $null
@@ -78,6 +79,38 @@ function New-OpenShiftVM {
7879 return $vm
7980}
8081
82+ # This function was created to work around issue in vSphere 8.0 where vCenter crashed
83+ # when Set-HardDisk is called.
84+ function updateDisk {
85+ param (
86+ $CapacityGB ,
87+ $VM
88+ )
89+
90+ $newDiskSizeKB = $CapacityGB * 1024 * 1024
91+ $newDiskSizeBytes = $newDiskSizeKB * 1024
92+
93+ $vmMo = get-view - id $VM.ExtensionData.MoRef
94+
95+ $devices = $vmMo.Config.Hardware.Device
96+
97+ $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
98+ $spec.DeviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1 )
99+ $spec.DeviceChange [0 ] = New-Object VMware.Vim.VirtualDeviceConfigSpec
100+ $spec.DeviceChange [0 ].Operation = ' edit'
101+
102+ foreach ($d in $devices ) {
103+ if ($d.DeviceInfo.Label.Contains (" Hard disk" )) {
104+ $spec.DeviceChange [0 ].Device = $d
105+ }
106+ }
107+
108+ $spec.DeviceChange [0 ].Device.CapacityInBytes = $newDiskSizeBytes
109+ $spec.DeviceChange [0 ].Device.CapacityInKB = $newDiskSizeKB
110+
111+ $vmMo.ReconfigVM_Task ($spec ) > $null
112+ }
113+
81114function New-VMConfigs {
82115 $virtualMachines = @"
83116{
0 commit comments