Commit graph

1008 commits

Author SHA1 Message Date
Hermes DevOps
6cec18cdd9 fix(dashboard): add ProxyGroup for trading dashboard tailnet exposure
The Tailscale operator v0.40+ requires a ProxyGroup CRD to actually
expose services via the operator - annotations on the Service alone
are insufficient. This adds the missing ProxyGroup resource.

Also fixes the tailnet kustomization.yaml which referenced proxygroup
files that did not exist in that directory (they live in controllers/
and are deployed separately).
2026-05-25 06:44:14 +00:00
sirius0xdev
24a7a70719
Merge pull request #150 from sirius0xdev/fix/dashboard-tailscale-hostname
fix(dashboard): change tailscale hostname to "trade" for reliable resolution
2026-05-25 02:33:36 -04:00
569a3d5de9 fix(dashboard): change tailscale hostname to "trade" for reliable resolution
Short hostname "trade" (matches /trade HTTPRoute) instead of "trading-dashboard".

This fixes the "Could not resolve host: trading-dashboard" error on tailnet devices while keeping the same annotation style as Grafana.
2026-05-25 06:32:24 +00:00
4be12802d0 fix(execute-service): add timeoutSeconds: 10 to startup/readiness probes
The /health/ready endpoint calls await initialize() on Hyperliquid and Solana executors. Without explicit timeout, the default 1s probe timeout caused repeated failures even though the app was running.

Added timeoutSeconds: 10 + reduced readiness failureThreshold.

This is the final piece for the "running but not ready" state.
2026-05-25 06:26:09 +00:00
sirius0xdev
3d873e087e
Merge pull request #148 from sirius0xdev/fix/dashboard-volume-tmp
fix(dashboard): add tmp volumeMount for readOnlyRootFilesystem
2026-05-25 02:18:06 -04:00
605e15d55c fix(dashboard): add tmp volumeMount for readOnlyRootFilesystem
Next.js standalone mode needs a writable /tmp directory for cache, temp files, and logs.

With , the container was crashing after "Ready in 228ms" (EOF in log stream).

Added the standard emptyDir volumeMount used by other services.

This should make the dashboard stable and accessible on tailnet.
2026-05-25 06:17:28 +00:00
sirius0xdev
a2c12deff1
Merge pull request #147 from sirius0xdev/fix/execute-service-startup-probe
fix(execute-service): update startupProbe to /health/ready with failureThreshold 30
2026-05-25 02:09:53 -04:00
abecefe0e1 fix(execute-service): update startupProbe to /health/ready with 30 failureThreshold
The service was 'running but not ready' because:
- startupProbe used /health (always-ok) with only failureThreshold: 6 (~30s grace)
- Executor initialization (Hyperliquid SDK network calls + Solana client) takes longer

Now uses /health/ready (checks actual executor state) with failureThreshold: 30 (~5min grace), matching the pattern used for data-service and dashboard.

Also updated Helm template for consistency.
2026-05-25 06:09:20 +00:00
sirius0xdev
c34c669ec9
Merge pull request #146 from sirius0xdev/fix/dashboard-tailnet-annotation
fix(dashboard): match Grafana-style Tailscale annotation with explicit http:3000
2026-05-25 02:08:03 -04:00
ceb832b169 fix(dashboard): add explicit tailscale.com/ports: "http:3000" annotation
Matches the exact annotation pattern used for other tailnet services (Grafana, trade-dashboard, hermes-webui, etc.).

This ensures the Tailscale operator correctly maps the exposed port after the 3000 change.
2026-05-25 06:05:51 +00:00
sirius0xdev
8c12536130
Merge pull request #145 from sirius0xdev/fix/trading-startup-probes
fix(trading-platform): dashboard port 3000 + startupProbe grace for data/dashboard/execute services
2026-05-25 01:57:21 -04:00
d002a7896b fix(dashboard): align port to 3000 and probes to root path
- containerPort: 3000 (matches Next.js default + Dockerfile ENV PORT=3000)
- All probes (startup/liveness/readiness): path  (Next.js serves root when ready)
- Service targetPort: 3000

Fixes 'not ready' and 'can't reach it' (previous mismatch with 8000 + /api/health which didn't exist).

Live manifests updated (source of truth).
2026-05-25 05:55:21 +00:00
a07259cd25 fix(trading-platform): increase startupProbe failureThreshold to 30 for data-service and dashboard
Gives ~5min grace period for heavy lifespan init (Redis, DB, executors, model loading).

Addresses 'up but not ready' state on data-service and dashboard (0/1 Ready).

Live manifests in apps/base/customer1/... updated (source of truth). Helm templates can be synced later.

See gke-hermes-infrastructure skill (trading-startup-probe-fix-2026-05-26.md).
2026-05-25 05:49:05 +00:00
sirius0xdev
f0fb45b3aa
Merge pull request #144 from sirius0xdev/fix/execute-readiness-probe
fix(execute-service): update readiness probe to /health/ready
2026-05-25 01:47:18 -04:00
9ca32408b1 Fix: readiness probe for execute-service uses /health/ready
Change readiness probe from /health (always ok) to /health/ready
(checks executor initialization state). Applied to both:
- apps/base K8s deployment
- Helm chart template

Pairs with app fix making executor init non-blocking.
2026-05-25 05:39:24 +00:00
sirius0xdev
6885b8c5fc
Merge pull request #143 from sirius0xdev/fix/trading-startup-probes
fix(trading-platform): add startupProbe to data-service, execute-serv…
2026-05-25 01:19:28 -04:00
c9e5e5b651 fix(trading-platform): add startupProbe to data-service, execute-service, and dashboard in customer1
- Grace period (failureThreshold: 30) for init (model load, DB, Redis).
- Resolves 0/1 Ready pods after rollout.
- Matches hermes-projects updates.
- Related to Kanban t_b6693eac
2026-05-25 04:57:59 +00:00
sirius0xdev
d79bb614ea
Merge pull request #142 from sirius0xdev/fix/execute-db-env-mapping
fix(execute-service): use new image with DB env mapping fix
2026-05-24 22:26:25 -04:00
984a5541af fix(execute-service): use new image with DB env mapping fix
- Points to ghcr.io/sirius0xdev/trading-execute-service:7b77854 (includes model_validator for POSTGRES_PASSWORD etc.)
- Sets pullPolicy: Always to ensure fresh image on rollout.
- This resolves the persistent SQLite OperationalError on startup.

See hermes-projects commit 7b77854 for the code change + RUNBOOK.md.

After merge, run helm upgrade or kubectl rollout restart.
2026-05-25 02:24:42 +00:00
sirius0xdev
f0e2cd1501
Merge pull request #141 from sirius0xdev/fix/t_jwt-secret-live-kustomize
fix: wire JWT_SECRET_KEY in live kustomize path
2026-05-24 21:55:26 -04:00
Hermes Agent
605667df1d fix: wire JWT_SECRET_KEY in live kustomize path
Previous PR #139 added the secret to trading-platform/deploy/k8s/base/
but the live cluster uses apps/base/customer1/trading-platform/ kustomize.

- Create execute-service-jwt-secret.yaml (SOPS encrypted) in secrets/
- Add to secrets/ kustomization.yaml resources
- Wire JWT_SECRET_KEY env var in execute-service deployment
- Points to execute-service-jwt-secret via secretKeyRef
2026-05-25 01:53:19 +00:00
sirius0xdev
bacb3f4faa
Merge pull request #140 from sirius0xdev/fix/t_embedding-service-image
fix: update embedding-service image to GHCR
2026-05-24 21:37:31 -04:00
Hermes Agent
f17ab24ecc fix: update embedding-service image to GHCR
Point to ghcr.io/sirius0xdev/trading-embedding-service:latest
built automatically by hermes-projects CI on push to main
2026-05-25 01:35:28 +00:00
sirius0xdev
d8b74a110e add rtx6000-brain to tailnet 2026-05-25 01:33:51 +00:00
sirius0xdev
28d475304c
Merge pull request #139 from sirius0xdev/fix/t_jwt-secret-key-wireup
fix: add JWT_SECRET_KEY to execute-service deployment
2026-05-24 21:27:36 -04:00
Hermes Agent
cbb0a20280 fix: add JWT_SECRET_KEY to execute-service deployment via SOPS-encrypted secret
- Create execute-service-secret (SOPS encrypted) with JWT_SECRET_KEY
- Wire JWT_SECRET_KEY env var in execute-service deployment
- Fixes CrashLoopBack caused by missing JWT_SECRET_KEY validation error
2026-05-25 01:24:17 +00:00
sirius0xdev
57ade49cb6
Merge pull request #138 from sirius0xdev/fix/t_3d94b392-cnpg-match-live-state
fix: match pg-cluster manifest to live CNPG state, keep memory superuser
2026-05-24 21:12:10 -04:00
Hermes Agent
27b7334dfb fix: match pg-cluster manifest to live CNPG cluster state
- Remove imageName (was never applied, live cluster uses default CNPG image)
- Remove maintenance_work_mem (live cluster has no custom parameters)
- Set postgresql: {} to match live state
- Keep memory role superuser: true (the only needed change)

Fixes CNPG admission webhook: 'Can't change image name and configuration at the same time'
2026-05-25 01:11:27 +00:00
sirius0xdev
126978a2bc
Merge pull request #137 from sirius0xdev/fix/t_3d94b392-rag-db-sql-field
fix: remove unsupported sql field from agent-memory-rag Database
2026-05-24 21:08:36 -04:00
Hermes Agent
9f60ca894d fix: remove unsupported sql field from agent-memory-rag Database
CNPG version on cluster does not support .spec.sql on Database CR.
The rag-init-job.yaml already handles RAG schema initialization separately.

Unblocks Flux dry-run for agent-memory-rag.
2026-05-25 01:08:12 +00:00
sirius0xdev
aa41f5995f
Merge pull request #136 from sirius0xdev/fix/t_3d94b392-cnpg-memory-superuser
fix: remove unsupported CNPG fields, keep memory superuser
2026-05-24 21:02:20 -04:00
Hermes Agent
9754c2aed2 fix: remove unsupported CNPG fields, keep memory superuser
- Remove sharedPreloadLibraries and allowedExtensions (not supported by installed CNPG version)
- Keep memory role superuser: true (from PR #135) — sufficient since custom pgvector image already bundles the extension
- Unblocks dry-run validation on hermes-pgdb cluster
2026-05-25 01:01:52 +00:00
sirius0xdev
ead9cff2d3
Merge pull request #134 from sirius0xdev/backend/t_6977ed0c-fix-execute-db-config
fix: align execute-service DB config with EXECUTE_ env prefix
2026-05-24 20:59:27 -04:00
sirius0xdev
9731719564
Merge pull request #135 from sirius0xdev/fix/t_3d94b392-cnpg-allowed-pgvector
fix: enable pgvector for mem0 plugin
2026-05-24 20:54:15 -04:00
sirius0xdev
8ccd21500e fix secrets 2026-05-25 00:49:20 +00:00
Hermes Agent
9ca7f7bd7a fix: enable pgvector for mem0 plugin
- Add allowedExtensions: ['*'] so roles can CREATE EXTENSION
- Grant superuser to 'memory' role (was createdb/createrole, insufficient)
- Needed for mem0 plugin pgvector backend on agent_memory DB

Unblocks kanban task t_3d94b392
2026-05-25 00:36:04 +00:00
Hermes Agent
a2644b39c7 fix: rename K8s env vars to EXECUTE_ prefix for execute-service
- ConfigMap keys: DB_HOST -> EXECUTE_DB_HOST, DB_PORT -> EXECUTE_DB_PORT, etc.
- Deployment secrets: DB_USER -> EXECUTE_DB_USER, DB_PASSWORD -> EXECUTE_DB_PASSWORD
- Helm configmap: add EXECUTE_DB_* keys alongside legacy POSTGRES_* keys
- Base deployment: add EXECUTE_DB_USER/PASSWORD from secrets
2026-05-24 23:57:04 +00:00
sirius0xdev
ad37645d7d
Merge pull request #129 from sirius0xdev/backend/t_5f60938d-memory-user-privs
Grant CREATEDB and CREATEROLE to memory role on hermes-pgdb
2026-05-24 18:25:52 -04:00
Hermes Agent
c04823d416 Grant CREATEDB and CREATEROLE to memory role on hermes-pgdb
The memory user needs CREATEDB and CREATEROLE privileges to install
the pgvector extension on the agent_memory database.
2026-05-24 22:14:49 +00:00
sirius0xdev
8bc3738a3f
Merge pull request #127 from sirius0xdev/feat/add-trading-dashboard-db-to-siriusdevops-pgdb
Feat/add trading dashboard db to siriusdevops pgdb
2026-05-24 16:56:27 -04:00
sirius0xdev
9f9bdba2b7
Merge pull request #128 from sirius0xdev/backend/t_438b663e-pgvector-rag-kb
feat(customer1): add pgvector RAG knowledge base with embedding service
2026-05-24 16:56:06 -04:00
Hermes Agent
9723674d9e feat(customer1): add embedding service kustomization, Service manifest, and staging reference 2026-05-24 20:33:50 +00:00
Hermes Agent
4df7450461 feat(customer1): add pgvector RAG knowledge base with embedding service
- Custom PostgreSQL 15.2 image with pgvector 0.8.0 extension
- Updated pg-cluster-hermes.yaml: custom image, sharedPreloadLibraries, maintenance_work_mem
- RAG schema: documents table with vector(768) embeddings + HNSW index
- RAG init job: ConfigMap + Job to apply schema to agent_memory db
- Embedding service: FastAPI with nomic-embed-text-v1.5
  - OpenAI-compatible /v1/embeddings endpoint
  - Deployment (1 replica, 2Gi-4Gi memory) + Service manifests
- Updated kustomization.yaml to include new resources
2026-05-24 20:31:59 +00:00
Hermes Agent
57e41178c3 feat(customer1): add trading_dashboard database to siriusdevops-pgdb CNPG cluster
- Add trading_dashboard role + Database CR on siriusdevops-pgdb
- Create SOPS-encrypted credentials secret (template)
- Update trade-dashboard to use the new dedicated DB
  - New host: siriusdevops-pgdb-rw
  - New database: trading_dashboard
  - New credentials secret
2026-05-24 20:02:20 +00:00
sirius0xdev
5bf0601e8d
Update rtx6000-vllm.yaml 2026-05-24 15:58:35 -04:00
sirius0xdev
8aeaf2100f
Update kustomization.yaml 2026-05-24 15:55:56 -04:00
sirius0xdev
f6040befbd
Update rtx6000-vllm.yaml 2026-05-24 15:55:27 -04:00
sirius0xdev
2b9630d8dc
Update rtx6000-vllm.yaml 2026-05-24 15:52:52 -04:00
sirius0xdev
b536367aea
Merge pull request #125 from sirius0xdev/fix/data-service-redis-env
fix(data-service): inject REDIS_URL from ConfigMap
2026-05-24 14:31:02 -04:00
sirius0xdev
6d288a89e2 turn off vllm 2026-05-24 07:19:43 +00:00