ci(installtest): move the Linux --daemon-engine guard to authkey - #389
Conversation
Verification: the leg is alive and green
It clears the guard and runs the whole leg, including every assert this leg Compare the same job on the previous dispatch, before this change So One non-fatal warn, pre-existing and not a #179 signal — the harness says so Other legs in the same dispatch
CI note
|
|
Correction to the comment above: Full dispatch result (run 30735616525):
The THROUGHPUT assert is the known #300 baseline. The sentinel's This PR cannot be the cause: the sentinel leg enrolls through Rather than assert that from the diff alone, I dispatched the identical workflow |
Second dispatch settles the routing-sentinel questionrun 30736163050,
So the sentinel red in the first dispatch was not this branch. Its root cause is which is the known #97 / #29 flake. It also explains the The
|
6f2cae6 to
e3a8def
Compare
The leg has not run an assert since 2026-07-28. It dies 17 seconds in:
[installtest] --daemon-engine supports IT_ENROLL_MODE=oidc only (got 'authkey')
#290 replaced installtest's `oidc` enrol mode with `authkey` across the
workflow and all three OS drivers, and said so in its own body -- "Two legs
deliberately keep the old shape: --daemon-engine (macOS/Windows) still
completes an ordinary login out-of-band with the raw token". Linux is
missing from that sentence and from the change: the diff to this file
touched three comments and left the guard demanding a mode that no longer
exists (installtest-enroll.sh accepts authkey|interactive, and
--google-sa-login was deleted in the same PR).
Reverting the workflow is not an option, and nothing else has to move.
it_enroll_daemon_path never depended on the ambient enrol mode; it depends
on IT_IMPERSONATE_SA, gcloud, and the CP's /v1/login/oidc-grant, which is
exactly what authkey mode already requires. The leg keeps the RAW SA token
and completes the login out-of-band rather than spending the auth key --
the same shape installtest-macos.sh and installtest-windows.ps1 have used
since #290.
This matters more after #138: no installer pre-installs the engine on any
OS now, so `waired init` is the only thing that puts one on a host. Of its
two engine-install paths, --inference covers ensureDaemonPathEngine and
this leg is the only e2e that reaches runSetupEngineInstall -- the
wizard-driven half, which on Linux therefore had no live coverage at all.
Also refreshes the comments #290 left behind: the header still claimed the
engine is "installed by install.sh (--inference)" (false since #138) and
still explained --auth-key as a local-enroll selector, which #290 itself
made wrong. Plus two labels that drifted the same way -- run.sh's
"(oidc|bypass|interactive)" mode list and a Windows failure string reading
"waired init (oidc)" on the auth-key branch.
Verified: shellcheck (daemon-engine lib clean; the SC2015/SC1091 info
findings in enroll.sh/run.sh are pre-existing at untouched lines), bash -n,
pwsh parse. The leg itself needs the dev control plane -- dispatched
installtest-inference.yml (os=linux) on this branch.
Fixes #388
Signed-off-by: gen16k <gen16k@gmail.com>
e3a8def to
548c400
Compare
The Linux
--daemon-engineinstalltest leg has not run a single assert since2026-07-28. It dies 17 seconds in, at a mode guard that outlived the mode it
guards, and has done so on every scheduled nightly since:
Root cause
#290 replaced installtest's
oidcenrol mode withauthkeyacross the workflowand all three OS drivers. Its own body says:
Linux is missing from that sentence and from the change. #290's diff to
scripts/dev/lib/installtest-daemon-engine.shtouched three comments and leftthe guard alone:
.github/workflows/installtest-inference.yml:238authkeyscripts/dev/installtest-macos.sh:651authkeyonly — portedscripts/dev/installtest-windows.ps1:1167authkeyonly — portedscripts/dev/lib/installtest-daemon-engine.sh:140oidconly — not portedReverting the workflow is not an option:
oidcmode no longer exists.installtest-enroll.shacceptsauthkey|interactive, and--google-sa-loginwas deleted from the CLI in the same PR.
Why moving the guard is the whole fix
it_enroll_daemon_pathnever depended on the ambient enrol mode. It depends onIT_IMPERSONATE_SA,gcloudon PATH, and the control plane's/v1/login/oidc-grant— exactly the three thingsauthkeymode alreadyrequires (
installtest-enroll.sh:67-70). The leg keeps the raw SA id_tokenand completes the login out-of-band instead of spending the auth key, which is
the shape
installtest-macos.sh(daemon_path_enroll_macos) andinstalltest-windows.ps1(-DaemonEngine) have used since #290.Why it matters more now
After #138, no installer pre-installs the engine on any OS —
waired initisthe only thing that puts one on a host. Its two engine-install paths split like
this:
ensureDaemonPathEngine--inferencerunSetupEngineInstall--daemon-engineWith this leg dead, the wizard-driven half had no live end-to-end coverage on
Linux at all.
Also in this PR
Comment drift left by #290, all the same class:
install.sh(
--inference)" — false since [M] Linux installer still pre-installs Ollama before consent; diverges from macOS/Windows #138 — and still explained--auth-keyas alocal-enroll selector, which feat(cli): enroll with an auth key, through the daemon (#175) #290 itself made wrong;
installtest-run.sh's mode list read(oidc|bypass|interactive);waired init (oidc)on the auth-key branch, anda comment there read "No / a credential flag".
Verification
shellcheck—installtest-daemon-engine.shclean; the SC2015/SC1091 infofindings in
installtest-enroll.sh/installtest-run.share pre-existing atuntouched lines (same set on
origin/main). Note these files are not inscripts/ci/install-script-lint.sh's target list, nor isinstalltest-windows.ps1inps-script-lint.ps1's.bash -non all three shell files; PowerShell parser check on the.ps1.impersonated SA.
installtest-inference.yml(os=linux) dispatched on thisbranch — the bar is that the leg reaches
==> daemon-path 'waired init' (fg ...)and prints a Tier-2 summary instead ofexiting at the guard. Result recorded in a comment below.
scripts/dev/is absent fromtestnet-relevant-paths.txt) and not a docs surface.Fixes #388
Refs #300
Refs #138