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.
This commit is contained in:
tegwick 2026-08-05 17:26:03 +02:00
parent 94a15d67aa
commit 13d827eaf8

View file

@ -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