Fail fast on unreachable operator Git

This commit is contained in:
Mikei386
2026-08-25 10:35:15 +02:00
parent bc1fbe9388
commit 63afc672c5
3 changed files with 9 additions and 3 deletions
+6
View File
@@ -113,6 +113,12 @@ exakter SHA-256-Prüfsumme übernommen werden; ihr Inhalt wird nicht erneut
erzeugt. Vollständige Compose-Dateien oder Base64-Kopien sind unnötig. Interne erzeugt. Vollständige Compose-Dateien oder Base64-Kopien sind unnötig. Interne
MCPs verwenden Docker-DNS und benötigen ohne ausdrücklichen Auftrag weder einen MCPs verwenden Docker-DNS und benötigen ohne ausdrücklichen Auftrag weder einen
VPN-Port noch eine WireGuard-Änderung. VPN-Port noch eine WireGuard-Änderung.
Der Athena-Host selbst besitzt absichtlich keinen direkten Heimnetzpfad. Ein
nicht erreichbarer Git-SSH-Server wird deshalb mit kurzem Timeout ehrlich
gemeldet, statt den Lauf minutenlang zu blockieren. Bis ein eigener, ausdrücklich
freigegebener Git-Transport entworfen ist, muss der fertige lokale Commit von
einem Heimnetz-Client gepusht werden; Remote, Schlüssel und Routing bleiben
unverändert.
`run_checks` prüft, `compose_deploy` `run_checks` prüft, `compose_deploy`
rollt nur benannte Dienste aus, `git_publish` veröffentlicht nur ausdrücklich rollt nur benannte Dienste aus, `git_publish` veröffentlicht nur ausdrücklich
ausgewählte Pfade und `recovery` erneuert den Recovery-Koffer. Lege niemals ausgewählte Pfade und `recovery` erneuert den Recovery-Koffer. Lege niemals
+1 -1
View File
@@ -211,7 +211,7 @@ services:
build: build:
context: . context: .
dockerfile: Dockerfile.athena-operator dockerfile: Dockerfile.athena-operator
image: mike-ai/mcp-athena-operator:2.3.3 image: mike-ai/mcp-athena-operator:2.3.4
container_name: mike-ai-mcp-athena-operator container_name: mike-ai-mcp-athena-operator
environment: environment:
ATHENA_OPERATOR_SOCKET: /operator/operator.sock ATHENA_OPERATOR_SOCKET: /operator/operator.sock
+2 -2
View File
@@ -29,7 +29,7 @@ from pathlib import Path
from typing import Any from typing import Any
VERSION = "2.3.3" VERSION = "2.3.4"
STACK = Path(os.environ.get("ATHENA_OPERATOR_STACK", "/opt/mike-ai/stack")).resolve() STACK = Path(os.environ.get("ATHENA_OPERATOR_STACK", "/opt/mike-ai/stack")).resolve()
REPOSITORY = Path(os.environ.get("ATHENA_OPERATOR_REPOSITORY", "/data/mike-ai-operator/repository")).resolve() REPOSITORY = Path(os.environ.get("ATHENA_OPERATOR_REPOSITORY", "/data/mike-ai-operator/repository")).resolve()
STATE = Path(os.environ.get("ATHENA_OPERATOR_STATE", "/data/mike-ai-operator/state")).resolve() STATE = Path(os.environ.get("ATHENA_OPERATOR_STATE", "/data/mike-ai-operator/state")).resolve()
@@ -120,7 +120,7 @@ def run(argv: list[str], *, cwd: Path = STACK, timeout: int = 900, check: bool =
environment["GIT_SSH_COMMAND"] = ( environment["GIT_SSH_COMMAND"] = (
f"ssh -i {shlex.quote(str(git_key))} -o IdentitiesOnly=yes " f"ssh -i {shlex.quote(str(git_key))} -o IdentitiesOnly=yes "
f"-o UserKnownHostsFile={shlex.quote(str(known_hosts))} " f"-o UserKnownHostsFile={shlex.quote(str(known_hosts))} "
"-o StrictHostKeyChecking=yes" "-o StrictHostKeyChecking=yes -o BatchMode=yes -o ConnectTimeout=8"
) )
completed = subprocess.run( completed = subprocess.run(
argv, cwd=cwd, env=environment, argv, cwd=cwd, env=environment,