Containerizes the momentum monolith and packages every run mode for
deployment in a single Kubernetes namespace, with PostgreSQL hosted in
the cluster.
- Dockerfile (python:3.11-slim, non-root, writable /app/data) + .dockerignore
- GitHub Actions workflow publishing to ghcr.io/fez5587/momentum-system
- Helm chart (deploy/helm/momentum):
* PostgreSQL StatefulSet + PVC (single source of truth; schema
auto-creates from storage/pg_schema.sql on first connect)
* App Deployment running run_live_paper.py with the embedded dashboard
(replicas: 1, Recreate; the dashboard's write endpoints need the
in-process TradingExecutionService) + Service/Ingress on 8010, plus a
wait-for-postgres initContainer
* CronJobs for journal / eod-replay / nightly-tune (US/Eastern via
spec.timeZone) sharing the app data PVC
* ConfigMap (tuning env) + Secret (DATABASE_URL/broker keys, existingSecret
supported); DATABASE_URL built from the in-cluster Postgres service
* Optional Grafana provisioned against the in-cluster Postgres
- deploy/README.md with install, secrets, and constraints
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JCVMm2AbmZvvxwLTX6UpNR
49 lines
583 B
Plaintext
49 lines
583 B
Plaintext
# VCS / CI
|
|
.git
|
|
.github
|
|
.gitignore
|
|
|
|
# Secrets and runtime data (never bake into the image; provided via Secret/PVC)
|
|
.env
|
|
.env.*
|
|
data/
|
|
*.duckdb
|
|
*.wal
|
|
|
|
# Local Grafana stack (provisioned via the Helm chart instead)
|
|
grafana/
|
|
|
|
# Deploy artifacts don't belong inside the app image
|
|
deploy/
|
|
Dockerfile
|
|
.dockerignore
|
|
|
|
# Python caches / build / venvs
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
build/
|
|
dist/
|
|
.venv
|
|
venv/
|
|
ENV/
|
|
env/
|
|
.ruff_cache/
|
|
|
|
# Tests and coverage
|
|
tests/
|
|
.pytest_cache/
|
|
.coverage
|
|
htmlcov/
|
|
|
|
# Editor / OS cruft
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
.DS_Store
|
|
|
|
# Large artifacts
|
|
*.zip
|
|
archive/
|
|
uv.lock
|