feat: reference check runner, docs and example DGD for validation gates
Closed
SE
19d ago+584+584+012345678901234567890123456789-0-0-0123456789
Part 6 of 6 of the worker validation gates stack (DEP ai-dynamo/dynamo#15897). Based on part 5.
Summary
dynamo.validation.completion: a built-in check that one chat completion through the loopback endpoint returns content.dynamo.validation.runner: a stateless check runner forurlgates, run as a sidecar.POST /validate/<name>runs that check with the gate's environment and answers 200 on exit 0, else 500 with the end of stderr. Loopback only, standard library only.- A docs page and an example DGD: an
execgate plus a sidecarurlgate, withmax-unavailable: 0. - Codeowners:
components/src/dynamo/validation/goes to the runtime area.
Validation
- E2E (
tests/fault_tolerance/test_worker_validation_gates.py, CPU mocker workers, real frontend, etcd and NATS), 3 passed on this stack: a failing gate holds the worker (/health503 with its reason,/live200, no client requests reach it) while the old worker serves; passing gates release it, including acompletioncheck through the loopback endpoint while the card is held; a restarted worker is checked again. - Runner unit test: 200 on pass, 500 with the stderr tail on fail, 404 for an unknown check.
- pre-commit clean; codeowners strict build at 100%.
🤖 Generated with Claude Code