feat(deploy): timer die redeploy_scrum4us afvuurt als main beweegt #131
No reviewers
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/Ops-dashboard!131
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/scrum4us-deploy-trigger"
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?
Part C Task 7 — het sluitstuk van de deploy-ordering. Sinds Part B de web-deploy ín de flow trok is deze trigger niet meer dragend voor correctheid: vuurt hij nooit, dan is het resultaat "niets gedeployd" — zichtbaar en veilig — in plaats van "UI vóór API". Daarom bewust het kleinste dat werkt.
Bewijs
9f91631NOOP: checkout is bij (9f91631e87d9), exit 0, nul POSTsno driftexit 0V2 — getoetst tegen ECHTE bodies, geen fixture
Dat laatste is het punt:
/agent/v1/flowgeeft HTTP 200 zodra het streamen begint, duscurl -fmeldt succes bij een mislukte deploy. Kan de parser geendone-event vinden, dan telt dat als mislukking — niet als succes.V3 — de hot-loop-guard
Getest met een stub-endpoint, niet met drie echte mislukte deploys.
V4 — de eerste echte tick
De werkboom is daarna schoon, wat betekent dat
assert_checkout_clean_scrum4usécht slaagde in plaats van overgeslagen te worden — de eerste end-to-end bevestiging dat denpm ci-fix de lockfile-churn wegneemt.Keuzes
User=ops-agentis een keuze, geen toeval:/etc/ops-agent/secretis0640 root:ops-agent, dus die gebruiker leest hem via de groep zonder de mode te verruimen. Dezelfde gebruiker bezit de checkout en heeft de git-credentials diels-remotenodig heeft.flock -n, opgeven in plaats van wachten: de volgende tick ziet dezelfde commit toch. Dit is dragend zolang de ops-agent geen admission control heeft — twee ticks zouden anders twee gelijktijdigedb:migrate:deploykunnen starten.Persistent=trueop de timer: een gemiste tick hoeft niet ingehaald te worden.TimeoutStartSec=5700omdat de flow minuten duurt en systemd hem anders zou afkappen.Verdict: REQUEST_CHANGES
geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
error —
deploy/ops-agent/systemd/scrum4us-deploy-trigger.service:18— De unit start/srv/scrum4me/scripts/scrum4us-deploy-trigger.sh, maar deze PR voegt het script toe alsdeploy/ops-agent/scripts/scrum4us-deploy-trigger.shen bevat geen setup/install-wijziging die het naar/srv/scrum4me/scripts/kopieert. Als de referentiekopie naar/etc/systemd/system/wordt toegepast zoals de comment beschrijft, faalt de service met een ontbrekendeExecStarten vuurt de timer nooit deredeploy_scrum4usflow af. Maak het runtime-pad consistent met de geleverde installatie of voeg de ontbrekende installatiestap toe.warning —
deploy/ops-agent/scripts/scrum4us-deploy-trigger.sh:44— De kritieke SSE-parser en retry-state zijn nieuw, maar de diff bevat geen test of fixture voordone-events, ontbrekendedone-events, niet-nul exit codes en deMAX_FAILS-limiet. Omdat de comments expliciet stellen dat de exit-code in de SSE-body de veiligheidsgrens is, verdient dit minimaal een gerichte shell-test of documented verification command voordat dit autonoom op een timer draait.Verdict: REQUEST_CHANGES
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
deploy/ops-agent/setup.sh:129: de normale ops-agent setup installeert nu welscrum4us-deploy-trigger.sh, maar maakt de verplichte state-directory/srv/scrum4us/triggerniet aan met eigenaarops-agent:ops-agent. De nieuwe service draait alsops-agenten het script probeertinstall -d -m 0750 "$STATE_DIR"zelf, maar de service-comments zeggen terecht dat/srv/scrum4usniet vanops-agentis. Op een schone host strandt de eerste timer-run daardoor bij het openen van$STATE_DIR/lock, waardoor de timer het beoogde automatische redeploy-pad niet uitvoert. Voeg de state-directory installatie toe aan de deploy/setup-flow, of pas de runtime-locatie aan naar een directory die de service-user kan aanmaken.Opmerkingen
De SSE-exitcode parsing en MAX_FAILS-guard zijn gericht getest met realistische fixtures. De blokkade zit in de operationele installatie: de runtime preconditie uit de unit wordt niet door de versioned setup afgedwongen.
Verdict: APPROVED
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
Review-notities
deploy/ops-agent/scripts/scrum4us-deploy-trigger.shbehandelt de relevante failure mode correct door de terminale SSEdonebody te parsen in plaats van op HTTP 200/curl-success te vertrouwen.flock, per-SHAMAX_FAILSstate en systemdStateDirectory=is passend voor een onbeheerde timer en voorkomt zowel parallelle deploys als een hot loop op dezelfde mislukte SHA.Verdict: APPROVED
Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Findings
Review-notities
flock, en een per-remote-sha fail-counter tegen hot loops.StateDirectory=conform het bestaande ops-agent patroon voor service-owned runtime state.