Fornax: COORDINATOR_URL env, port-lease webhook, Grafana dashboard
- Worker deployment: add COORDINATOR_URL and WORKER_ID env vars to portforward-helper; webhook calls coordinator /api/v2/workers/:id/port-lease after each NAT-PMP renewal so coordinator tracks current forwarded port - Worker overlays: patch WORKER_ID env var to actual worker ID (tx253/tx34) - Grafana: fornax-grafana Argo CD app pointing to k8s/fornax/grafana/ ConfigMap with grafana_dashboard=1 label for auto-discovery by sidecar; 7 panels covering bandwidth, active torrents, worker health, request rate, and error rate
This commit is contained in:
@@ -96,12 +96,18 @@ spec:
|
||||
- name: portforward-helper
|
||||
image: alpine:latest
|
||||
imagePullPolicy: Always
|
||||
env:
|
||||
- name: COORDINATOR_URL
|
||||
value: "https://fornax.neuralplatform.ai"
|
||||
- name: WORKER_ID
|
||||
value: "WORKER_ID"
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- |
|
||||
until apk add -q curl 2>/dev/null; do sleep 5; done
|
||||
echo "Watching /tmp/gluetun/forwarded_port for assigned port..."
|
||||
TTL=300
|
||||
while true; do
|
||||
if [ -f /tmp/gluetun/forwarded_port ]; then
|
||||
PORT=$(cat /tmp/gluetun/forwarded_port)
|
||||
@@ -112,6 +118,13 @@ spec:
|
||||
curl -s -b /tmp/qbt.txt -X POST http://localhost:8080/api/v2/app/setPreferences \
|
||||
-d "json={\"listen_port\":$PORT,\"random_port\":false}" >/dev/null 2>&1
|
||||
echo "$(date): qBittorrent listen port set to $PORT"
|
||||
# Notify coordinator of port lease
|
||||
if [ -n "$COORDINATOR_URL" ] && [ -n "$WORKER_ID" ]; then
|
||||
curl -s -X POST "$COORDINATOR_URL/api/v2/workers/$WORKER_ID/port-lease" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"port\": $PORT, \"ttlSeconds\": $TTL}" >/dev/null 2>&1 || true
|
||||
echo "$(date): Coordinator notified of port $PORT (TTL: ${TTL}s)"
|
||||
fi
|
||||
else
|
||||
echo "$(date): Port file empty, waiting..."
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user