docs: add a troubleshooting section and a table of contents - #175
Merged
Conversation
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>
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.
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-projectalmost always means a missingimage_project, not a wrong family name. Public images live in their own projects.Project my-project is not a valid projectis 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 createhanging at Waiting for server to be ready has three quite different causes — a missing firewall rule,use_private_ipfrom outside the network, or OS Login ignoring metadata SSH keys — and the fix is different for each.What this adds
A
## Troubleshootingsection in the house style — a bolded lead naming the symptom, then the fix — covering:project,zone/region, image family and name, machine type, disk type, instance name, disk name, no suitable zone)max_wait_until_readyso it fails in two minutes rather than ten while you work out which one it isWinRM::WinRMAuthorizationErrorfrom connecting asAdministrator, and the guest agent password timeoutCtrl-C, which the driver's own cleanup cannot handle becauseInterruptis not aStandardError-l debugas the catch-allEvery quoted message is the driver's actual text, so searching for it lands here.
Also adds a
## Contentslist. 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