I've got a template where I'm using an image with no disk. The deployment completes without errors and the vm is built with a disk set to the correct size but the deployment shows the disk as missing. This doesn't seem to happen consistently either just some of the deployments end up with the orphaned disk.
This is snippet of the cloud template:
resources:
Linux_VM:
type: Cloud.vSphere.Machine
properties:
cpuCount: '${input.cpuCount}'
totalMemoryMB: '${input.totalMemoryGB * 1024}'
attachedDisks:
- source: '${resource.Cloud_vSphere_Disk_1.id}'
networks:
- network: '${resource.Cloud_Network_1.id}'
Cloud_vSphere_Disk_1:
type: Cloud.vSphere.Disk
properties:
capacityGb: '${input.disk1CapacityGB}'
SCSIController: SCSI_Controller_0
Another thing I notice is during the deployment it looks like a disk gets added to the vm even though there is not disk in the template. There is a scsi controller but no disks. The disk was just labeled "boot-disk" and was 8GB in size. I updated my template to use a Cloud.Volume and filled in a bit more of the options and set the name to something which should be unique. At the end of the deployment I only have one disk/volume now and it doesn't show as missing. Is something happening here with the fact there are two disks for a period of time?
OK... I think I figured out what is going on... I needed to use
storage:
bootDiskCapacityInGB:
somehow I must have been overlooking this. If I create a template with a 1mb hard disk then set this value it seems to set the disk size accordingly. I don't think I saw this used in any examples just the attached disks. I believe what was happening is the attached disk was created as scsi controller 0 / disk 0 then clobbered by the boot disk logic. I also found there are some additional properties not listed in the Resource Type Schema. One of them is bootDiskName which seems like it would be useful to use possibly.