apiVersion: apps/v1 kind: Deployment metadata: name: trade-ingestor namespace: trade-r001-canary spec: replicas: 1 strategy: type: RollingUpdate rollingUpdate: maxSurge: 0 maxUnavailable: 1 selector: matchLabels: app.kubernetes.io/name: trade-ingestor template: metadata: labels: app.kubernetes.io/name: trade-ingestor spec: imagePullSecrets: - name: gitea-registry volumes: - name: dlob-script configMap: name: trade-dlob-ingestor-script - name: tokens secret: secretName: trade-ingestor-tokens containers: - name: ingestor image: node:20-slim imagePullPolicy: IfNotPresent command: - node - /opt/dlob/dlob-ingestor.mjs volumeMounts: - name: dlob-script mountPath: /opt/dlob/dlob-ingestor.mjs subPath: dlob-ingestor.mjs readOnly: true - name: tokens mountPath: /app/tokens readOnly: true env: - name: HASURA_GRAPHQL_URL value: http://hasura:8080/v1/graphql - name: HASURA_ADMIN_SECRET valueFrom: secretKeyRef: name: trade-hasura key: HASURA_GRAPHQL_ADMIN_SECRET - name: DLOB_MARKETS value: SOL-PERP,PUMP-PERP - name: TICKS_POLL_MS value: "1000" - name: TICKS_SOURCE value: dlob_stats resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 512Mi