The following plugin provides functionality available through Pipeline-compatible steps. Read more about how to integrate steps into your Pipeline in the Steps section of the Pipeline Syntax page.
For a list of other such plugins, see the Pipeline Steps Reference page.
step([$class: 'DeleteSnapshot']): Delete a Snapshotstep([$class: 'Deploy']): Deploy VM from templatestep([$class: 'ExposeGuestInfo']): Expose Guest Infostep([$class: 'PowerOff']): Power-Off VMstep([$class: 'Reconfigure']): Reconfigure VMstep([$class: 'Rename']): Rename VMstep([$class: 'RenameSnapshot']): Rename Snapshotstep([$class: 'RevertToSnapshot']): Revert to Snapshotstep([$class: 'SuspendVm']): Suspend VMstep([$class: 'TakeSnapshot']): Take Snapshotstep([$class: 'VSphereBuildStepContainer']): vSphere Build StepvSphere: Invoke an vSphere action, exposing the VM IP under some actionsstep([$class: 'DeleteSnapshot']): Delete a Snapshotvm : String
snapshotName : String
consolidate : boolean
failOnNoExist : boolean
step([$class: 'Deploy']): Deploy VM from templatetemplate : String
clone : String
linkedClone : boolean
resourcePool : String
cluster : String
datastore : String
folder : String
customizationSpec : String
timeoutInSeconds : int
powerOn : boolean
coresPerSocket : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
The number of CPU cores, whether set here or kept from the source, has to be a multiple of this.
cpuCores : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
The cores per socket of the source are kept unless "Number Cores per Socket" is set too, and this number has to be a multiple of it, or vCenter will refuse the request.
cpuLimitMHz : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
Mind that a reservation can make the cloned VM impossible to power on if the chosen host cannot guarantee it.
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
host : String (optional)
When set, this always wins over "Host Selection Mode" below, which is then ignored. Leave blank to use vCenter's own default placement (unchanged legacy behaviour), or to let "Host Selection Mode" choose automatically.
Works on any vSphere edition/license, and with any permission setup - including a service account that can only write to a single host. This is usually the right choice for small/test labs, or whenever you want full manual control over where clones land.
Example: esx-rack3-host07.example.comhostMinFreeCpuMhz : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeCpuPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryMB : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostSelectionCandidates : Array / List of String (optional)
hostSelectionCandidatesAsString : String (optional)
In a pipeline or Configuration-as-Code YAML, you can use this same comma-separated string form under the name hostSelectionCandidatesAsString, or instead give a native list of individual host names under hostSelectionCandidates, e.g. hostSelectionCandidates: ['esx01.example.com', 'esx02.example.com'] - whichever is more convenient. Both end up stored the same way; use only one of the two per template/step.
Not every host visible in a cluster is necessarily usable by the vCenter account running this connection - a vCenter admin may restrict provisioning permission to a subset of hosts. This field is the only mechanism this plugin offers to keep automatic selection within permitted hosts.
This is not verified live against actual vCenter permissions: an incorrect entry, or a host the account cannot actually write to, only surfaces as a vCenter-side error when a clone is attempted, not as a validation error here.
Leaving this blank inherits the cloud's own default candidate list (configured on the vSphere Cloud itself), if any; if the cloud has no default either, every (usable) host in the configured cluster is a candidate. To explicitly override the cloud's default to "no restriction" for this call site specifically - rather than inheriting whatever the cloud has configured - enter a single comma (,): this is not blank, so it is treated as a deliberate override, but it still parses to zero host names.
hostSelectionFolderFollowsHost : boolean (optional)
hostSelectionFolderFollowsHostAsString : String (optional)
For inventories that group VMs in per-host folders: the folder of the source VM or template has the name of the host it is on as one element of its path. That element is replaced by the name of the host chosen for the clone, so a clone from a template on virt5x that is placed on virt4x goes to the same folder under virt4x. Short and fully qualified host names are matched alike, and the replacement uses the form the folder has.
If the source's folder path does not mention its host, or the folder for the chosen host does not exist, the source's own folder is used, as without this option, and a message about it is logged. A folder that is given explicitly always wins.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionMode : String (optional)
Which mode fits best depends on your VMware license/edition and local preference, not just mechanics:
Either automatic mode needs a cluster to search: if "Cluster" above is left blank, this plugin will use the only cluster in the vCenter's inventory if there is exactly one: otherwise (no clusters, or more than one) it logs a message and falls back to letting vCenter decide, exactly as if this field had been left blank.
hostSelectionRequireAvailableMemory : boolean (optional)
hostSelectionRequireAvailableMemoryAsString : String (optional)
This differs from "Require enough RAM", which compares the memory installed in the host. This one uses the host's current memory usage as reported by vCenter, which changes by the minute and lags a little, so several VMs created at once can still land on the same host. A host whose memory usage is unknown does not qualify.
If no candidate host qualifies, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireCores : boolean (optional)
hostSelectionRequireCoresAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireMemory : boolean (optional)
hostSelectionRequireMemoryAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionScoreDeviation : String (optional)
hostSelectionWaitNotification : Object (optional)
hostSelectionWaitNotificationIgnoreErrors : boolean (optional)
hostSelectionWaitSeconds : String (optional)
Leave blank to use the cloud's setting. Variables can be used where this is a build step.
hostWeightFreeCpuMhz : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeCpuPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryMB : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
memorySize : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
step([$class: 'ExposeGuestInfo']): Expose Guest Infovm : String
envVariablePrefix : String
waitForIp4 : boolean
step([$class: 'PowerOff']): Power-Off VMvm : String
evenIfSuspended : boolean
shutdownGracefully : boolean
ignoreIfNotExists : boolean
gracefulShutdownTimeout : int (optional)
step([$class: 'Reconfigure']): Reconfigure VMvm : String
reconfigureSteps
$class: 'ReconfigureAnnotation'annotation : String (optional)
append : boolean (optional)
$class: 'ReconfigureCpu'cpuCores : String
${CPU} are expanded when the step runs.
coresPerSocket : String
cpuLimitMHz : String (optional)
$class: 'ReconfigureDisk'diskSize : String
datastore : String
deviceAction (optional)
ADD, EDIT, REMOVEdeviceLabel : String (optional)
deviceNumber : String (optional)
$class: 'ReconfigureMemory'memorySize : String
${RAM} are expanded when the step runs.
$class: 'ReconfigureNetworkAdapters'deviceAction
ADD, EDIT, REMOVEdeviceLabel : String
macAddress : String
A given address is set as a manual (user-supplied) address. vCenter only accepts those from the right ranges: in the 00:50:56 block that is 00:50:56:00:00:00 - 00:50:56:3F:FF:FF (00:50:56:80:00:00 - 00:50:56:BF:FF:FF is what vCenter itself generates), and 00:0C:29 is what standalone ESXi hosts generate. The form warns about addresses that are likely to be refused.
If vCenter does refuse the reconfiguration, it is retried once with the address declared as one that vCenter "assigned", rather than a manual one; if that fails too, both reasons are reported.
standardSwitch : boolean
portGroup : String
distributedSwitch : boolean
distributedPortGroup : String
distributedPortId : String
deviceNumber : String (optional)
step([$class: 'Rename']): Rename VMoldName : String
newName : String
step([$class: 'RenameSnapshot']): Rename Snapshotvm : String
oldName : String
newName : String
newDescription : String
failOnNoExist : boolean (optional)
step([$class: 'RevertToSnapshot']): Revert to Snapshotvm : String
snapshotName : String
suppressPowerOn : boolean (optional)
step([$class: 'TakeSnapshot']): Take Snapshotvm : String
snapshotName : String
description : String
includeMemory : boolean
step([$class: 'VSphereBuildStepContainer']): vSphere Build StepbuildStep
$class: 'Clone'sourceName : String
clone : String
linkedClone : boolean
resourcePool : String
cluster : String
datastore : String
folder : String
powerOn : boolean
timeoutInSeconds : int
customizationSpec : String
useCurrentSnapshot : boolean
namedSnapshot : String
extraConfigParameters
java.util.Map<java.lang.String, java.lang.String>coresPerSocket : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
The number of CPU cores, whether set here or kept from the source, has to be a multiple of this.
cpuCores : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
The cores per socket of the source are kept unless "Number Cores per Socket" is set too, and this number has to be a multiple of it, or vCenter will refuse the request.
cpuLimitMHz : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
Mind that a reservation can make the cloned VM impossible to power on if the chosen host cannot guarantee it.
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
host : String (optional)
When set, this always wins over "Host Selection Mode" below, which is then ignored. Leave blank to use vCenter's own default placement (unchanged legacy behaviour), or to let "Host Selection Mode" choose automatically.
Works on any vSphere edition/license, and with any permission setup - including a service account that can only write to a single host. This is usually the right choice for small/test labs, or whenever you want full manual control over where clones land.
Example: esx-rack3-host07.example.comhostMinFreeCpuMhz : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeCpuPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryMB : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostSelectionCandidates : Array / List of String (optional)
hostSelectionCandidatesAsString : String (optional)
In a pipeline or Configuration-as-Code YAML, you can use this same comma-separated string form under the name hostSelectionCandidatesAsString, or instead give a native list of individual host names under hostSelectionCandidates, e.g. hostSelectionCandidates: ['esx01.example.com', 'esx02.example.com'] - whichever is more convenient. Both end up stored the same way; use only one of the two per template/step.
Not every host visible in a cluster is necessarily usable by the vCenter account running this connection - a vCenter admin may restrict provisioning permission to a subset of hosts. This field is the only mechanism this plugin offers to keep automatic selection within permitted hosts.
This is not verified live against actual vCenter permissions: an incorrect entry, or a host the account cannot actually write to, only surfaces as a vCenter-side error when a clone is attempted, not as a validation error here.
Leaving this blank inherits the cloud's own default candidate list (configured on the vSphere Cloud itself), if any; if the cloud has no default either, every (usable) host in the configured cluster is a candidate. To explicitly override the cloud's default to "no restriction" for this call site specifically - rather than inheriting whatever the cloud has configured - enter a single comma (,): this is not blank, so it is treated as a deliberate override, but it still parses to zero host names.
hostSelectionFolderFollowsHost : boolean (optional)
hostSelectionFolderFollowsHostAsString : String (optional)
For inventories that group VMs in per-host folders: the folder of the source VM or template has the name of the host it is on as one element of its path. That element is replaced by the name of the host chosen for the clone, so a clone from a template on virt5x that is placed on virt4x goes to the same folder under virt4x. Short and fully qualified host names are matched alike, and the replacement uses the form the folder has.
If the source's folder path does not mention its host, or the folder for the chosen host does not exist, the source's own folder is used, as without this option, and a message about it is logged. A folder that is given explicitly always wins.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionMode : String (optional)
Which mode fits best depends on your VMware license/edition and local preference, not just mechanics:
Either automatic mode needs a cluster to search: if "Cluster" above is left blank, this plugin will use the only cluster in the vCenter's inventory if there is exactly one: otherwise (no clusters, or more than one) it logs a message and falls back to letting vCenter decide, exactly as if this field had been left blank.
hostSelectionRequireAvailableMemory : boolean (optional)
hostSelectionRequireAvailableMemoryAsString : String (optional)
This differs from "Require enough RAM", which compares the memory installed in the host. This one uses the host's current memory usage as reported by vCenter, which changes by the minute and lags a little, so several VMs created at once can still land on the same host. A host whose memory usage is unknown does not qualify.
If no candidate host qualifies, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireCores : boolean (optional)
hostSelectionRequireCoresAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireMemory : boolean (optional)
hostSelectionRequireMemoryAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionScoreDeviation : String (optional)
hostSelectionWaitNotification : Object (optional)
hostSelectionWaitNotificationIgnoreErrors : boolean (optional)
hostSelectionWaitSeconds : String (optional)
Leave blank to use the cloud's setting. Variables can be used where this is a build step.
hostWeightFreeCpuMhz : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeCpuPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryMB : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
memorySize : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
$class: 'ConvertToTemplate'vm : String
force : boolean
$class: 'ConvertToVm'template : String
resourcePool : String
cluster : String
$class: 'Delete'vm : String
failOnNoExist : boolean
$class: 'DeleteSnapshot'vm : String
snapshotName : String
consolidate : boolean
failOnNoExist : boolean
$class: 'Deploy'template : String
clone : String
linkedClone : boolean
resourcePool : String
cluster : String
datastore : String
folder : String
customizationSpec : String
timeoutInSeconds : int
powerOn : boolean
coresPerSocket : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
The number of CPU cores, whether set here or kept from the source, has to be a multiple of this.
cpuCores : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
The cores per socket of the source are kept unless "Number Cores per Socket" is set too, and this number has to be a multiple of it, or vCenter will refuse the request.
cpuLimitMHz : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
Mind that a reservation can make the cloned VM impossible to power on if the chosen host cannot guarantee it.
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
host : String (optional)
When set, this always wins over "Host Selection Mode" below, which is then ignored. Leave blank to use vCenter's own default placement (unchanged legacy behaviour), or to let "Host Selection Mode" choose automatically.
Works on any vSphere edition/license, and with any permission setup - including a service account that can only write to a single host. This is usually the right choice for small/test labs, or whenever you want full manual control over where clones land.
Example: esx-rack3-host07.example.comhostMinFreeCpuMhz : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeCpuPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryMB : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostSelectionCandidates : Array / List of String (optional)
hostSelectionCandidatesAsString : String (optional)
In a pipeline or Configuration-as-Code YAML, you can use this same comma-separated string form under the name hostSelectionCandidatesAsString, or instead give a native list of individual host names under hostSelectionCandidates, e.g. hostSelectionCandidates: ['esx01.example.com', 'esx02.example.com'] - whichever is more convenient. Both end up stored the same way; use only one of the two per template/step.
Not every host visible in a cluster is necessarily usable by the vCenter account running this connection - a vCenter admin may restrict provisioning permission to a subset of hosts. This field is the only mechanism this plugin offers to keep automatic selection within permitted hosts.
This is not verified live against actual vCenter permissions: an incorrect entry, or a host the account cannot actually write to, only surfaces as a vCenter-side error when a clone is attempted, not as a validation error here.
Leaving this blank inherits the cloud's own default candidate list (configured on the vSphere Cloud itself), if any; if the cloud has no default either, every (usable) host in the configured cluster is a candidate. To explicitly override the cloud's default to "no restriction" for this call site specifically - rather than inheriting whatever the cloud has configured - enter a single comma (,): this is not blank, so it is treated as a deliberate override, but it still parses to zero host names.
hostSelectionFolderFollowsHost : boolean (optional)
hostSelectionFolderFollowsHostAsString : String (optional)
For inventories that group VMs in per-host folders: the folder of the source VM or template has the name of the host it is on as one element of its path. That element is replaced by the name of the host chosen for the clone, so a clone from a template on virt5x that is placed on virt4x goes to the same folder under virt4x. Short and fully qualified host names are matched alike, and the replacement uses the form the folder has.
If the source's folder path does not mention its host, or the folder for the chosen host does not exist, the source's own folder is used, as without this option, and a message about it is logged. A folder that is given explicitly always wins.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionMode : String (optional)
Which mode fits best depends on your VMware license/edition and local preference, not just mechanics:
Either automatic mode needs a cluster to search: if "Cluster" above is left blank, this plugin will use the only cluster in the vCenter's inventory if there is exactly one: otherwise (no clusters, or more than one) it logs a message and falls back to letting vCenter decide, exactly as if this field had been left blank.
hostSelectionRequireAvailableMemory : boolean (optional)
hostSelectionRequireAvailableMemoryAsString : String (optional)
This differs from "Require enough RAM", which compares the memory installed in the host. This one uses the host's current memory usage as reported by vCenter, which changes by the minute and lags a little, so several VMs created at once can still land on the same host. A host whose memory usage is unknown does not qualify.
If no candidate host qualifies, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireCores : boolean (optional)
hostSelectionRequireCoresAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireMemory : boolean (optional)
hostSelectionRequireMemoryAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionScoreDeviation : String (optional)
hostSelectionWaitNotification : Object (optional)
hostSelectionWaitNotificationIgnoreErrors : boolean (optional)
hostSelectionWaitSeconds : String (optional)
Leave blank to use the cloud's setting. Variables can be used where this is a build step.
hostWeightFreeCpuMhz : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeCpuPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryMB : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
memorySize : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
$class: 'ExposeGuestInfo'vm : String
envVariablePrefix : String
waitForIp4 : boolean
$class: 'PowerOff'vm : String
evenIfSuspended : boolean
shutdownGracefully : boolean
ignoreIfNotExists : boolean
gracefulShutdownTimeout : int (optional)
$class: 'PowerOn'vm : String
timeoutInSeconds : int
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
$class: 'Reconfigure'vm : String
reconfigureSteps
$class: 'ReconfigureAnnotation'annotation : String (optional)
append : boolean (optional)
$class: 'ReconfigureCpu'cpuCores : String
${CPU} are expanded when the step runs.
coresPerSocket : String
cpuLimitMHz : String (optional)
$class: 'ReconfigureDisk'diskSize : String
datastore : String
deviceAction (optional)
ADD, EDIT, REMOVEdeviceLabel : String (optional)
deviceNumber : String (optional)
$class: 'ReconfigureMemory'memorySize : String
${RAM} are expanded when the step runs.
$class: 'ReconfigureNetworkAdapters'deviceAction
ADD, EDIT, REMOVEdeviceLabel : String
macAddress : String
A given address is set as a manual (user-supplied) address. vCenter only accepts those from the right ranges: in the 00:50:56 block that is 00:50:56:00:00:00 - 00:50:56:3F:FF:FF (00:50:56:80:00:00 - 00:50:56:BF:FF:FF is what vCenter itself generates), and 00:0C:29 is what standalone ESXi hosts generate. The form warns about addresses that are likely to be refused.
If vCenter does refuse the reconfiguration, it is retried once with the address declared as one that vCenter "assigned", rather than a manual one; if that fails too, both reasons are reported.
standardSwitch : boolean
portGroup : String
distributedSwitch : boolean
distributedPortGroup : String
distributedPortId : String
deviceNumber : String (optional)
$class: 'Rename'oldName : String
newName : String
$class: 'RenameSnapshot'vm : String
oldName : String
newName : String
newDescription : String
failOnNoExist : boolean (optional)
$class: 'RevertToSnapshot'vm : String
snapshotName : String
suppressPowerOn : boolean (optional)
$class: 'SuspendVm'vm : String
$class: 'TakeSnapshot'vm : String
snapshotName : String
description : String
includeMemory : boolean
serverName : String
vSphere: Invoke an vSphere action, exposing the VM IP under some actionsbuildStep (optional)
$class: 'Clone'sourceName : String
clone : String
linkedClone : boolean
resourcePool : String
cluster : String
datastore : String
folder : String
powerOn : boolean
timeoutInSeconds : int
customizationSpec : String
useCurrentSnapshot : boolean
namedSnapshot : String
extraConfigParameters
java.util.Map<java.lang.String, java.lang.String>coresPerSocket : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
The number of CPU cores, whether set here or kept from the source, has to be a multiple of this.
cpuCores : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
The cores per socket of the source are kept unless "Number Cores per Socket" is set too, and this number has to be a multiple of it, or vCenter will refuse the request.
cpuLimitMHz : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
Mind that a reservation can make the cloned VM impossible to power on if the chosen host cannot guarantee it.
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
host : String (optional)
When set, this always wins over "Host Selection Mode" below, which is then ignored. Leave blank to use vCenter's own default placement (unchanged legacy behaviour), or to let "Host Selection Mode" choose automatically.
Works on any vSphere edition/license, and with any permission setup - including a service account that can only write to a single host. This is usually the right choice for small/test labs, or whenever you want full manual control over where clones land.
Example: esx-rack3-host07.example.comhostMinFreeCpuMhz : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeCpuPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryMB : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostSelectionCandidates : Array / List of String (optional)
hostSelectionCandidatesAsString : String (optional)
In a pipeline or Configuration-as-Code YAML, you can use this same comma-separated string form under the name hostSelectionCandidatesAsString, or instead give a native list of individual host names under hostSelectionCandidates, e.g. hostSelectionCandidates: ['esx01.example.com', 'esx02.example.com'] - whichever is more convenient. Both end up stored the same way; use only one of the two per template/step.
Not every host visible in a cluster is necessarily usable by the vCenter account running this connection - a vCenter admin may restrict provisioning permission to a subset of hosts. This field is the only mechanism this plugin offers to keep automatic selection within permitted hosts.
This is not verified live against actual vCenter permissions: an incorrect entry, or a host the account cannot actually write to, only surfaces as a vCenter-side error when a clone is attempted, not as a validation error here.
Leaving this blank inherits the cloud's own default candidate list (configured on the vSphere Cloud itself), if any; if the cloud has no default either, every (usable) host in the configured cluster is a candidate. To explicitly override the cloud's default to "no restriction" for this call site specifically - rather than inheriting whatever the cloud has configured - enter a single comma (,): this is not blank, so it is treated as a deliberate override, but it still parses to zero host names.
hostSelectionFolderFollowsHost : boolean (optional)
hostSelectionFolderFollowsHostAsString : String (optional)
For inventories that group VMs in per-host folders: the folder of the source VM or template has the name of the host it is on as one element of its path. That element is replaced by the name of the host chosen for the clone, so a clone from a template on virt5x that is placed on virt4x goes to the same folder under virt4x. Short and fully qualified host names are matched alike, and the replacement uses the form the folder has.
If the source's folder path does not mention its host, or the folder for the chosen host does not exist, the source's own folder is used, as without this option, and a message about it is logged. A folder that is given explicitly always wins.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionMode : String (optional)
Which mode fits best depends on your VMware license/edition and local preference, not just mechanics:
Either automatic mode needs a cluster to search: if "Cluster" above is left blank, this plugin will use the only cluster in the vCenter's inventory if there is exactly one: otherwise (no clusters, or more than one) it logs a message and falls back to letting vCenter decide, exactly as if this field had been left blank.
hostSelectionRequireAvailableMemory : boolean (optional)
hostSelectionRequireAvailableMemoryAsString : String (optional)
This differs from "Require enough RAM", which compares the memory installed in the host. This one uses the host's current memory usage as reported by vCenter, which changes by the minute and lags a little, so several VMs created at once can still land on the same host. A host whose memory usage is unknown does not qualify.
If no candidate host qualifies, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireCores : boolean (optional)
hostSelectionRequireCoresAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireMemory : boolean (optional)
hostSelectionRequireMemoryAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionScoreDeviation : String (optional)
hostSelectionWaitNotification : Object (optional)
hostSelectionWaitNotificationIgnoreErrors : boolean (optional)
hostSelectionWaitSeconds : String (optional)
Leave blank to use the cloud's setting. Variables can be used where this is a build step.
hostWeightFreeCpuMhz : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeCpuPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryMB : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
memorySize : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
$class: 'ConvertToTemplate'vm : String
force : boolean
$class: 'ConvertToVm'template : String
resourcePool : String
cluster : String
$class: 'Delete'vm : String
failOnNoExist : boolean
$class: 'DeleteSnapshot'vm : String
snapshotName : String
consolidate : boolean
failOnNoExist : boolean
$class: 'Deploy'template : String
clone : String
linkedClone : boolean
resourcePool : String
cluster : String
datastore : String
folder : String
customizationSpec : String
timeoutInSeconds : int
powerOn : boolean
coresPerSocket : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
The number of CPU cores, whether set here or kept from the source, has to be a multiple of this.
cpuCores : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
The cores per socket of the source are kept unless "Number Cores per Socket" is set too, and this number has to be a multiple of it, or vCenter will refuse the request.
cpuLimitMHz : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
Mind that a reservation can make the cloned VM impossible to power on if the chosen host cannot guarantee it.
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
host : String (optional)
When set, this always wins over "Host Selection Mode" below, which is then ignored. Leave blank to use vCenter's own default placement (unchanged legacy behaviour), or to let "Host Selection Mode" choose automatically.
Works on any vSphere edition/license, and with any permission setup - including a service account that can only write to a single host. This is usually the right choice for small/test labs, or whenever you want full manual control over where clones land.
Example: esx-rack3-host07.example.comhostMinFreeCpuMhz : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeCpuPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryMB : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostMinFreeMemoryPercent : String (optional)
Leave all four host limit fields of this call blank to use the limits of the vSphere cloud. If you set any of them, the four values here replace the cloud's limits as a whole for this call, and the ones left blank count as 0 (no limit). Setting all four to 0 therefore removes the limits for this call, whatever the cloud has configured.
Variables can be used where this is a build step.
hostSelectionCandidates : Array / List of String (optional)
hostSelectionCandidatesAsString : String (optional)
In a pipeline or Configuration-as-Code YAML, you can use this same comma-separated string form under the name hostSelectionCandidatesAsString, or instead give a native list of individual host names under hostSelectionCandidates, e.g. hostSelectionCandidates: ['esx01.example.com', 'esx02.example.com'] - whichever is more convenient. Both end up stored the same way; use only one of the two per template/step.
Not every host visible in a cluster is necessarily usable by the vCenter account running this connection - a vCenter admin may restrict provisioning permission to a subset of hosts. This field is the only mechanism this plugin offers to keep automatic selection within permitted hosts.
This is not verified live against actual vCenter permissions: an incorrect entry, or a host the account cannot actually write to, only surfaces as a vCenter-side error when a clone is attempted, not as a validation error here.
Leaving this blank inherits the cloud's own default candidate list (configured on the vSphere Cloud itself), if any; if the cloud has no default either, every (usable) host in the configured cluster is a candidate. To explicitly override the cloud's default to "no restriction" for this call site specifically - rather than inheriting whatever the cloud has configured - enter a single comma (,): this is not blank, so it is treated as a deliberate override, but it still parses to zero host names.
hostSelectionFolderFollowsHost : boolean (optional)
hostSelectionFolderFollowsHostAsString : String (optional)
For inventories that group VMs in per-host folders: the folder of the source VM or template has the name of the host it is on as one element of its path. That element is replaced by the name of the host chosen for the clone, so a clone from a template on virt5x that is placed on virt4x goes to the same folder under virt4x. Short and fully qualified host names are matched alike, and the replacement uses the form the folder has.
If the source's folder path does not mention its host, or the folder for the chosen host does not exist, the source's own folder is used, as without this option, and a message about it is logged. A folder that is given explicitly always wins.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionMode : String (optional)
Which mode fits best depends on your VMware license/edition and local preference, not just mechanics:
Either automatic mode needs a cluster to search: if "Cluster" above is left blank, this plugin will use the only cluster in the vCenter's inventory if there is exactly one: otherwise (no clusters, or more than one) it logs a message and falls back to letting vCenter decide, exactly as if this field had been left blank.
hostSelectionRequireAvailableMemory : boolean (optional)
hostSelectionRequireAvailableMemoryAsString : String (optional)
This differs from "Require enough RAM", which compares the memory installed in the host. This one uses the host's current memory usage as reported by vCenter, which changes by the minute and lags a little, so several VMs created at once can still land on the same host. A host whose memory usage is unknown does not qualify.
If no candidate host qualifies, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireCores : boolean (optional)
hostSelectionRequireCoresAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionRequireMemory : boolean (optional)
hostSelectionRequireMemoryAsString : String (optional)
This compares the VM against each host's total capacity, not what is currently free, and applies in addition to the candidate list and to both "Least loaded" and "DRS" modes. Leave it off if your site deliberately oversubscribes (swap, hyperthreads, ...), so that a VM larger than a single host's physical resources is still allowed to be placed.
If no candidate host satisfies it, a message is logged and placement is left to vCenter, as when no usable candidate host exists at all. It has no effect when an explicit host is given.
"Inherit" (the default) uses the setting of the vSphere cloud this belongs to; "Yes" or "No" overrides it for this one only.
hostSelectionScoreDeviation : String (optional)
hostSelectionWaitNotification : Object (optional)
hostSelectionWaitNotificationIgnoreErrors : boolean (optional)
hostSelectionWaitSeconds : String (optional)
Leave blank to use the cloud's setting. Variables can be used where this is a build step.
hostWeightFreeCpuMhz : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeCpuPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryMB : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
hostWeightFreeMemoryPercent : String (optional)
Leave all four host weight fields of this call blank to use the weights of the vSphere cloud. If you set any of them, the four values here replace the cloud's weights as a whole for this call, and the ones left blank count as 0. Setting all four to 0 gives the original ranking (the host whose busier resource, CPU or memory, is the least used by percentage), whatever the cloud has configured.
Only the proportions between the weights matter, so 1 and 1 means the same as 50 and 50. Variables can be used.
memorySize : String (optional)
Applied in the very same operation that creates the VM, rather than cloning at the source's size and reconfiguring afterwards. Has the same meaning as the setting of the same name of the "Reconfigure CPU"/"Reconfigure Memory" steps. Leave blank to keep the source VM's (or template's) own value. Variables can be used.
When the "Require enough CPU cores"/"Require enough RAM"/"Require enough free RAM" options are in effect, automatic host selection compares candidate hosts against this value instead of the source's.
$class: 'ExposeGuestInfo'vm : String
envVariablePrefix : String
waitForIp4 : boolean
$class: 'PowerOff'vm : String
evenIfSuspended : boolean
shutdownGracefully : boolean
ignoreIfNotExists : boolean
gracefulShutdownTimeout : int (optional)
$class: 'PowerOn'vm : String
timeoutInSeconds : int
failOnNoAddress : boolean (optional)
VSPHERE_IP variable being set. Check it if later steps need the address.
$class: 'Reconfigure'vm : String
reconfigureSteps
$class: 'ReconfigureAnnotation'annotation : String (optional)
append : boolean (optional)
$class: 'ReconfigureCpu'cpuCores : String
${CPU} are expanded when the step runs.
coresPerSocket : String
cpuLimitMHz : String (optional)
$class: 'ReconfigureDisk'diskSize : String
datastore : String
deviceAction (optional)
ADD, EDIT, REMOVEdeviceLabel : String (optional)
deviceNumber : String (optional)
$class: 'ReconfigureMemory'memorySize : String
${RAM} are expanded when the step runs.
$class: 'ReconfigureNetworkAdapters'deviceAction
ADD, EDIT, REMOVEdeviceLabel : String
macAddress : String
A given address is set as a manual (user-supplied) address. vCenter only accepts those from the right ranges: in the 00:50:56 block that is 00:50:56:00:00:00 - 00:50:56:3F:FF:FF (00:50:56:80:00:00 - 00:50:56:BF:FF:FF is what vCenter itself generates), and 00:0C:29 is what standalone ESXi hosts generate. The form warns about addresses that are likely to be refused.
If vCenter does refuse the reconfiguration, it is retried once with the address declared as one that vCenter "assigned", rather than a manual one; if that fails too, both reasons are reported.
standardSwitch : boolean
portGroup : String
distributedSwitch : boolean
distributedPortGroup : String
distributedPortId : String
deviceNumber : String (optional)
$class: 'Rename'oldName : String
newName : String
$class: 'RenameSnapshot'vm : String
oldName : String
newName : String
newDescription : String
failOnNoExist : boolean (optional)
$class: 'RevertToSnapshot'vm : String
snapshotName : String
suppressPowerOn : boolean (optional)
$class: 'SuspendVm'vm : String
$class: 'TakeSnapshot'vm : String
snapshotName : String
description : String
includeMemory : boolean
serverName : String (optional)
Please submit your feedback about this page through this quick form.
Alternatively, if you don't wish to complete the quick form, you can simply indicate if you found this page helpful?
See existing feedback here.