Problem
/etc/boxlite/runner.env in prod holds an empty OTEL_EXPORTER_OTLP_ENDPOINT, and runner/main.go:58,80 skip OTel init on an empty one: no logs, no traces.
The boot script that wrote it is in ignoreChanges and the instance is protect: true, so no deploy reaches it. unitEnvironmentBlock, the only channel that does, pins BOXLITE_API_URL alone.
Approach
| Site |
Change |
runner-upgrade.ts |
otlpUrl, validated and pinned |
gcp/runners.ts |
$resolve beside apiUrl |
aws/runners.ts |
payload, triggers |
src/runner-update.ts |
unchanged |
Absent omits the key. Empty is refused: converging onto it enforces the bug.
Alternatives
| Option |
Why not |
| Replace hosts |
protect forbids; destroys boxes |
| Hand-repair |
Not the class |
| Second policy |
Restarts a host twice |
Validation
The rendered enforce, under bash, against the prod file shape. Reverted: still empty. Restored: passes. Plus make test:apps:infra.
Problem
/etc/boxlite/runner.envin prod holds an emptyOTEL_EXPORTER_OTLP_ENDPOINT, andrunner/main.go:58,80skip OTel init on an empty one: no logs, no traces.The boot script that wrote it is in
ignoreChangesand the instance isprotect: true, so no deploy reaches it.unitEnvironmentBlock, the only channel that does, pinsBOXLITE_API_URLalone.Approach
runner-upgrade.tsotlpUrl, validated and pinnedgcp/runners.ts$resolvebesideapiUrlaws/runners.tstriggerssrc/runner-update.tsAbsent omits the key. Empty is refused: converging onto it enforces the bug.
Alternatives
protectforbids; destroys boxesValidation
The rendered
enforce, under bash, against the prod file shape. Reverted: still empty. Restored: passes. Plusmake test:apps:infra.