devops folders consolidate
This commit is contained in:
@@ -1,31 +1,29 @@
|
||||
# Signals CI/CD & Local Stack (DEVOPS-SIG-26-001)
|
||||
|
||||
Artifacts:
|
||||
- Compose stack: `ops/devops/signals/docker-compose.signals.yml` (Signals API + Mongo + Valkey + artifact volume).
|
||||
- Sample config: `ops/devops/signals/signals.yaml` (mounted into the container at `/app/signals.yaml` if desired).
|
||||
- Dockerfile: `ops/devops/signals/Dockerfile` (multi-stage build on .NET 10 RC).
|
||||
- Build/export helper: `scripts/signals/build.sh` (saves image tar to `out/signals/signals-image.tar`).
|
||||
- Span sink stack: `ops/devops/signals/docker-compose.spansink.yml` + `otel-spansink.yaml` to collect OTLP traces (Excititor `/v1/vex/observations/**`) and write NDJSON to `spansink-data` volume. Run via `scripts/signals/run-spansink.sh`.
|
||||
- Grafana dashboard stub: `ops/devops/signals/dashboards/excititor-vex-traces.json` (import into Tempo-enabled Grafana).
|
||||
- Compose stack: `devops/compose/docker-compose.stella-ops.yml` (Signals API + PostgreSQL + Valkey + artifact volume).
|
||||
- Sample config: `devops/services/signals-ops/signals.yaml` (mounted into the container at `/app/signals.yaml` if desired).
|
||||
- Dockerfile: `devops/services/signals-ops/Dockerfile` (multi-stage build on .NET 10 RC).
|
||||
- Build/export helper: `devops/tools/signals-scripts/build.sh` (saves image tar to `out/signals/signals-image.tar`).
|
||||
- Span sink stack: `devops/services/signals-ops/docker-compose.spansink.yml` + `otel-spansink.yaml` to collect OTLP traces (Excititor `/v1/vex/observations/**`) and write NDJSON to `spansink-data` volume.
|
||||
- Grafana dashboard stub: `devops/services/signals-ops/dashboards/excititor-vex-traces.json` (import into Tempo-enabled Grafana).
|
||||
|
||||
Quick start (offline-friendly):
|
||||
```bash
|
||||
# build image
|
||||
scripts/signals/build.sh
|
||||
devops/tools/signals-scripts/build.sh
|
||||
|
||||
# run stack
|
||||
COMPOSE_FILE=ops/devops/signals/docker-compose.signals.yml docker compose up -d
|
||||
docker compose -f devops/compose/docker-compose.stella-ops.yml up -d signals
|
||||
|
||||
# hit health
|
||||
curl -s http://localhost:5088/health
|
||||
|
||||
# run span sink collector
|
||||
scripts/signals/run-spansink.sh
|
||||
```
|
||||
|
||||
Configuration (ENV or YAML):
|
||||
- `Signals__Mongo__ConnectionString` default `mongodb://signals-mongo:27017/signals`
|
||||
- `Signals__Cache__ConnectionString` default `signals-valkey:6379`
|
||||
- `Signals__Storage__Driver` default `postgres`
|
||||
- `Signals__Storage__ConnectionString` default `Host=stellaops-postgres;Port=5432;Database=signals;Username=stellaops;Password=stellaops`
|
||||
- `Signals__Cache__ConnectionString` default `stellaops-valkey:6379`
|
||||
- `Signals__Storage__RootPath` default `/data/artifacts`
|
||||
- Authority disabled by default for local; enable with `Signals__Authority__Enabled=true` and issuer settings.
|
||||
|
||||
@@ -33,6 +31,6 @@ CI workflow:
|
||||
- `.gitea/workflows/signals-ci.yml` restores, builds, tests, builds container, and uploads `signals-image.tar` artifact.
|
||||
|
||||
Dependencies:
|
||||
- Mongo 7 (wiredTiger)
|
||||
- Valkey 8 (cache, BSD-3 licensed Redis fork)
|
||||
- PostgreSQL 18.1 (primary data store)
|
||||
- Valkey 9.0.1 (cache, BSD-3 licensed Redis fork)
|
||||
- Artifact volume `signals_artifacts` for callgraph blobs.
|
||||
|
||||
@@ -1,4 +1,13 @@
|
||||
version: "3.9"
|
||||
# =============================================================================
|
||||
# SIGNALS - LOCAL DEVELOPMENT STACK
|
||||
# =============================================================================
|
||||
# Signals API local development environment.
|
||||
#
|
||||
# Usage:
|
||||
# docker compose -f docker-compose.signals.yml up -d
|
||||
#
|
||||
# For production, use compose/docker-compose.stella-ops.yml instead.
|
||||
# =============================================================================
|
||||
|
||||
services:
|
||||
signals-api:
|
||||
@@ -8,8 +17,8 @@ services:
|
||||
image: stellaops/signals:local
|
||||
environment:
|
||||
ASPNETCORE_URLS: "http://+:5088"
|
||||
Signals__Mongo__ConnectionString: "mongodb://signals-mongo:27017/signals"
|
||||
Signals__Mongo__Database: "signals"
|
||||
Signals__Storage__Driver: "postgres"
|
||||
Signals__Storage__Postgres__ConnectionString: "Host=signals-postgres;Port=5432;Database=signals;Username=signals;Password=signals"
|
||||
Signals__Cache__ConnectionString: "signals-valkey:6379"
|
||||
Signals__Storage__RootPath: "/data/artifacts"
|
||||
Signals__Authority__Enabled: "false"
|
||||
@@ -17,21 +26,26 @@ services:
|
||||
ports:
|
||||
- "5088:5088"
|
||||
depends_on:
|
||||
- signals-mongo
|
||||
- signals-valkey
|
||||
signals-postgres:
|
||||
condition: service_healthy
|
||||
signals-valkey:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- signals_artifacts:/data/artifacts
|
||||
- ./signals.yaml:/app/signals.yaml:ro
|
||||
|
||||
signals-mongo:
|
||||
image: mongo:7
|
||||
command: ["mongod", "--quiet", "--storageEngine=wiredTiger"]
|
||||
signals-postgres:
|
||||
image: postgres:18.1-alpine
|
||||
environment:
|
||||
POSTGRES_USER: signals
|
||||
POSTGRES_PASSWORD: signals
|
||||
POSTGRES_DB: signals
|
||||
ports:
|
||||
- "57027:27017"
|
||||
- "55433:5432"
|
||||
volumes:
|
||||
- signals_mongo:/data/db
|
||||
- signals_postgres:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping')"]
|
||||
test: ["CMD-SHELL", "pg_isready -U signals -d signals"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
@@ -49,5 +63,4 @@ services:
|
||||
|
||||
volumes:
|
||||
signals_artifacts:
|
||||
signals_mongo:
|
||||
|
||||
signals_postgres:
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Sample offline configuration for Signals
|
||||
|
||||
Signals:
|
||||
Mongo:
|
||||
ConnectionString: "mongodb://signals-mongo:27017/signals"
|
||||
Database: "signals"
|
||||
Storage:
|
||||
Driver: "postgres"
|
||||
ConnectionString: "Host=signals-postgres;Port=5432;Database=signals;Username=stellaops;Password=stellaops"
|
||||
Cache:
|
||||
ConnectionString: "signals-valkey:6379"
|
||||
DefaultTtlSeconds: 600
|
||||
Storage:
|
||||
Artifacts:
|
||||
RootPath: "/data/artifacts"
|
||||
Authority:
|
||||
Enabled: false
|
||||
|
||||
Reference in New Issue
Block a user