diff --git a/pkg/multicloud/esxi/host.go b/pkg/multicloud/esxi/host.go index 5e61f7c8d3..1c2dc416c9 100644 --- a/pkg/multicloud/esxi/host.go +++ b/pkg/multicloud/esxi/host.go @@ -865,6 +865,7 @@ func (self *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat deviceChange = make([]types.BaseVirtualDeviceConfigSpec, 0, 1) // add disks + var rootDiskSizeMb int64 for _, disk := range disks { imagePath := disk.ImagePath var size = disk.Size @@ -884,6 +885,7 @@ func (self *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat return nil, errors.Wrap(err, "unable to copy system disk") } imagePath = newImagePath + rootDiskSizeMb = size } uuid, driver := disk.DiskId, "scsi" if len(disk.Driver) > 0 { @@ -942,6 +944,14 @@ func (self *SHost) DoCreateVM(ctx context.Context, ds *SDatastore, params SCreat if evm == nil { return nil, errors.Error("create successfully but unable to NewVirtualMachine") } + + // resize root disk + if rootDiskSizeMb > 0 && int64(evm.vdisks[0].GetDiskSizeMB()) != rootDiskSizeMb { + err = evm.vdisks[0].Resize(ctx, rootDiskSizeMb) + if err != nil { + return evm, errors.Wrap(err, "resize for root disk") + } + } return evm, nil }