[nomad-step-5] S5.1 — nomad/jobs/edge.hcl (Caddy + dispatcher sidecar) #988
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#988
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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 of the Nomad+Vault migration. Step 5 — Edge + staging + chat + vault-runner dispatch.
Goal
Add
nomad/jobs/edge.hcl— Caddy reverse proxy + dispatcher sidecar. Routes traffic to Forgejo, Woodpecker, staging, and chat. The dispatcher pollsdisinto-opsfor vault actions and dispatches them via Nomad batch jobs.Scope
Create
nomad/jobs/edge.hcl:job "edge",type = "service", 1 group with 2 tasks:caddy+dispatcher.caddy:alpine(or the existingdocker/edgebuild — check if it's custom). Ports 80/443. Mountsdocker/Caddyfilefrom repo. Host volumecaddy-datafor certs.disinto/agents:localimage. Runsdocker/edge/dispatcher.sh. Env:DISPATCHER_BACKEND=nomad,FORGE_URL,FORGE_TOKENfrom Vault via template. Docker.sock mount for legacy compat (or remove if fully nomad-dispatched).vault { role = "dispatcher" }on the dispatcher task.checkstanza on caddy: HTTP check on port 80.docker/edge/Dockerfileexists and is custom, build asdisinto/edge:local(same:localpattern as agents). Otherwise usecaddy:alpinedirectly.Also: check if
docker/edge/Dockerfileis custom or just caddy:alpine. Inspect current compose edge service.Acceptance criteria
nomad job validate nomad/jobs/edge.hclclean.shellcheckclean.Non-goals
DISPATCHER_BACKEND=nomadimplementation (S5.5 — dispatcher.sh already has the docker branch; nomad branch added there).Labels / meta
[nomad-step-5] S5.1— no dependencies.