Skip to content

fix(install): actionable error when proxmox:// DHCP IP discovery times out#112

Merged
astrojerms merged 1 commit into
mainfrom
fix/bootstrap-qga-error
Jul 8, 2026
Merged

fix(install): actionable error when proxmox:// DHCP IP discovery times out#112
astrojerms merged 1 commit into
mainfrom
fix/bootstrap-qga-error

Conversation

@astrojerms

Copy link
Copy Markdown
Owner

Hardens the proxmox:// bootstrap path that metal validation just exercised.

Problem (found on metal)

DHCP-mode bootstrap hung for 10 minutes then failed with a bare controller VM did not report an IP within 10m0s. Root cause: IP discovery relies on the qemu-guest-agent, but the QGA-install cicustom snippet silently no-ops when the node storage can't hold snippets content (e.g. an LVM-thin local-lvm), so QGA never installs and the DHCP lease is never reported.

Change (code-only, no infra)

Enrich the timeout error to name the likely cause (qemu-guest-agent not running / the snippet no-op) and the fix — re-run with ip=<CIDR>&gateway=<ip> for a static IP that skips guest-agent discovery. Turns a confusing hang into an actionable message.

Test: the timeout branch (tiny budget) produces an error mentioning qemu-guest-agent + the static-IP workaround. go vet/gofmt/golangci-lint clean.

The deeper fix (install QGA without depending on the disk storage, or fail fast at create time — the client now has ListNodeStorages to pick a snippets-capable storage) remains a tracked roadmap follow-up.

…s out

Metal validation of the proxmox:// bootstrap surfaced a 10-minute silent
hang: DHCP-mode IP discovery relies on the qemu-guest-agent, but the
QGA-install cicustom snippet silently no-ops when the node storage cannot
hold `snippets` content (e.g. an LVM-thin local-lvm), so the guest agent
never installs and the DHCP lease is never reported. The old error was a
bare "controller VM did not report an IP within 10m0s".

Enrich the timeout error to name the likely cause (qemu-guest-agent not
running / the snippet no-op) and the fix (re-run with ip=<CIDR>&gateway=
<ip> for a static IP that skips guest-agent discovery). Turns a confusing
hang into an actionable message.

Test: the timeout branch (tiny budget) produces an error mentioning
qemu-guest-agent + the static-IP workaround.

Roadmap follow-up updated: the deeper fix (install QGA without depending
on the disk storage, or fail fast at create time) remains.
@astrojerms astrojerms merged commit 0bf96a0 into main Jul 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant