chore(ops-agent): compose project-name collisie-check voor max2 #55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/compose-collision-check"
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?
Spiegelt Ops-dashboard
59c2789naarscrum4me-docker, met de runtime-conventie van max2: het script leeft in de clone naastscripts/check-ops-agent-drift.sh. Dat mag hier, want de rollout-flow doetgit reset --hard origin/master(nietgit pull --ff-onlyzoals 154), dus een vuile tree aborteert niets.Twee correcties t.o.v. de 154-versie
1. Destructief = één projectnaam over meerdere directories, niet over meerdere bestanden.
Meerdere files in één map zijn de normale compose-layout:
docker-compose.yml+docker-compose.override.ymlworden auto-gemerged, extra-f-files worden bewust gestapeld. De bestandstelling markeerde/srv/scrum4me/compose(3 files) en/srv/immich(2 files) als destructief — allebei kerngezond.Dat is niet cosmetisch. Het origineel houdt check (b) bewust warning-only met de redenering "an alarm that always fires is an alarm nobody reads". Met de bestandstelling gold precies dat voor check (a), die wél alarmeert.
2.
_attic/uitgesloten van de scan.Dat is de aangewezen quarantaine voor
.broken-kopieën. Op max2 leeft die op/srv/_attic/<datum>/, dus binnen de/srvscan-root. Zonder uitsluiting houden juist de bestanden die de quarantaine van het deploy-oppervlak haalde het rapport voorgoed rood. Een file onder_attic/staat per constructie niet op een deploy-oppervlak; moet hij ooit weer draaien, dan wordt hij eerst teruggezet (zie_attic/<datum>/MANIFEST.txt).Beide correcties zijn het waard om terug te vouwen in de 154-kopie.
Verificatie
Drie synthetische gevallen, allemaal zoals verwacht:
compose1 destructive, exit 1yml+override+extra)clean, exit 0_attic-kopie naast een live stackclean, exit 0Op max2, na quarantaine van de vier
.broken-kopieën: 5 destructieve collisies → 2.Resterend, allebei bekend en niet door deze PR op te lossen:
compose— de ops-dashboard-clone op max2 staat opa1bab5den mist59c2789, dusdeploy/compose/docker-compose.ymlheeft daar nog geenname:. Verdwijnt zodraupdate_ops_dashboarddraait.deploy—motherless-scrapper/repo/deploy/docker-compose.override.ymlenops-dashboard/deploy/docker-compose.ops-dashboard.ymlhebben geenname:en liggen allebei in een map diedeployheet. Vergt eenname:upstream in die twee repo's.Timer
00:35+ 10 min randomisatie → vuurt 00:35–00:45. Ruim vanops-agent-drift.timer(00:00–00:15),worker-logs-ingest.timer(00:15) enworker-logs-prune.timer(01:06).De units zijn in deze PR niet op de host geïnstalleerd; dat vraagt een aparte, expliciete go van JP (root-systemd-timer = geplande code-uitvoering).
🤖 Generated with Claude Code