terraform-provider-vsphere
terraform-provider-vsphere copied to clipboard
feat: add support for vgpu
Description
Add a new option shared-pci-device-id
to the virtual machine
resource. This enables users to 1 or more vGPU to the VM as an update to the resource or during the clone operation.
Acceptance tests
- [ ] Have you added an acceptance test for the functionality being added?
- [X] Have you run the acceptance tests on this branch?
Output from acceptance testing:
$ make test
==> Checking that code complies with gofmt requirements...
go test $(go list ./... |grep -v 'vendor') || exit 1
? github.com/hashicorp/terraform-provider-vsphere [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/administrationroles [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/clustercomputeresource [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/computeresource [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/contentlibrary [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/customattribute [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/datacenter [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/datastore [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/dvportgroup [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/envbrowse [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/folder [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/guestoscustomizations [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/hostsystem [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/network [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/nsx [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/ovfdeploy [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/provider [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/resourcepool [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/spbm [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/storagepod [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/structure [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/testhelper [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/utils [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vappcontainer [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/virtualmachine [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vsanclient [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vsansystem [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/vmworkflow [no test files]
ok github.com/hashicorp/terraform-provider-vsphere/vsphere 18.804s
ok github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/viapi 0.013s
ok github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/virtualdisk 0.010s
ok github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/virtualdevice 0.009s
echo $(go list ./... |grep -v 'vendor') | \
xargs -t -n4 go test -timeout=30s -parallel=4
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere github.com/hashicorp/terraform-provider-vsphere/vsphere github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/administrationroles github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/clustercomputeresource
? github.com/hashicorp/terraform-provider-vsphere [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/administrationroles [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/clustercomputeresource [no test files]
ok github.com/hashicorp/terraform-provider-vsphere/vsphere 19.604s
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/computeresource github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/contentlibrary github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/customattribute github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/datacenter
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/computeresource [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/contentlibrary [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/customattribute [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/datacenter [no test files]
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/datastore github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/dvportgroup github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/envbrowse github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/folder
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/datastore [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/dvportgroup [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/envbrowse [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/folder [no test files]
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/guestoscustomizations github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/hostsystem github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/network github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/nsx
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/guestoscustomizations [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/hostsystem [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/network [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/nsx [no test files]
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/ovfdeploy github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/provider github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/resourcepool github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/spbm
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/ovfdeploy [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/provider [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/resourcepool [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/spbm [no test files]
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/storagepod github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/structure github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/testhelper github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/utils
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/storagepod [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/structure [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/testhelper [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/utils [no test files]
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vappcontainer github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/viapi github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/virtualdisk github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/virtualmachine
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vappcontainer [no test files]
ok github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/viapi 0.011s
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/virtualmachine [no test files]
ok github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/virtualdisk 0.014s
go test '-timeout=30s' '-parallel=4' github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vsanclient github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vsansystem github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/virtualdevice github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/vmworkflow
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vsanclient [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/helper/vsansystem [no test files]
? github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/vmworkflow [no test files]
ok github.com/hashicorp/terraform-provider-vsphere/vsphere/internal/virtualdevice 0.011s
Release Note
Release note for CHANGELOG:
Enable vGPU capabilities for VMs:
- As an update to an existing VM (add/remove)
- As part of a new VM deployment, both new and clone from template
References
Closes #1378
Hey @mristok did you run the acceptance tests in "vsphere/resource_vsphere_virtual_machine_test.go"? Your change seems safe-enough but it won't hurt to make sure everything is okay. It would be even better if you can add a test case for the new property "shared_pci_device_id"
Added the breaking-changes
label due to the type change.
I tested the change with some mock GPUs on my environment, seems to work fine
Hey @mristok did you run the acceptance tests in "vsphere/resource_vsphere_virtual_machine_test.go"? Your change seems safe-enough but it won't hurt to make sure everything is okay. It would be even better if you can add a test case for the new property "shared_pci_device_id"
@stoyanzhelyazkov I ran existing acceptance tests. However, I did not create a new test for the new property shared_pci_device_id
.
Readded the breaking-changes
label due to the type change.