Changelog¶
v4.1.0 - 2026-09-10¶
Add
vcenter::HostNetStackInstanceto configure one TCP/IP stack of a host, in particular the default gateway the host routes with.HostVirtualNic.default_gatewaycannot do this: it is a gateway override for a single VMkernel adapter, used only by the services that egress through that adapter, and it never enters the host’s routing table. A host that was expected to get its default gateway from a VMkernel adapter therefore has none at all, and is reachable only from the subnets it is directly attached to.Read a VMkernel adapter’s gateway override back from the host, so that changing
HostVirtualNic.default_gatewayoripv6_default_gatewayis applied to an adapter that already exists. Both were only ever sent when the adapter was created: the read left them at their desired value, so the diff compared that value with itself and an adapter that lost its override was never repaired.Retry the graceful guest shutdown when vCenter rejects it with
ToolsUnavailable. The handler already waited for VMware Tools to report a stable running status, but the tools can still stop between that check and theShutdownGuestcall (for example when the guest reboots at the end of its customization), which made a reboot-based reconfiguration fail withCannot complete operation because VMware Tools is not running in this virtual machine. The shutdown is now retried, waiting for the tools to come back, until the existing 120 second timeout expires.Flush the downloaded OVA to disk before reading it back, so deploying a
vcenter::VirtualMachineFromOvaorvcenter::ESXIVirtualMachineFromOvano longer aborts withtarfile.ReadError: unexpected end of data. The file was streamed to a temporary file and then reopened through its path, without the write buffer ever being flushed. On Python 3.13 and older this went unnoticed, as every 128 kB chunk exceeded the 8 kB write buffer and went straight to the disk; Python 3.14 raisedio.DEFAULT_BUFFER_SIZEto 128 kB, so up to 128 kB of the archive was left behind in the buffer and the truncated tar could no longer be read.
v4.0.13 - 2026-08-10¶
Pair the ports of a VM that share a network on their Sriov physical function, so that two Sriov interfaces attached to the same distributed portgroup (one per physical function, for redundancy) are no longer indistinguishable. Such interfaces used to abort every read with
two or more objects with the same network paths on this vm, after the VM had already been reconfigured, which left an existing VM unable to converge. Several ports of a VM can now share a network in general, which used to be rejected outright: twovcenter::VirtualMachinePorton one portgroup are accepted as well. An Sriov interface is no longer paired with a regular nic either: a model that declares avcenter::VirtualMachinePorton a network where the VM has an Sriov interface used to report nothing to do, and now replaces that interface with a regular nic, as the model asks. Declare avcenter::SriovVirtualMachinePortfor the Sriov interfaces that must be kept.
v4.0.12 - 2026-06-29¶
Expose
memoryReservationLockedToMaxonvcenter::vim::vm::ConfigSpecso the memory reservation lock is managed as part of the desired state. A VM with an Sriov interface must set it totrue(a passthrough nic can only be powered on when all guest memory is reserved and locked); the handler now reads, diffs and (re)applies it like any other config attribute, so a VM that lost the flag (e.g. a clone that did not carry it) is repaired on the next deploy instead of failing to power on.
v4.0.11 - 2026-06-15¶
Lock the memory reservation to the configured memory (
memoryReservationLockedToMax) when it is fully reserved, so a VM with an Sriov interface can be powered on (vCenter requires all guest memory to be reserved and locked).
v4.0.10 - 2026-06-11¶
Release the memory reservation when removing an Sriov interface: detach the nic first, power the VM off to lower the reservation (vCenter keeps a running VM fully preallocated) and unlock
memoryReservationLockedToMax. Also require the reservation to be set when an Sriov interface is present.
v4.0.9 - 2026-05-27¶
Don’t reboot when removing an sriov interface
v4.0.8 - 2026-04-24¶
Add
sriov_update_strategyto vm
v4.0.7 - 2026-03-25¶
Support IPv6 in ports
Fix race condition in guest tools wait that could cause ShutdownGuest to fail with ToolsUnavailable
v4.0.6 - 2026-03-03¶
Add VMFileUpload resource to upload file inside VirtualMachine
Add VMFileDownload resource to download file from VirtualMachine
v4.0.5 - 2025-12-19¶
Fix sriov nic update
v4.0.4 - 2025-11-18¶
Allow to specify the esxi hostname
Make cpu_num_per_socket optional
Add support for VirtualMachine guestId
Improve support for resolving by name instead of by path
Add onboarding VirtualMachine
Add support for attaching disk to vm prior to boot
Add VMShell resource to run program inside VirtualMachine
Add support for sriov nics
v4.0.3 - 2025-10-15¶
Expose disk uuid in resource facts
Add vsphere http connection timeout
v4.0.2 - 2025-08-18¶
Handle capitalization in uuid
v4.0.1 - 2025-01-10¶
Improve root disk identification
Fix include_main_disk for VMDK storage rule
v4.0.0 - 2024-11-25¶
Add cache for category tags and tags
Move to module v2
Fix discovery resource pydantic error
Make VM handler more resilient in case of config unavailable
v3.7.0 - 2024-11-14¶
Improve discovery resource robustness
Use vcenter naming for backing disk name
Add support for VirtualMachine memoryAllocation configuration
Add cpuAllocation/memoryAllocation support in discovery resource
v3.6.8 - 2024-10-29¶
Add support for VirtualMachine cpuAllocation configuration
v3.6.7 - 2024-10-08¶
Do gracefull shutdown on reboot
v3.6.6 - 2024-09-25¶
Fix vm from content library for OVF
v3.6.5 - 2024-08-29¶
Allow to deploy ovf/ova template from content library
Improve logging
v3.6.4 - 2024-08-12¶
Allow vm port to not specify ip/netmask
In that case the guest port will be configured to use DHCP if the skip_guest_customization flag is not set
Fix imports in vm discovery
v3.6.3 - 2024-07-16¶
Enforce order on ports when nic_index is not specified
Add VirtualMachine start_delay and stop_delay
Invert tag update order
v3.6.2 - 2024-06-27¶
Allow update the size of the root disk
v3.6.1 - 2024-06-24¶
Add dns config handler
v3.6.0 - 2024-06-04¶
Updated documention
Allow vm to be created from the content library
Allow reboot for CPU changes
Fix
requiresandprovidesrelations ofVMPandHostVirtualSwitchentitiesAdd
folder_pathattribute to CreateIso entity
v3.5.0 - 2024-05-06¶
Add support for TrunkVlanSpec
Add support for migrating a VM in another resource pool
v3.4.0 - 2024-03-27¶
Added support for renaming VM
Removed
ESXIVirtualMachineFromTemplateas it is not supported on ESXI
v3.3.3 - 2024-03-19¶
Fix CreateIso issue:
No longer creating a folder with the same name as the ISO file
v3.3.2 - 2024-03-11¶
Add CreateIso resource
v3.3.1 - 2024-02-15¶
DVPG numPorts now ignored during update if autoExpand is set to true
v3.3.0 - 2024-01-15¶
Added support for co-management of tags. /!\ The co-management of tags will be enabled by default from this version. This can be disabled by setting
tags_co_managementtofalsein theVirtualMachineentity.
v3.2.0 - 2023-11-27¶
Added support for virtual machine discovery
Virtualdisk now skipped during creation if vm is not there
v3.1.1 - 2023-08-31¶
add support for netbox-secret integration
Fix a bug with VirtualDisk when a VM was moved (VM not found)
v3.1.0 - 2023-07-12¶
VirtualMachineToHostRule mandatory field exposed
v3.0.7 - 2023-05-16¶
Fix DVPG auto expand feature
v3.0.6 - 2023-05-15¶
Multiple esxi hosts supported in vm handler.
v3.0.5 - 2023-05-08¶
If we want to perform shutdown and other updates, first perform shutdown
Fix bug in tag handling where tags are removed and added back on update
v3.0.4 - 2023-04-12¶
Fix None network
add CDROM device to vm when its missing and iso image is specified
v3.0.3 - 2023-03-29¶
fix compatibility with python3.6 (missing typing.Protocol)
v3.0.2 - 2023-03-24¶
ignore_resource_pool_path attribute added to virtualmachine
v3.0.1 - 2023-03-23¶
vm disk path fixwhen folder already exists
Fix logging OVF file content
v3.0.0 - 2023-02-24¶
Add support for VMs on ESXI
Add support for vmkernel nic
Add support for auto start
v2.0.1 - 2023-01-30¶
Performance improvements when reading VirtualMachinePorts
2.0.0 - 2022-12-19¶
Enhance virtual machine disk management:
Import existing disks to start managing them.
Find disks back after virtual machine migration.
Add default null values to optional attributes for ISO6 compatibility.
Add support for pyvmomi 8.*
1.9.2 (2022/11/25)¶
Constrain pyvmomi < 8, due to https://github.com/vmware/pyvmomi/issues/993
1.9.1 (2022/11/15)¶
Fix bug where disable_hot_parameters_update is ignored
1.9.0 (2022/08/24)¶
Add support for Opaque Networks
Add
NamedCredentialsentityMade
VirtualMachinePort.ip_addressandnetwork_maskoptional whenskip_guest_customizationis true
1.8.0 (2022/07/14)¶
Add nic_index attribute to
VirtualMachinePort, allowing to control NICs order
1.7.2¶
Fix regex used for VMDK filenames to handle snapshots
1.7.1¶
Remove vlab-inf-common dependency
1.7.0¶
Add option to connect VM directly to a network
1.6.2¶
Fix incorrect module.yml in 1.6.1
1.6.1¶
Fix VM storage rule behavior when VM is redeployed
1.6.0¶
Add an option to search VMs for affinities by name
1.5.2¶
Fix on typing of folder helper
1.5.1¶
Fix bug on case sensitivity of tags
1.5.0¶
Added support to skip VM customization
1.4.0¶
Added support for Affinity rules
Various bug fixes
Make self-healing of VirtualMachine hot_* parameters optional
Add self-healing of VirtualMachine powerstate
1.3.2¶
Fixed bug on VM’s with no IP’s
1.3.1¶
Increased reconfiguration timeouts
1.3.0¶
Added thinProvisioning flag for VirtualDisk
Added no_create flag for VM
Added support for VM creation with vim.StoragePod as datastore
1.2.0¶
Fixed bug when attaching multiple tags
1.1.0¶
Added support to boot from OVA
Fixed VM to Host assignment
1.0.0¶
Added support for DistributedVirtualPortgroup
Added support for VirtualMachine, VirtualDisk and VirtualMachinePort