Delete old images from the deployer, and stop reading a full disk as a bad build #158
No reviewers
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!158
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-image-housekeeping"
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?
Task: NEC-101 — https://projectron.nerchure.com/tasks/101
The identity host went down on 24 September 2026. Its disk filled with about a hundred old builds, because the deployer never deletes an image.
/api/readyfailed on the disk floor. The deployer read that as a bad build and rolled back, and the rollback failed the same way. It then setAUTO_DEPLOY=offand posted a status-page incident. Recovered by hand; this stops it recurring.history.log) and:stable. Builds are matched by revision label, because:stableis pulled by digest and has no tag. Runs before each pull, after a successful deploy and on every tick that does not deploy, so an upgraded host clears its backlog on the first tick. Only$IMAGE, neverrmi -f, never fatal. Alsodeployer.sh prune [--dry-run]."reason":"disk"prunes and retries. If still full it recordsdisk-boundand pushesdown, and does not roll back or turn itself off.disk low: N MB freewhile free space is under twice the floor.statusgainsdisk_free,disk_floorandlocal_builds.Tests: 15 new ones in
deploy/test/deployer.test.ts, with fakedocker images/rmi/dfand readiness failing on disk. Each rule was mutation-checked; a substring-keep mutation survived at first and the test was tightened. The realdocker images/image inspectoutput was checked read-only against eu1: duplicated digest refs, 15 pre-label images,df -Pkparsing.Not yet verified live. After merge,
install-deployer.shcarries this to the hosts (it is not automatic). Rundeployer.sh prune --dry-runon eu1 first: it still holds ~100 old builds, left on purpose as test data.Follow-up, as a separate PR: a CI registry build cache, plus moving
GIT_SHAto the end of the runtime stages so builds share layers.Changelog
NONE
🤖 Generated with Claude Code
https://claude.ai/code/session_0187PLDdwErbQsm6aZi7KXuH
e34919a5498974ec37e98974ec37e915c3d34593