feat(staging): self-host DLOB service

This commit is contained in:
u1
2026-01-10 09:37:52 +01:00
parent 392458ad99
commit ead68a25cf
7 changed files with 183 additions and 4 deletions

View File

@@ -3,7 +3,7 @@ kind: Deployment
metadata: metadata:
name: dlob-worker name: dlob-worker
annotations: annotations:
argocd.argoproj.io/sync-wave: "4" argocd.argoproj.io/sync-wave: "5"
spec: spec:
replicas: 1 replicas: 1
selector: selector:
@@ -27,9 +27,9 @@ spec:
name: trade-hasura name: trade-hasura
key: HASURA_GRAPHQL_ADMIN_SECRET key: HASURA_GRAPHQL_ADMIN_SECRET
- name: DLOB_HTTP_URL - name: DLOB_HTTP_URL
value: https://dlob.drift.trade value: http://dlob-server:6969
- name: DLOB_MARKETS - name: DLOB_MARKETS
value: PUMP-PERP,SOL-PERP,BONK-PERP,BTC-PERP,ETH-PERP value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP
- name: DLOB_POLL_MS - name: DLOB_POLL_MS
value: "500" value: "500"
- name: DLOB_DEPTH - name: DLOB_DEPTH

View File

@@ -53,7 +53,7 @@ function resolveConfig() {
.trim() .trim()
.replace(/\/$/, ''); .replace(/\/$/, '');
const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,BONK-PERP,BTC-PERP,ETH-PERP'); const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP');
const depth = clampInt(process.env.DLOB_DEPTH, 1, 50, 10); const depth = clampInt(process.env.DLOB_DEPTH, 1, 50, 10);
const pollMs = clampInt(process.env.DLOB_POLL_MS, 100, 10_000, 500); const pollMs = clampInt(process.env.DLOB_POLL_MS, 100, 10_000, 500);

View File

@@ -0,0 +1,65 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: dlob-publisher
annotations:
argocd.argoproj.io/sync-wave: "4"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: dlob-publisher
template:
metadata:
labels:
app.kubernetes.io/name: dlob-publisher
spec:
imagePullSecrets:
- name: gitea-registry
containers:
- name: publisher
image: gitea.mpabi.pl/trade/trade-dlob-server:sha-8a378b7-lite-l2
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 8080
env:
- name: ENV
value: mainnet-beta
- name: USE_WEBSOCKET
value: "true"
- name: USE_ORDER_SUBSCRIBER
value: "true"
- name: DISABLE_GPA_REFRESH
value: "true"
- name: ELASTICACHE_HOST
value: dlob-redis
- name: ELASTICACHE_PORT
value: "6379"
- name: REDIS_CLIENT
value: DLOB
- name: PERP_MARKETS_TO_LOAD
value: "0,1,2,4,75"
- name: ENDPOINT
valueFrom:
secretKeyRef:
name: trade-dlob-rpc
key: ENDPOINT
- name: WS_ENDPOINT
valueFrom:
secretKeyRef:
name: trade-dlob-rpc
key: WS_ENDPOINT
command: ["node", "/lib/publishers/dlobPublisher.js"]
readinessProbe:
httpGet:
path: /startup
port: http
initialDelaySeconds: 10
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 30
periodSeconds: 20

View File

@@ -0,0 +1,38 @@
apiVersion: v1
kind: Service
metadata:
name: dlob-redis
annotations:
argocd.argoproj.io/sync-wave: "3"
spec:
selector:
app.kubernetes.io/name: dlob-redis
ports:
- name: redis
port: 6379
targetPort: redis
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dlob-redis
annotations:
argocd.argoproj.io/sync-wave: "3"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: dlob-redis
template:
metadata:
labels:
app.kubernetes.io/name: dlob-redis
spec:
containers:
- name: redis
image: redis:7-alpine
imagePullPolicy: IfNotPresent
ports:
- name: redis
containerPort: 6379
args: ["--save", "", "--appendonly", "no"]

View File

@@ -0,0 +1,59 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: dlob-server
annotations:
argocd.argoproj.io/sync-wave: "4"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: dlob-server
template:
metadata:
labels:
app.kubernetes.io/name: dlob-server
spec:
imagePullSecrets:
- name: gitea-registry
containers:
- name: server
image: gitea.mpabi.pl/trade/trade-dlob-server:sha-8a378b7-lite-l2
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 6969
env:
- name: ENV
value: mainnet-beta
- name: PORT
value: "6969"
- name: ELASTICACHE_HOST
value: dlob-redis
- name: ELASTICACHE_PORT
value: "6379"
- name: REDIS_CLIENT
value: DLOB
- name: ENDPOINT
valueFrom:
secretKeyRef:
name: trade-dlob-rpc
key: ENDPOINT
- name: WS_ENDPOINT
valueFrom:
secretKeyRef:
name: trade-dlob-rpc
key: WS_ENDPOINT
command: ["node", "/lib/serverLite.js"]
readinessProbe:
httpGet:
path: /startup
port: http
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 20
periodSeconds: 20

View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: dlob-server
annotations:
argocd.argoproj.io/sync-wave: "4"
spec:
selector:
app.kubernetes.io/name: dlob-server
ports:
- name: http
port: 6969
targetPort: http

View File

@@ -14,6 +14,10 @@ resources:
- ingestor/deployment.yaml - ingestor/deployment.yaml
- frontend/service.yaml - frontend/service.yaml
- frontend/deployment.yaml - frontend/deployment.yaml
- dlob/redis.yaml
- dlob/publisher-deployment.yaml
- dlob/server-service.yaml
- dlob/server-deployment.yaml
- dlob-worker/deployment.yaml - dlob-worker/deployment.yaml
configMapGenerator: configMapGenerator: