vSphere provider: Add SR-IOV Network Adapter and pass its MAC address to a VM via cloud-init


I am using Terraform vSphere provider to deploy VMs on ESXi 6.7U3. The requirement is to create a VM with Network Adapter of type SR-IOV with automatically generated MAC and somehow pass that MAC via cloud-init file (for internal settings).

I know that today Terraform doesn’t support SR-IOV type in Network Adapters (correct me if I am wrong), so I am ready to add it via powerCLI script, however when I reach the stage of Adapters addition the VM is already up and cloud-init has already been executed.

  1. What is the preferred way to achieve that requirement ?
  2. Is there an option to make VM not start automatically as part of ‘terraform apply’ flow ?
    (if there is such option perhaps I can add the adapters via script and continue with the cloud-init stage)