- database.py: remove dead pre-definition of DATABASE_URL with
undefined db_user/db_pass variables
- models.py: add missing Table import from sqlalchemy
- alembic/env.py: replace deprecated run_async() with asyncio.run()
(removed in SQLAlchemy 2.0)
- alembic 001_initial: use raw SQL for CREATE TYPE instead of
op.create_enum() which requires alembic_postgresql_enum
Migration 001_initial successfully applied to trading_data DB.
- Build and push Docker image to ghcr.io on push to master
- Update deployment to pull from ghcr.io instead of GCR
- Tags: commit SHA + latest on default branch
Previous secrets encrypted apiVersion, kind, metadata.name, metadata.namespace
and type fields. Recreated with --encrypted-regex targeting only stringData
section. New random passwords generated for all three roles.
Enables /v1/models endpoint query for custom providers (fixes qwen model not showing under qwen-vllm).
Changes:
- Added `type: openai` to `rtx6000-brain` and `qwen-vllm` providers
- Standardized base_url to full FQDN: \*.customer1.svc.cluster.local
- Added context_length to qwen-vllm provider
- Updated models.qwen-vllm base_url and context_length for consistency
- Set replicas.min: 0 for scale-to-zero when idle
- Add config.cooldownPeriod: 1200 to KEDA HTTP add-on HelmRelease
(20 min buffer before scaling down from 1 replica)
- Add external HTTPRoute at brain.siriusdevops.com for manual wake-up
via curl from Hermes/Telegram
- Makes rtx6000-brain selectable in the /model provider picker (preferred name)
- Uses short Kubernetes service names (optimal for same-namespace)
- Keeps existing models: section for CLI compatibility
- Will appear as provider options after ArgoCD/Helm rollout + /restart
- Primary 'vllm' entry for easy /model vllm usage
- Uses model from the rtx6000 deployment
- Kept existing qwen-vllm, rtx6000-vllm, and rtx6000-brain for compatibility
Added rtx6000-brain alongside the existing rtx6000-vllm entry.
Uses the exact model name from rtx6000-vllm Deployment and the correct ClusterIP service endpoint.
- Removed cooldownPeriod, scaledownPeriod, paths (all undeclared in http.keda.sh/v1alpha1 CRD)
- Kept pollingInterval:10 for responsiveness + min:0 replicas for true scale-to-zero
- Cleaned both rtx6000 and a100 configs for consistency
Dry-run should now succeed. Scale behavior preserved via polling + low targetPendingRequests (defaults work well for vLLM).
HTTPScaledObject CRD (http.keda.sh/v1alpha1) does not support .spec.paths field.
Scaling now triggers on all HTTP requests to the host (health/liveness ignored via targetPendingRequests:1 + pollingInterval:10s).
Refs https://keda.sh/docs/scalers/http-addon/