Files
stonks-oracle/infra/helm/stonks-oracle/values.yaml
T
Celes Renata 6bde9d2726
Build and Push / lint-and-test (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.adapters.broker_adapter name:broker-adapter]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.aggregation.worker name:aggregation]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.extractor.worker name:extractor]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.ingestion.worker name:ingestion]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.lake_publisher.worker name:lake-publisher]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.parser.worker name:parser]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.recommendation.worker name:recommendation]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:python -m services.scheduler.app name:scheduler]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:uvicorn services.api.app:app --host 0.0.0.0 --port 8000 name:query-api]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:uvicorn services.risk.app:app --host 0.0.0.0 --port 8000 name:risk]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:uvicorn services.symbol_registry.app:app --host 0.0.0.0 --port 8000 name:symbol-registry]) (push) Canceled after 0s
Build and Push / build-services (map[cmd:uvicorn services.trading.app:app --host 0.0.0.0 --port 8000 name:trading-engine]) (push) Canceled after 0s
Build and Push / build-dashboard (push) Canceled after 0s
Build and Push / build-superset (push) Canceled after 0s
Build and Push / integration-test (push) Canceled after 0s
Build and Push / beta-gate (push) Canceled after 0s
fix: increase trading-engine memory limit 512Mi→1024Mi (OOMKilled by correlation matrix)
2026-07-21 15:20:38 +00:00

313 lines
8.7 KiB
YAML

## Global image settings
image:
registry: registry.celestium.life/stonks-oracle
pullPolicy: Always
tag: latest
## Pipeline toggle — when false, all worker services (ingestion, parsing,
## extraction, aggregation, recommendation, broker, lake-publisher, scheduler)
## are scaled to 0. API services always run.
pipelineEnabled: true
## Service deployments — replicas and resource overrides
services:
scheduler:
replicas: 1
pipeline: true
image: scheduler
command: "python -m services.scheduler.app"
tier: orchestration
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 50m, memory: 128Mi }
limits: { cpu: 200m, memory: 256Mi }
symbolRegistry:
replicas: 1
image: symbol-registry
command: "uvicorn services.symbol_registry.app:app --host 0.0.0.0 --port 8000"
tier: api
port: 8000
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
probes:
readiness: { path: /docs, port: 8000, initialDelay: 5, period: 10 }
liveness: { path: /docs, port: 8000, initialDelay: 10, period: 30 }
ingestion:
replicas: 1
pipeline: true
image: ingestion
command: "python -m services.ingestion.worker"
tier: ingestion
secrets: [stonks-core-secrets, stonks-market-secrets, stonks-broker-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
parser:
replicas: 2
pipeline: true
image: parser
command: "python -m services.parser.worker"
tier: processing
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
extractor:
replicas: 1
pipeline: true
image: extractor
command: "python -m services.extractor.main"
tier: processing
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 200m, memory: 256Mi }
limits: { cpu: "1", memory: 512Mi }
aggregation:
replicas: 4
pipeline: true
image: aggregation
command: "python -m services.aggregation.main"
tier: processing
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
recommendation:
replicas: 1
pipeline: true
image: recommendation
command: "python -m services.recommendation.main"
tier: processing
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
tradingEngine:
replicas: 1
image: trading-engine
command: "uvicorn services.trading.app:app --host 0.0.0.0 --port 8000"
tier: trading
port: 8000
secrets: [stonks-core-secrets, stonks-broker-secrets, stonks-gmail-secrets]
resources:
requests: { cpu: 100m, memory: 512Mi }
limits: { cpu: 1000m, memory: 1024Mi }
probes:
readiness: { path: /ready, port: 8000, initialDelay: 5, period: 10 }
liveness: { path: /health, port: 8000, initialDelay: 10, period: 30 }
riskEngine:
replicas: 1
image: risk
command: "uvicorn services.risk.app:app --host 0.0.0.0 --port 8000"
tier: trading
port: 8000
secrets: [stonks-core-secrets, stonks-broker-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
brokerAdapter:
replicas: 1
pipeline: true
image: broker-adapter
command: "python -m services.adapters.broker_service"
tier: trading
secrets: [stonks-core-secrets, stonks-broker-secrets]
resources:
requests: { cpu: 50m, memory: 64Mi }
limits: { cpu: 200m, memory: 128Mi }
signalEngine:
replicas: 0
pipeline: true
image: signal-engine
command: "python -m services.signal_engine.main"
tier: processing
secrets: [stonks-core-secrets, stonks-market-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
lakePublisher:
replicas: 0
pipeline: true
image: lake-publisher
command: "python -m services.lake_publisher.jobs"
tier: analytics
secrets: [stonks-core-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
queryApi:
replicas: 1
image: query-api
command: "uvicorn services.api.app:app --host 0.0.0.0 --port 8000"
tier: api
port: 8000
secrets: [stonks-core-secrets, stonks-market-secrets]
resources:
requests: { cpu: 100m, memory: 128Mi }
limits: { cpu: 500m, memory: 256Mi }
probes:
readiness: { path: /docs, port: 8000, initialDelay: 5, period: 10 }
dashboard:
replicas: 1
image: dashboard
tier: frontend
port: 8080
resources:
requests: { cpu: 50m, memory: 64Mi }
limits: { cpu: 200m, memory: 128Mi }
probes:
readiness: { path: /, port: 8080, initialDelay: 3, period: 10 }
liveness: { path: /, port: 8080, initialDelay: 5, period: 30 }
## ConfigMap data
config:
POSTGRES_HOST: "postgresql-rw.postgresql-service.svc.cluster.local"
POSTGRES_PORT: "5432"
POSTGRES_DB: "stonks"
POSTGRES_USER: "stonks"
REDIS_HOST: "redis-master.redis-service.svc.cluster.local"
REDIS_PORT: "6379"
REDIS_DB: "0"
MINIO_ENDPOINT: "minio.minio-service.svc.cluster.local:80"
MINIO_SECURE: "false"
OLLAMA_BASE_URL: "http://nuextract-external.vllm-service.svc.cluster.local:2701"
OLLAMA_MODEL: "numind/NuExtract3"
OLLAMA_TIMEOUT: "240"
OLLAMA_MAX_RETRIES: "2"
OLLAMA_RETRY_BASE_DELAY: "1.0"
OLLAMA_RETRY_MAX_DELAY: "10.0"
OLLAMA_RETRY_BACKOFF_MULTIPLIER: "2.0"
VLLM_BASE_URL: "http://nuextract-external.vllm-service.svc.cluster.local:2701"
VLLM_MODEL: "numind/NuExtract3"
VLLM_TIMEOUT: "120"
VLLM_MAX_RETRIES: "2"
VLLM_TEMPERATURE: "0.7"
VLLM_API_KEY: ""
TRINO_HOST: "trino.stonks-oracle.svc.cluster.local"
TRINO_PORT: "8080"
TRINO_CATALOG: "lakehouse"
TRINO_SCHEMA: "stonks"
TRINO_ICEBERG_CATALOG: "iceberg"
BROKER_MODE: "paper"
BROKER_PROVIDER: ""
MARKET_DATA_BASE_URL: "https://api.polygon.io"
MARKET_DATA_PROVIDER: "polygon"
RETENTION_RAW_MARKET_DAYS: "90"
RETENTION_RAW_NEWS_DAYS: "180"
RETENTION_RAW_FILINGS_DAYS: "365"
RETENTION_NORMALIZED_DAYS: "180"
RETENTION_LLM_PROMPTS_DAYS: "365"
RETENTION_LLM_RESULTS_DAYS: "365"
RETENTION_LAKEHOUSE_DAYS: "730"
RETENTION_AUDIT_DAYS: "730"
RETENTION_CLEANUP_INTERVAL_HOURS: "24"
RETENTION_BATCH_SIZE: "1000"
LOG_LEVEL: "INFO"
JSON_LOGS: "true"
DEPLOY_STAGE: ""
ALERT_SOURCE_FAILURE_THRESHOLD: "3"
ALERT_SOURCE_FAILURE_WINDOW_HOURS: "6"
ALERT_SCHEMA_FAILURE_RATE_THRESHOLD: "0.3"
ALERT_SCHEMA_FAILURE_WINDOW_HOURS: "1"
ALERT_LAKE_LAG_THRESHOLD_MINUTES: "60"
ALERT_BROKER_ERROR_THRESHOLD: "3"
ALERT_BROKER_ERROR_WINDOW_HOURS: "1"
ALERT_CHECK_INTERVAL_SECONDS: "120"
TRADING_ENABLED: "true"
TRADING_RISK_TIER: "moderate"
TRADING_ABSOLUTE_POSITION_CAP: "10000.0"
TRADING_MAX_OPEN_POSITIONS: "10"
TZ: "America/Los_Angeles"
## Secrets
secrets:
core:
POSTGRES_PASSWORD: "St0nks0racl3!"
MINIO_ACCESS_KEY: "AKIA6V7J3N9B5P0D2YQH"
MINIO_SECRET_KEY: "8fG3!v2rJ7$wN@9mLpQ6zXbC4tKdPqW1"
REDIS_PASSWORD: "SGaIkaf342Ljym7jChmqPY7i"
broker:
BROKER_API_KEY: "PKECQBNHD6ZLKEXZZVIFTOLX72"
BROKER_API_SECRET: "5pV8zfUn92zAUL4TAwFor3Lk8RqNBcRzN12Y1HJjU7Gn"
BROKER_BASE_URL: "https://paper-api.alpaca.markets"
market:
MARKET_DATA_API_KEY: "NPwKtrLvoBxcKt3Byp5PEvuZiBZU_d8E"
gmail:
GMAIL_SENDER: "celes@celestium.life"
GMAIL_RECIPIENT: "celes@celestium.life"
GMAIL_APP_PASSWORD: ""
dashboard:
SUPERSET_SECRET_KEY: ""
SUPERSET_ADMIN_PASSWORD: ""
## Ingress
ingress:
enabled: true
className: traefik
clusterIssuer: ca-issuer
hosts:
queryApi: stonks-api.celestium.life
symbolRegistry: stonks-registry.celestium.life
dashboard: stonks.celestium.life
superset: stonks-dash.celestium.life
trino: stonks-trino.celestium.life
tradingEngine: stonks-trading.celestium.life
## Analytics stack
trino:
enabled: true
resources:
requests: { cpu: 500m, memory: 1Gi }
limits: { cpu: "2", memory: 4Gi }
hiveMetastore:
enabled: true
storageSize: 1Gi
resources:
requests: { cpu: 200m, memory: 512Mi }
limits: { cpu: "1", memory: 1Gi }
superset:
enabled: true
storageSize: 2Gi
resources:
requests: { cpu: 200m, memory: 512Mi }
limits: { cpu: "1", memory: 2Gi }
## Specialist inference service (CPU-first NER/classification)
specialist:
enabled: true
replicas: 2
model: "urchade/gliner_large-v2.1"
maxBatchSize: "32"
maxWaitMs: "50.0"
maxQueueSize: "256"
testMode: "0"
secrets: [stonks-core-secrets]
resources:
requests:
cpu: "2"
memory: 4Gi
limits:
cpu: "6"
memory: 10Gi
## Network policies
networkPolicies:
enabled: true