Skip to content

Commit 9ae6c84

Browse files
burnsjared0415tenthirtyam
authored andcommitted
feat:r/vsphere_virtual_machine add usb controller
Add the ability to add usb controller on build and modification of virtual machine. Signed-off-by: Jared Burns <[email protected]>
1 parent dea5add commit 9ae6c84

File tree

5 files changed

+713
-292
lines changed

5 files changed

+713
-292
lines changed

CHANGELOG.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ CHORE:
5959
- `provider`: Updated `golang.org/x/net` to 0.33.0. (#2319)
6060
- `provider`: Updated `golang.org/x/crypto` to 0.31.0. (#2318)
6161

62-
## v2.10.0
63-
6462
> Release Date: 2024-10-16
6563
6664
FEATURES:

docs/data-sources/virtual_machine.md

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,21 @@ data "vsphere_virtual_machine" "development_template" {
5656

5757
The following arguments are supported:
5858

59-
* `name` - (Optional) The name of the virtual machine. This can be a name or the
59+
- `name` - (Optional) The name of the virtual machine. This can be a name or the
6060
full path relative to the datacenter. This is required if a UUID lookup is not
6161
performed.
62-
* `uuid` - (Optional) Specify this field for a UUID lookup, `name` and
62+
- `uuid` - (Optional) Specify this field for a UUID lookup, `name` and
6363
`datacenter_id` are not required if this is specified.
64-
* `folder` - (Optional) The name of the virtual machine folder where the virtual
64+
- `folder` - (Optional) The name of the virtual machine folder where the virtual
6565
machine is located. The `name` argument is limited to 80 characters. If the
6666
`name` argument includes the full path to the virtual machine and exceeds the
6767
80 characters limit, the `folder` folder argument can be used.
68-
* `datacenter_id` - (Optional) The [managed object reference
68+
- `datacenter_id` - (Optional) The [managed object reference
6969
ID][docs-about-morefs] of the datacenter the virtual machine is located in.
7070
This can be omitted if the search path used in `name` is an absolute path. For
7171
default datacenters, use the `id` attribute from an empty `vsphere_datacenter`
7272
data source.
73-
* `scsi_controller_scan_count` - (Optional) The number of SCSI controllers to
73+
- `scsi_controller_scan_count` - (Optional) The number of SCSI controllers to
7474
scan for disk attributes and controller types on. Default: `1`.
7575
* `nvme_controller_scan_count` - (Optional) The number of NVMe controllers to
7676
scan for disk attributes and controller types on. Default: `1`.
@@ -91,76 +91,79 @@ section.
9191

9292
The following attributes are exported:
9393

94-
* `id` - The UUID of the virtual machine or template.
95-
* `guest_id` - The guest ID of the virtual machine or template.
96-
* `alternate_guest_name` - The alternate guest name of the virtual machine when
94+
- `id` - The UUID of the virtual machine or template.
95+
- `guest_id` - The guest ID of the virtual machine or template.
96+
- `alternate_guest_name` - The alternate guest name of the virtual machine when
9797
`guest_id` is a non-specific operating system, like `otherGuest` or
9898
`otherGuest64`.
99-
* `annotation` - The user-provided description of this virtual machine.
100-
* `memory` - The size of the virtual machine's memory, in MB.
101-
* `num_cpus` - The total number of virtual processor cores assigned to this
99+
- `annotation` - The user-provided description of this virtual machine.
100+
- `memory` - The size of the virtual machine's memory, in MB.
101+
- `num_cpus` - The total number of virtual processor cores assigned to this
102102
virtual machine.
103-
* `num_cores_per_socket` - The number of cores per socket for this virtual
103+
- `num_cores_per_socket` - The number of cores per socket for this virtual
104104
machine.
105-
* `firmware` - The firmware interface that is used by this virtual machine. Can
105+
- `firmware` - The firmware interface that is used by this virtual machine. Can
106106
be either `bios` or `efi`.
107-
* `hardware_version` - The hardware version number on this virtual machine.
108-
* `scsi_type` - The common type of all SCSI controllers on this virtual machine.
107+
- `hardware_version` - The hardware version number on this virtual machine.
108+
- `scsi_type` - The common type of all SCSI controllers on this virtual machine.
109109
Will be one of `lsilogic` (LSI Logic Parallel), `lsilogic-sas` (LSI Logic
110110
SAS), `pvscsi` (VMware Paravirtual), `buslogic` (BusLogic), or `mixed` when
111111
there are multiple controller types. Only the first number of controllers
112112
defined by `scsi_controller_scan_count` are scanned.
113-
* `scsi_bus_sharing` - Mode for sharing the SCSI bus. The modes are
113+
- `scsi_bus_sharing` - Mode for sharing the SCSI bus. The modes are
114114
physicalSharing, virtualSharing, and noSharing. Only the first number of
115115
controllers defined by `scsi_controller_scan_count` are scanned.
116-
* `disks` - Information about each of the disks on this virtual machine or
116+
- `disks` - Information about each of the disks on this virtual machine or
117117
template. These are sorted by bus and unit number so that they can be applied
118118
to a `vsphere_virtual_machine` resource in the order the resource expects
119119
while cloning. This is useful for discovering certain disk settings while
120120
performing a linked clone, as all settings that are output by this data source
121121
must be the same on the destination virtual machine as the source. Only the
122122
first number of controllers defined by `scsi_controller_scan_count` are
123123
scanned for disks. The sub-attributes are:
124-
* `label` - The label for the disk.
125-
* `size` - The size of the disk, in GIB.
126-
* `eagerly_scrub` - Set to `true` if the disk has been eager zeroed.
127-
* `thin_provisioned` - Set to `true` if the disk has been thin provisioned.
128-
* `unit_number` - The disk number on the storage bus.
129-
* `network_interface_types` - The network interface types for each network
130-
interface found on the virtual machine, in device bus order. Will be one of
131-
`e1000`, `e1000e`, `pcnet32`, `sriov`, `vmxnet2`, `vmxnet3vrdma`, or
132-
`vmxnet3`.
133-
* `network_interfaces` - Information about each of the network interfaces on
124+
- `label` - The label for the disk.
125+
- `size` - The size of the disk, in GIB.
126+
- `eagerly_scrub` - Set to `true` if the disk has been eager zeroed.
127+
- `thin_provisioned` - Set to `true` if the disk has been thin provisioned.
128+
- `unit_number` - The disk number on the storage bus.
129+
- `network_interface_types` - The network interface types for each network
130+
interface found on the virtual machine, in device bus order. Will be one of
131+
`e1000`, `e1000e`, `pcnet32`, `sriov`, `vmxnet2`, `vmxnet3vrdma`, or
132+
`vmxnet3`.
133+
- `network_interfaces` - Information about each of the network interfaces on
134134
this virtual machine or template. These are sorted by device bus order so that
135135
they can be applied to a `vsphere_virtual_machine` resource in the order the
136136
resource expects while cloning. This is useful for discovering certain network
137137
interface settings while performing a linked clone, as all settings that are
138138
output by this data source must be the same on the destination virtual machine
139139
as the source. The sub-attributes are:
140-
* `adapter_type` - The network interface types for each network interface found
141-
on the virtual machine, in device bus order. Will be one of `e1000`,
142-
`e1000e`, `vmxnet3vrdma`, or `vmxnet3`.
143-
* `bandwidth_limit` - The upper bandwidth limit of this network interface,
140+
- `adapter_type` - The network interface types for each network interface found
141+
on the virtual machine, in device bus order. Will be one of `e1000`,
142+
`e1000e`, `vmxnet3vrdma`, or `vmxnet3`.
143+
- `bandwidth_limit` - The upper bandwidth limit of this network interface,
144144
in Mbits/sec.
145-
* `bandwidth_reservation` - The bandwidth reservation of this network
146-
interface, in Mbits/sec.
147-
* `bandwidth_share_level` - The bandwidth share allocation level for this
148-
interface. Can be one of `low`, `normal`, `high`, or `custom`.
149-
* `bandwidth_share_count` - The share count for this network interface when the
150-
share level is custom.
151-
* `mac_address` - The MAC address of this network interface.
152-
* `network_id` - The managed object reference ID of the network this interface
153-
is connected to.
154-
* `firmware` - The firmware type for this virtual machine. Can be `bios` or
155-
`efi`.
156-
* `default_ip_address` - Whenever possible, this is the first IPv4 address that
145+
- `bandwidth_reservation` - The bandwidth reservation of this network
146+
interface, in Mbits/sec.
147+
- `bandwidth_share_level` - The bandwidth share allocation level for this
148+
interface. Can be one of `low`, `normal`, `high`, or `custom`.
149+
- `bandwidth_share_count` - The share count for this network interface when the
150+
share level is custom.
151+
- `mac_address` - The MAC address of this network interface.
152+
- `network_id` - The managed object reference ID of the network this interface
153+
is connected to.
154+
- `firmware` - The firmware type for this virtual machine. Can be `bios` or
155+
`efi`.
156+
- `default_ip_address` - Whenever possible, this is the first IPv4 address that
157157
is reachable through the default gateway configured on the machine, then the
158158
first reachable IPv6 address, and then the first general discovered address if
159159
neither exist. If VMware Tools is not running on the virtual machine, or if
160160
the VM is powered off, this value will be blank.
161-
* `guest_ip_addresses` - A list of IP addresses as reported by VMware Tools.
162-
* `instance_uuid` - The instance UUID of the virtual machine or template.
163-
* `vtpm` - Indicates whether a virtual Trusted Platform Module (TPM) device is present on the virtual machine.
161+
- `guest_ip_addresses` - A list of IP addresses as reported by VMware Tools.
162+
- `instance_uuid` - The instance UUID of the virtual machine or template.
163+
- `vtpm` - Indicates whether a virtual Trusted Platform Module (TPM) device is
164+
present on the virtual machine.
165+
- `usb_controller` - Indicates whether a virtual USB controller device is
166+
present on the virtual machine.
164167

165168
~> **NOTE:** Keep in mind when using the results of `scsi_type` and
166169
`network_interface_types`, that the `vsphere_virtual_machine` resource only

0 commit comments

Comments
 (0)