From eadefcd30a275640a9dec252c9ee01fc383a94ba Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 17 Apr 2026 10:09:56 +0000 Subject: [PATCH] fix: replace script check with checkless service registration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nomad native service provider only supports tcp/http checks, not script checks. Since agents expose no HTTP endpoint, register the service without a check — Nomad tracks health via task lifecycle. Co-Authored-By: Claude Opus 4.6 (1M context) --- nomad/jobs/agents.hcl | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/nomad/jobs/agents.hcl b/nomad/jobs/agents.hcl index b0ba4cb..21fe139 100644 --- a/nomad/jobs/agents.hcl +++ b/nomad/jobs/agents.hcl @@ -68,22 +68,16 @@ job "agents" { mode = "delay" } - # ── Health check ───────────────────────────────────────────────────────── - # Script-based check matching docker-compose's pgrep healthcheck. - # Group-level service with `task` attribute on the check to run the - # script inside the agents container. + # ── Service registration ──────────────────────────────────────────────── + # Agents are outbound-only (poll forgejo, call llama) — no HTTP/TCP + # endpoint to probe. The Nomad native provider only supports tcp/http + # checks, not script checks. Registering without a check block means + # Nomad tracks health via task lifecycle: task running = healthy, + # task dead = service deregistered. This matches the docker-compose + # pgrep healthcheck semantics (process alive = healthy). service { name = "agents" provider = "nomad" - - check { - type = "script" - task = "agents" - command = "/usr/bin/pgrep" - args = ["-f", "entrypoint.sh"] - interval = "60s" - timeout = "5s" - } } task "agents" {