trading-system-docs/red-queen-architecture/control-plane/cp2a2_2b/deploy.sh

44 lines
2 KiB
Bash

#!/bin/bash
# CP2A2.2B — L1 Red Queen Worker: Deploy-Skript
# STRICTLY NON-AUTONOMOUS / NON-PRODUCTIVE. NO AUTONOMY. NO HEARTBEAT. NO SCHEDULER.
#
# Baut und startet den L1 Worker Container (non-root, hardened, internal-Netz).
# Haengt Gate-Evaluator, Ollama und Tolaria an das l1-internal Netz an
# (nur Netzwerk-Attachment, KEINE Config/ENV/Credential-Aenderung).
#
# KEIN AUTOSTART-AUTONOMIE: Der Container startet inert (sleep infinity).
# Kein autonomer Tick, kein Heartbeat, kein Scheduler.
set -eu
cd "$(dirname "$0")"
echo "=== CP2A2.2B L1 WORKER DEPLOY ==="
# 1. Worker-State-Volume vorbereiten (worker-owned, UID 10000)
# Das Volume wird als named volume gemountet; der hermes-User (UID 10000)
# ist der Worker und besitzt das State-Verzeichnis.
echo "[1/4] Worker-State-Volume vorbereiten..."
docker volume create l1-worker-state >/dev/null 2>&1 || true
# 2. Image bauen (aus SoT, non-root, read-only, cap-drop)
echo "[2/4] Image bauen (l1-red-queen-worker:cp2a2_2b)..."
docker build -t l1-red-queen-worker:cp2a2_2b .
# 3. Container starten (internal-Netz, non-root, hardened)
echo "[3/4] Container starten (l1-red-queen-worker)..."
docker compose -f docker-compose.yml up -d
# 4. Interne Ziele an l1-internal Netz anhaengen (nur Netzwerk-Attachment)
echo "[4/4] Interne Ziele an l1-internal Netz anhaengen..."
docker network connect l1-internal gate-evaluator 2>/dev/null || echo " (gate-evaluator bereits verbunden oder nicht verfuegbar)"
docker network connect l1-internal ollama-nb6d-ollama-1 2>/dev/null || echo " (ollama bereits verbunden oder nicht verfuegbar)"
docker network connect l1-internal tolaria 2>/dev/null || echo " (tolaria bereits verbunden oder nicht verfuegbar)"
echo ""
echo "=== DEPLOY ABGESCHLOSSEN ==="
echo "Container: l1-red-queen-worker (inert idle, NO AUTONOMY)"
echo "Netzwerk: l1-internal (internal=true, keine Egress)"
echo "State-Volume: l1-worker-state (worker-owned)"
echo ""
echo "Hinweis: Der Worker startet inert. Kein autonomer Tick wird gestartet."