fix(manage-server): wipe /bins volume on upgrade so new binaries take effect #2
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
primatekuntech/triton-install!2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/upgrade-wipe-bins-volume"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Mirrors the fix already merged in the source-of-truth
tritonrepo (scripts/deploy/manage-server/upgrade.sh, commit a0ead5ba).upgrade.shrecreated the manage-server container via--force-recreate, but thetriton-manage-binsnamed volume (mounted at/bins) persists across container recreates by design — a named volume is only auto-populated from the image's baked content on true first creation. So every upgrade silently kept serving whatever worker/agent binaries were baked into the image at first install, forever — diagnosed via a real production install where a newly-published image's binaries (a new Windows sshagent build) never appeared after upgrading to the new image.Fix: explicitly stop + remove the container, remove the
triton-manage-binsvolume, then recreate — the fresh volume auto-populates from the new image on next start.Safety:
/binsholds only binaries reproducible from the image (or re-synced from the license server if configured) — no trust material lives there. Confirmed the gateway's self-signed CA and its private key live entirely in Postgres (manage_catable,triton-manage-db-datavolume —pkg/manageserver/ca/postgres.go), never touched by this.Note on scope:
manage-server/upgrade.shin this repo had already drifted from thetritonsource-of-truth independently — it has macOS-specific runtime detection (auto-starting Podman machine) and TLS path fixups not present in thetritoncopy. Applied this fix to the file's current structure as-is; did not attempt to reconcile that broader pre-existing divergence between the two repos in this PR.Test plan
bash -nsyntax check cleanshellcheck --severity=warning— zero new findings (same pre-existing SC2034 note on the health-check loop, unrelated to this change)podman composeproject mimicking this file's structure (two services + named volume): confirmed the volume is correctly wiped and freshly repopulated from the image onup -d --no-deps, and that the unrelateddbservice/container is never touched throughout the sequencepodman volume inspect/rm🤖 Generated with Claude Code