[wip] feat: add disable_ip_wait option to skip ip wait - #719
Draft
tenthirtyam wants to merge 1 commit into
Draft
Conversation
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
5 times, most recently
from
May 26, 2026 16:06
d79e616 to
08ce520
Compare
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
from
June 23, 2026 21:00
08ce520 to
130d9e2
Compare
tenthirtyam
marked this pull request as draft
July 1, 2026 19:38
disable_ip_wait option to skip ip waitdisable_ip_wait option to skip ip wait
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
3 times, most recently
from
July 8, 2026 14:43
a9c7545 to
c278a61
Compare
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
from
July 9, 2026 17:33
c278a61 to
fc1a1be
Compare
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
4 times, most recently
from
July 17, 2026 20:02
fe760cd to
f7abffe
Compare
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
2 times, most recently
from
July 24, 2026 15:04
2d1a290 to
b3f528a
Compare
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
3 times, most recently
from
July 31, 2026 15:15
b3f528a to
078cc79
Compare
Adds the `disable_ip_wait` option (vsphere-iso and vsphere-clone) to allow skipping the guest-reported IP wait when VMware Tools / open-vm-tools are unavailable. You must set `ssh_host` or `winrm_host`; reachability timing uses `ssh_timeout` or `winrm_timeout`, not `ip_wait_timeout`. Signed-off-by: Ryan Johnson <rya@tenthirtyam.org>
tenthirtyam
force-pushed
the
feat/add-disable-ip-wait-option
branch
from
August 4, 2026 13:30
078cc79 to
c2313da
Compare
There was a problem hiding this comment.
Pull request overview
Adds a disable_ip_wait configuration option for the vsphere-iso and vsphere-clone builders to skip waiting for a guest-reported IP (VMware Tools/open-vm-tools), allowing builds to proceed directly to communicator reachability when a host is explicitly provided.
Changes:
- Introduces
disable_ip_waitacross config decoding/HCL2 specs and gatesStepWaitForIpexecution in both builders. - Adds validation + warning behavior for
disable_ip_wait, and adds unit tests around the new validation/defaults. - Updates generated documentation to describe the new option and clarify
ip_wait_addressbehavior.
Reviewed changes
Copilot reviewed 10 out of 13 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| docs-partials/builder/vsphere/common/WaitIpConfig-not-required.mdx | Documents disable_ip_wait and updates ip_wait_address guidance (generated docs partial). |
| builder/vsphere/iso/config.hcl2spec.go | Adds disable_ip_wait to the iso builder HCL2 spec. |
| builder/vsphere/iso/config.go | Runs disable_ip_wait validation during iso config preparation. |
| builder/vsphere/iso/builder.go | Skips StepWaitForIp when disable_ip_wait is true. |
| builder/vsphere/common/step_wait_for_ip.hcl2spec.go | Adds disable_ip_wait to WaitIpConfig HCL2 spec. |
| builder/vsphere/common/step_wait_for_ip.go | Adds DisableIpWait field + validation/warning messaging; updates docs comments for IP wait settings. |
| builder/vsphere/common/step_wait_for_ip_test.go | Adds unit tests for WaitIpConfig defaults and disable_ip_wait validation. |
| builder/vsphere/clone/config.hcl2spec.go | Adds disable_ip_wait to the clone builder HCL2 spec. |
| builder/vsphere/clone/config.go | Runs disable_ip_wait validation during clone config preparation. |
| builder/vsphere/clone/config_test.go | Adds clone config tests for disable_ip_wait host requirements and warnings. |
| builder/vsphere/clone/builder.go | Skips StepWaitForIp when disable_ip_wait is true. |
| .web-docs/components/builder/vsphere-iso/README.md | Updates generated iso docs for disable_ip_wait and ip_wait_address. |
| .web-docs/components/builder/vsphere-clone/README.md | Updates generated clone docs for disable_ip_wait and ip_wait_address. |
Files not reviewed (3)
- builder/vsphere/clone/config.hcl2spec.go: Generated file
- builder/vsphere/common/step_wait_for_ip.hcl2spec.go: Generated file
- builder/vsphere/iso/config.hcl2spec.go: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
35
to
+39
| // Set this to a CIDR address to cause the service to wait for an address that is contained in | ||
| // this network range. Defaults to `0.0.0.0/0` for any IPv4 address. Examples include: | ||
| // this network range. | ||
| // | ||
| // -> **Note:** This only filters which guest-reported IP is accepted; it does not disable IP wait. Use `disable_ip_wait` to skip | ||
| // waiting for a guest-reported IP entirely. |
| errs = append(errs, fmt.Errorf("disable_ip_wait is true but no ssh_host or winrm_host was set")) | ||
| } | ||
|
|
||
| warnings = append(warnings, "disable_ip_wait is set; ip_wait_timeout, ip_settle_timeout, and ip_wait_address are ignored") |
Comment on lines
+130
to
+132
| disableWarnings, disableErrs := c.ValidateDisableIpWait(c.Comm.Host()) | ||
| warnings = append(warnings, disableWarnings...) | ||
| errs = packersdk.MultiErrorAppend(errs, disableErrs...) |
|
|
||
| - `ip_wait_address` (\*string) - Set this to a CIDR address to cause the service to wait for an address that is contained in | ||
| this network range. Defaults to `0.0.0.0/0` for any IPv4 address. Examples include: | ||
| this network range. |
|
|
||
| - `ip_wait_address` (\*string) - Set this to a CIDR address to cause the service to wait for an address that is contained in | ||
| this network range. Defaults to `0.0.0.0/0` for any IPv4 address. Examples include: | ||
| this network range. |
|
|
||
| - `ip_wait_address` (\*string) - Set this to a CIDR address to cause the service to wait for an address that is contained in | ||
| this network range. Defaults to `0.0.0.0/0` for any IPv4 address. Examples include: | ||
| this network range. |
Comment on lines
+102
to
+104
| disableWarnings, disableErrs := c.ValidateDisableIpWait(c.Comm.Host()) | ||
| warnings = append(warnings, disableWarnings...) | ||
| errs = packersdk.MultiErrorAppend(errs, disableErrs...) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the
disable_ip_waitoption (vsphere-isoandvsphere-clone) to allow skipping the guest-reported IP wait when VMware Tools / open-vm-tools are unavailable.Note: You must set
ssh_hostorwinrm_host; reachability timing usesssh_timeoutorwinrm_timeout, notip_wait_timeout.Type
fix: Bug Fixfeat: Feature or Enhancementdocs: Documentationrefactor: Refactoringchore: Build, Dependencies, Workflows, etc.other: Other (Please describe.)Breaking Changes?
Tests
Output:
Documentation
Issue References
Closes #669
Release Note
Additional Information