From 13d827eaf8c8c3341939b420d545ae1abd784a8b Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 5 Aug 2026 17:26:03 +0200 Subject: [PATCH] fix(claim-loop): unit must use rein-aharness-claim wrapper EnvironmentFile + direct venv ExecStart skipped k8s:// resolution and could not parse REPO_MAP JSON. Wrapper loads env safely and resolves ClusterIPs; PATH includes kubectl. --- deploy/systemd/rein-aharness-claim-loop.service | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/deploy/systemd/rein-aharness-claim-loop.service b/deploy/systemd/rein-aharness-claim-loop.service index 8a175be..4575354 100644 --- a/deploy/systemd/rein-aharness-claim-loop.service +++ b/deploy/systemd/rein-aharness-claim-loop.service @@ -6,15 +6,16 @@ Wants=network-online.target [Service] Type=simple -# Adjust paths for the railiance user checkout WorkingDirectory=%h/rein-aharness -EnvironmentFile=-%h/.config/rein-aharness/claim-loop.env Environment=PYTHONUNBUFFERED=1 -# Prefer venv entrypoint when installed with uv/pip -ExecStart=%h/rein-aharness/.venv/bin/rein-aharness claim-loop +Environment=KUBECONFIG=/etc/rancher/k3s/k3s.yaml +# Ensure kubectl is available for k8s:// URL resolution in rein-aharness-claim +Environment=PATH=/usr/local/bin:/usr/bin:/bin:%h/bin +# Wrapper loads claim-loop.env (JSON-safe) and resolves k8s:// ClusterIPs +# Do not use EnvironmentFile= for claim-loop.env — REPO_MAP JSON breaks systemd parser +ExecStart=%h/bin/rein-aharness-claim claim-loop Restart=on-failure RestartSec=15 -# Soft stop: claim-loop handles SIGTERM between cycles KillSignal=SIGTERM TimeoutStopSec=120