Skip to content

docs: add a troubleshooting section and a table of contents - #175

Merged
tas50 merged 1 commit into
mainfrom
readme-troubleshooting
Aug 30, 2026
Merged

docs: add a troubleshooting section and a table of contents#175
tas50 merged 1 commit into
mainfrom
readme-troubleshooting

Conversation

@tas50

@tas50 tas50 commented Aug 30, 2026

Copy link
Copy Markdown
Member

Why

The README documents every option and has good worked examples, but it says nothing about what to do when a run fails. The failures that cost the most time are the ones where the driver's message is accurate and still unhelpful unless you already know GCE:

  • Image family ubuntu-2204-lts is not valid - it was not found in project my-gcp-project almost always means a missing image_project, not a wrong family name. Public images live in their own projects.
  • Project my-project is not a valid project is usually credentials or a disabled Compute Engine API, because the driver cannot tell a project that does not exist from one it is not authorised for.
  • kitchen create hanging at Waiting for server to be ready has three quite different causes — a missing firewall rule, use_private_ip from outside the network, or OS Login ignoring metadata SSH keys — and the fix is different for each.

What this adds

A ## Troubleshooting section in the house style — a bolded lead naming the symptom, then the fix — covering:

  • the validation errors the driver raises by name (project, zone/region, image family and name, machine type, disk type, instance name, disk name, no suitable zone)
  • the two that come back from GCE rather than the driver: quota, and a disk type a newer machine series rejects
  • the hang at Waiting for server to be ready, with the three causes ranked, and a pointer to max_wait_until_ready so it fails in two minutes rather than ten while you work out which one it is
  • the two Windows failures: WinRM::WinRMAuthorizationError from connecting as Administrator, and the guest agent password timeout
  • finding instances and disks left behind by a Ctrl-C, which the driver's own cleanup cannot handle because Interrupt is not a StandardError
  • -l debug as the catch-all

Every quoted message is the driver's actual text, so searching for it lands here.

Also adds a ## Contents list. The page is long enough now that the Configuration tables are hard to find from the top, and this matches kitchen-docker.

No behaviour change; documentation only.

Testing

$ bundle exec cookstyle --chefstyle
18 files inspected, no offenses detected

$ bundle exec rake test
344 examples, 0 failures

$ npx markdownlint-cli2 README.md
Summary: 0 issues in 0 files

The README documents every option well, but says nothing about what to do
when a run fails. The failures that cost the most time are the ones where
the driver's message is accurate and still unhelpful without knowing GCE:
"Image family ubuntu-2204-lts is not valid" almost always means a missing
image_project rather than a wrong family name, and a create that hangs at
"Waiting for server to be ready" has three quite different causes.

Covers the validation errors the driver raises by name, the two that come
back from GCE instead (quota and disk type), the hang, the two Windows
failures, and how to find instances and disks left behind by a Ctrl-C -
which the driver's own cleanup cannot handle, because Interrupt is not a
StandardError.

Also adds a table of contents. The page is long enough now that the
Configuration tables are hard to find from the top.

Signed-off-by: Tim Smith <tim@mondoo.com>
@tas50
tas50 merged commit 307ab85 into main Aug 30, 2026
8 checks passed
@tas50
tas50 deleted the readme-troubleshooting branch August 30, 2026 02:13
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