asset-engine: drop traefik wiring, LAN-direct only
Internal tooling — accessed at http://10.250.50.70:8200, not through Traefik. Removes the unused traefik labels (router rule, TLS, crowdsec middleware, loadbalancer port) and the traefik-net network membership; homepage.href now points at host:port for direct discovery, matching task-board's pattern. Playbook verify drops the traefik-net membership check.
This commit is contained in:
@@ -13,7 +13,6 @@
|
|||||||
#
|
#
|
||||||
# Prereqs on the target host:
|
# Prereqs on the target host:
|
||||||
# - Docker + docker compose plugin
|
# - Docker + docker compose plugin
|
||||||
# - `traefik-net` docker network (external)
|
|
||||||
# - Target user (lkraven) has git SSH access to gitea.phasefinal.com
|
# - Target user (lkraven) has git SSH access to gitea.phasefinal.com
|
||||||
# — either SSH key authorized in gitea, or the repo is HTTPS-reachable
|
# — either SSH key authorized in gitea, or the repo is HTTPS-reachable
|
||||||
# if you swap `repo_url` below.
|
# if you swap `repo_url` below.
|
||||||
@@ -128,9 +127,3 @@ verify:
|
|||||||
- name: /health body reports status=ok
|
- name: /health body reports status=ok
|
||||||
shell: curl -sf http://localhost:{{ host_port }}/health | grep -q '"status"[[:space:]]*:[[:space:]]*"ok"'
|
shell: curl -sf http://localhost:{{ host_port }}/health | grep -q '"status"[[:space:]]*:[[:space:]]*"ok"'
|
||||||
changed_when: "false"
|
changed_when: "false"
|
||||||
|
|
||||||
- name: Container is in the traefik-net network
|
|
||||||
# `traefik-net` has a dash, so it's not accessible via Go template dot
|
|
||||||
# syntax — JSON-encode the networks map and grep for the key instead.
|
|
||||||
shell: docker inspect asset-engine --format '{{json .NetworkSettings.Networks}}' | grep -q traefik-net
|
|
||||||
changed_when: "false"
|
|
||||||
|
|||||||
@@ -7,13 +7,10 @@
|
|||||||
ASSET_ENGINE_IMAGE=asset-engine:local
|
ASSET_ENGINE_IMAGE=asset-engine:local
|
||||||
|
|
||||||
# Host port exposing the FastAPI app (container listens on 8000 internally).
|
# Host port exposing the FastAPI app (container listens on 8000 internally).
|
||||||
# Internal-only tool — LAN access on this port is the primary entry; the
|
# Internal tooling, LAN-only — this port is the only entry point. No Traefik.
|
||||||
# Traefik labels in compose.yaml additionally route the public hostname.
|
|
||||||
ASSET_ENGINE_PORT=8200
|
ASSET_ENGINE_PORT=8200
|
||||||
|
|
||||||
# Bind address for the host port. 0.0.0.0 = LAN-reachable (default for an
|
# Bind address for the host port. 0.0.0.0 = LAN-reachable.
|
||||||
# internal-only tool). Flip to 127.0.0.1 only if you want to force all
|
|
||||||
# traffic through traefik.
|
|
||||||
ASSET_ENGINE_BIND=0.0.0.0
|
ASSET_ENGINE_BIND=0.0.0.0
|
||||||
|
|
||||||
# Host paths for state. Container runs as uid 1000 — paths must be writable
|
# Host paths for state. Container runs as uid 1000 — paths must be writable
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ over WG by default), and persists generated assets to a local SQLite
|
|||||||
DB + content-addressed blob store.
|
DB + content-addressed blob store.
|
||||||
|
|
||||||
**Server:** ana-docker
|
**Server:** ana-docker
|
||||||
**Hostname (TLS):** `asset-engine.phasefinal.com` (TLS via Traefik / `anaprod` cert resolver)
|
**URL:** `http://10.250.50.70:8200` (configurable via `.env`)
|
||||||
**LAN port:** `10.250.50.70:8200` (configurable via `.env`)
|
|
||||||
**Upstream repo:** [vh/asset-engine](https://gitea.phasefinal.com/vh/asset-engine)
|
**Upstream repo:** [vh/asset-engine](https://gitea.phasefinal.com/vh/asset-engine)
|
||||||
**Image:** `asset-engine:local` — built on the host from the git repo by
|
**Image:** `asset-engine:local` — built on the host from the git repo by
|
||||||
the deploy playbook. Not pulled from a registry.
|
the deploy playbook. Not pulled from a registry.
|
||||||
@@ -55,14 +54,11 @@ scripts/elway ana-docker --playbook playbooks/deploy-asset-engine.yaml --var ref
|
|||||||
|
|
||||||
## Network model
|
## Network model
|
||||||
|
|
||||||
Internal-only tool, two entry points:
|
Internal tooling, LAN-only. Container port 8000 is published on the host
|
||||||
|
at `0.0.0.0:8200` (configurable via `ASSET_ENGINE_BIND` /
|
||||||
- **LAN**, default: `http://10.250.50.70:8200` — container port 8000
|
`ASSET_ENGINE_PORT`); access is direct via `http://10.250.50.70:8200`.
|
||||||
published on the host, bound to 0.0.0.0 (configurable via
|
No Traefik, no TLS terminator, no public hostname. If we later need
|
||||||
`ASSET_ENGINE_BIND` / `ASSET_ENGINE_PORT`).
|
TLS or external access, that's a separate decision.
|
||||||
- **TLS hostname**: `https://asset-engine.phasefinal.com` — Traefik on
|
|
||||||
ana-docker terminates TLS and forwards to the container over the
|
|
||||||
`traefik-net` docker network on port 8000.
|
|
||||||
|
|
||||||
`INFERENCE_HOST` defaults to `10.100.79.3` (irv-ml1 over WG). Override
|
`INFERENCE_HOST` defaults to `10.100.79.3` (irv-ml1 over WG). Override
|
||||||
in `.env` if the fleet's inference topology moves.
|
in `.env` if the fleet's inference topology moves.
|
||||||
|
|||||||
@@ -13,9 +13,10 @@
|
|||||||
# asset-engine:local .` before installing this compose and bringing
|
# asset-engine:local .` before installing this compose and bringing
|
||||||
# it up. No registry.
|
# it up. No registry.
|
||||||
#
|
#
|
||||||
# State persists under /opt/docker/conf/asset-engine/{db,outputs} on
|
# Internal tooling — accessed directly on host:port over the LAN, does
|
||||||
# the host — separate bind-mounts so outputs/ can move to a bigger
|
# NOT traverse Traefik. State persists under /opt/docker/conf/asset-engine/
|
||||||
# volume later without touching DB state.
|
# {db,outputs} on the host — separate bind-mounts so outputs/ can move
|
||||||
|
# to a bigger volume later without touching DB state.
|
||||||
#
|
#
|
||||||
# All tunables live in .env — edit that, not this file.
|
# All tunables live in .env — edit that, not this file.
|
||||||
|
|
||||||
@@ -44,23 +45,9 @@ services:
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 3
|
retries: 3
|
||||||
start_period: 30s
|
start_period: 30s
|
||||||
networks:
|
|
||||||
- tnet
|
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
|
||||||
- traefik.http.routers.asset-engine.rule=Host(`asset-engine.phasefinal.com`)
|
|
||||||
- traefik.http.routers.asset-engine.entrypoints=websecure
|
|
||||||
- traefik.http.routers.asset-engine.tls=true
|
|
||||||
- traefik.http.routers.asset-engine.tls.certresolver=anaprod
|
|
||||||
- traefik.http.routers.asset-engine.middlewares=crowdsec@file
|
|
||||||
- traefik.http.services.asset-engine.loadbalancer.server.port=8000
|
|
||||||
- homepage.group=AI Systems
|
- homepage.group=AI Systems
|
||||||
- homepage.name=Asset Engine
|
- homepage.name=Asset Engine
|
||||||
- homepage.icon=mdi-tools
|
- homepage.icon=mdi-tools
|
||||||
- homepage.description=Control plane over the PFI inference fleet
|
- homepage.description=Control plane over the PFI inference fleet
|
||||||
- homepage.href=https://asset-engine.phasefinal.com
|
- homepage.href=http://10.250.50.70:${ASSET_ENGINE_PORT}
|
||||||
|
|
||||||
networks:
|
|
||||||
tnet:
|
|
||||||
name: traefik-net
|
|
||||||
external: true
|
|
||||||
|
|||||||
Reference in New Issue
Block a user