From 59c3f3ee0678a9e805db83641cf2a7e213b259be Mon Sep 17 00:00:00 2001 From: mpabi Date: Sun, 15 Feb 2026 00:40:50 +0100 Subject: [PATCH] feat(dlob): pin markets and wire mevnode endpoints - Limit DLOB workers/ingestors to SOL-PERP, DOGE-PERP, JUP-PERP across base and staging config. - Set publisher market ids to [0,7,24] for drift protocol. - Add overlay patches for dlob-publisher and dlob-server to use wg0 RPC endpoints 10.66.66.1:8899/8900 in staging and prod. - Extend Agave dashboard and add PrometheusRules for RPC up/lag/I/O alerts. - Ensure overlays reference new patches for automated ArgoCD rollouts. --- .../dlob-depth-worker/deployment-drift.yaml | 2 +- .../base/dlob-depth-worker/deployment.yaml | 2 +- kustomize/base/dlob-depth-worker/worker.mjs | 2 +- .../deployment-drift.yaml | 2 +- .../base/dlob-slippage-worker/deployment.yaml | 2 +- .../base/dlob-slippage-worker/worker.mjs | 2 +- .../dlob-ts-archiver/deployment-drift.yaml | 2 +- .../base/dlob-ts-archiver/deployment.yaml | 2 +- kustomize/base/dlob-ts-archiver/worker.mjs | 2 +- .../base/dlob-worker/deployment-drift.yaml | 2 +- kustomize/base/dlob-worker/deployment.yaml | 2 +- kustomize/base/dlob-worker/worker.mjs | 2 +- kustomize/base/dlob/publisher-deployment.yaml | 2 +- .../dashboard-agave-status.yaml | 57 +++++++++++++++++ .../monitoring-extras/kustomization.yaml | 1 + .../prometheus-rules-agave.yaml | 61 +++++++++++++++++++ .../prod/dlob-rpc-endpoint-patch.yaml | 14 +++++ .../prod/dlob-rpc-server-endpoint-patch.yaml | 14 +++++ kustomize/overlays/prod/kustomization.yaml | 2 + kustomize/overlays/staging/dlob-ingestor.mjs | 2 +- .../staging/dlob-rpc-endpoint-patch.yaml | 14 +++++ .../dlob-rpc-server-endpoint-patch.yaml | 14 +++++ .../overlays/staging/ingestor-dlob-patch.yaml | 2 +- kustomize/overlays/staging/kustomization.yaml | 2 + 24 files changed, 194 insertions(+), 15 deletions(-) create mode 100644 kustomize/infra/monitoring-extras/prometheus-rules-agave.yaml create mode 100644 kustomize/overlays/prod/dlob-rpc-endpoint-patch.yaml create mode 100644 kustomize/overlays/prod/dlob-rpc-server-endpoint-patch.yaml create mode 100644 kustomize/overlays/staging/dlob-rpc-endpoint-patch.yaml create mode 100644 kustomize/overlays/staging/dlob-rpc-server-endpoint-patch.yaml diff --git a/kustomize/base/dlob-depth-worker/deployment-drift.yaml b/kustomize/base/dlob-depth-worker/deployment-drift.yaml index 0bd0019..99ae85a 100644 --- a/kustomize/base/dlob-depth-worker/deployment-drift.yaml +++ b/kustomize/base/dlob-depth-worker/deployment-drift.yaml @@ -29,7 +29,7 @@ spec: - name: DLOB_SOURCE value: drift - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_POLL_MS value: "1000" - name: DLOB_DEPTH_BPS_BANDS diff --git a/kustomize/base/dlob-depth-worker/deployment.yaml b/kustomize/base/dlob-depth-worker/deployment.yaml index 02f8df9..1436901 100644 --- a/kustomize/base/dlob-depth-worker/deployment.yaml +++ b/kustomize/base/dlob-depth-worker/deployment.yaml @@ -29,7 +29,7 @@ spec: - name: DLOB_SOURCE value: mevnode - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_POLL_MS value: "1000" - name: DLOB_DEPTH_BPS_BANDS diff --git a/kustomize/base/dlob-depth-worker/worker.mjs b/kustomize/base/dlob-depth-worker/worker.mjs index db2a494..85b0a56 100644 --- a/kustomize/base/dlob-depth-worker/worker.mjs +++ b/kustomize/base/dlob-depth-worker/worker.mjs @@ -65,7 +65,7 @@ function resolveConfig() { const hasuraAuthToken = process.env.HASURA_AUTH_TOKEN || process.env.HASURA_JWT || undefined; const dlobSource = String(process.env.DLOB_SOURCE || 'mevnode').trim() || 'mevnode'; - const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP'); + const markets = envList('DLOB_MARKETS', 'SOL-PERP,DOGE-PERP,JUP-PERP'); const pollMs = clampInt(process.env.DLOB_POLL_MS, 250, 60_000, 1000); const bandsBps = envIntList('DLOB_DEPTH_BPS_BANDS', '5,10,20,50,100,200'); diff --git a/kustomize/base/dlob-slippage-worker/deployment-drift.yaml b/kustomize/base/dlob-slippage-worker/deployment-drift.yaml index fb9f73a..0db2703 100644 --- a/kustomize/base/dlob-slippage-worker/deployment-drift.yaml +++ b/kustomize/base/dlob-slippage-worker/deployment-drift.yaml @@ -29,7 +29,7 @@ spec: - name: DLOB_SOURCE value: drift - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_POLL_MS value: "1000" - name: DLOB_SLIPPAGE_SIZES_USD diff --git a/kustomize/base/dlob-slippage-worker/deployment.yaml b/kustomize/base/dlob-slippage-worker/deployment.yaml index 3657bf4..f2915cd 100644 --- a/kustomize/base/dlob-slippage-worker/deployment.yaml +++ b/kustomize/base/dlob-slippage-worker/deployment.yaml @@ -29,7 +29,7 @@ spec: - name: DLOB_SOURCE value: mevnode - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_POLL_MS value: "1000" - name: DLOB_SLIPPAGE_SIZES_USD diff --git a/kustomize/base/dlob-slippage-worker/worker.mjs b/kustomize/base/dlob-slippage-worker/worker.mjs index 53b5d7a..c496ec1 100644 --- a/kustomize/base/dlob-slippage-worker/worker.mjs +++ b/kustomize/base/dlob-slippage-worker/worker.mjs @@ -56,7 +56,7 @@ function resolveConfig() { const hasuraAuthToken = process.env.HASURA_AUTH_TOKEN || process.env.HASURA_JWT || undefined; const dlobSource = String(process.env.DLOB_SOURCE || 'mevnode').trim() || 'mevnode'; - const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP'); + const markets = envList('DLOB_MARKETS', 'SOL-PERP,DOGE-PERP,JUP-PERP'); const pollMs = clampInt(process.env.DLOB_POLL_MS, 250, 60_000, 1000); const sizesUsd = envList('DLOB_SLIPPAGE_SIZES_USD', '10,25,50,100,250,500,1000') diff --git a/kustomize/base/dlob-ts-archiver/deployment-drift.yaml b/kustomize/base/dlob-ts-archiver/deployment-drift.yaml index 25b4a55..3273960 100644 --- a/kustomize/base/dlob-ts-archiver/deployment-drift.yaml +++ b/kustomize/base/dlob-ts-archiver/deployment-drift.yaml @@ -29,7 +29,7 @@ spec: - name: DLOB_SOURCE value: drift - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_TS_POLL_MS value: "1000" command: ["node", "/app/worker.mjs"] diff --git a/kustomize/base/dlob-ts-archiver/deployment.yaml b/kustomize/base/dlob-ts-archiver/deployment.yaml index e32c119..7acbf47 100644 --- a/kustomize/base/dlob-ts-archiver/deployment.yaml +++ b/kustomize/base/dlob-ts-archiver/deployment.yaml @@ -29,7 +29,7 @@ spec: - name: DLOB_SOURCE value: mevnode - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_TS_POLL_MS value: "1000" command: ["node", "/app/worker.mjs"] diff --git a/kustomize/base/dlob-ts-archiver/worker.mjs b/kustomize/base/dlob-ts-archiver/worker.mjs index ce05d6e..40c81c1 100644 --- a/kustomize/base/dlob-ts-archiver/worker.mjs +++ b/kustomize/base/dlob-ts-archiver/worker.mjs @@ -50,7 +50,7 @@ function resolveConfig() { const hasuraAuthToken = process.env.HASURA_AUTH_TOKEN || process.env.HASURA_JWT || undefined; const dlobSource = String(process.env.DLOB_SOURCE || 'mevnode').trim() || 'mevnode'; - const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP'); + const markets = envList('DLOB_MARKETS', 'SOL-PERP,DOGE-PERP,JUP-PERP'); const pollMs = clampInt(process.env.DLOB_TS_POLL_MS, 500, 60_000, 1000); return { hasuraUrl, hasuraAdminSecret, hasuraAuthToken, dlobSource, markets, pollMs }; diff --git a/kustomize/base/dlob-worker/deployment-drift.yaml b/kustomize/base/dlob-worker/deployment-drift.yaml index f882637..36338bd 100644 --- a/kustomize/base/dlob-worker/deployment-drift.yaml +++ b/kustomize/base/dlob-worker/deployment-drift.yaml @@ -35,7 +35,7 @@ spec: - name: DLOB_FORCE_IPV6 value: "true" - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_POLL_MS value: "500" - name: DLOB_DEPTH diff --git a/kustomize/base/dlob-worker/deployment.yaml b/kustomize/base/dlob-worker/deployment.yaml index 3d02446..72ed7b9 100644 --- a/kustomize/base/dlob-worker/deployment.yaml +++ b/kustomize/base/dlob-worker/deployment.yaml @@ -31,7 +31,7 @@ spec: - name: DLOB_HTTP_URL value: http://dlob-server:6969 - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: DLOB_POLL_MS value: "500" - name: DLOB_DEPTH diff --git a/kustomize/base/dlob-worker/worker.mjs b/kustomize/base/dlob-worker/worker.mjs index dbdf5c9..5a9220d 100644 --- a/kustomize/base/dlob-worker/worker.mjs +++ b/kustomize/base/dlob-worker/worker.mjs @@ -66,7 +66,7 @@ function resolveConfig() { const dlobForceIpv6 = envBool('DLOB_FORCE_IPV6', false); const dlobSource = String(process.env.DLOB_SOURCE || 'mevnode').trim() || 'mevnode'; - const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP'); + const markets = envList('DLOB_MARKETS', 'SOL-PERP,DOGE-PERP,JUP-PERP'); const depth = clampInt(process.env.DLOB_DEPTH, 1, 50, 10); const pollMs = clampInt(process.env.DLOB_POLL_MS, 100, 10_000, 500); diff --git a/kustomize/base/dlob/publisher-deployment.yaml b/kustomize/base/dlob/publisher-deployment.yaml index 41da842..392ee65 100644 --- a/kustomize/base/dlob/publisher-deployment.yaml +++ b/kustomize/base/dlob/publisher-deployment.yaml @@ -43,7 +43,7 @@ spec: - name: REDIS_CLIENT value: DLOB - name: PERP_MARKETS_TO_LOAD - value: "0,1,2,4,75" + value: "0,7,24" - name: ENDPOINT valueFrom: secretKeyRef: diff --git a/kustomize/infra/monitoring-extras/dashboard-agave-status.yaml b/kustomize/infra/monitoring-extras/dashboard-agave-status.yaml index b2a2b77..aca7779 100644 --- a/kustomize/infra/monitoring-extras/dashboard-agave-status.yaml +++ b/kustomize/infra/monitoring-extras/dashboard-agave-status.yaml @@ -176,6 +176,63 @@ data: "datasource": { "type": "prometheus", "uid": "prometheus" }, "targets": [{ "refId": "Q", "expr": "sum by (reason) (increase(grpc_client_disconnects_total{job=\"mpabi-yellowstone-geyser\"}[15m]))", "legendFormat": "{{reason}}" }], "gridPos": { "h": 8, "w": 24, "x": 0, "y": 46 } + }, + { + "id": 16, + "type": "stat", + "title": "RPC Slot Lag (slots)", + "datasource": { "type": "prometheus", "uid": "prometheus" }, + "targets": [{ "refId": "R", "expr": "solana_rpc_slot_lag{job=\"mpabi-node-exporter\",instance=\"$instance\"}" }], + "fieldConfig": { + "defaults": { + "unit": "short", + "thresholds": { + "mode": "absolute", + "steps": [ + { "color": "green", "value": null }, + { "color": "yellow", "value": 20 }, + { "color": "red", "value": 50 } + ] + } + }, + "overrides": [] + }, + "gridPos": { "h": 6, "w": 12, "x": 0, "y": 54 } + }, + { + "id": 17, + "type": "stat", + "title": "RPC Slot Lag (szac. minuty)", + "datasource": { "type": "prometheus", "uid": "prometheus" }, + "targets": [{ "refId": "S", "expr": "solana_rpc_slot_lag{job=\"mpabi-node-exporter\",instance=\"$instance\"} * 0.4 / 60" }], + "fieldConfig": { + "defaults": { + "unit": "min", + "decimals": 2, + "thresholds": { + "mode": "absolute", + "steps": [ + { "color": "green", "value": null }, + { "color": "yellow", "value": 1 }, + { "color": "red", "value": 2 } + ] + } + }, + "overrides": [] + }, + "gridPos": { "h": 6, "w": 12, "x": 12, "y": 54 } + }, + { + "id": 18, + "type": "timeseries", + "title": "RPC Slot & Reference Slot", + "datasource": { "type": "prometheus", "uid": "prometheus" }, + "targets": [ + { "refId": "T", "expr": "solana_rpc_slot{job=\"mpabi-node-exporter\",instance=\"$instance\"}" }, + { "refId": "U", "expr": "solana_rpc_slot_reference{job=\"mpabi-node-exporter\",instance=\"$instance\"}" }, + { "refId": "V", "expr": "solana_rpc_block_height{job=\"mpabi-node-exporter\",instance=\"$instance\"}" } + ], + "gridPos": { "h": 8, "w": 24, "x": 0, "y": 60 } } ] } diff --git a/kustomize/infra/monitoring-extras/kustomization.yaml b/kustomize/infra/monitoring-extras/kustomization.yaml index eff42b9..b4560bf 100644 --- a/kustomize/infra/monitoring-extras/kustomization.yaml +++ b/kustomize/infra/monitoring-extras/kustomization.yaml @@ -8,3 +8,4 @@ resources: - ingressroute-prometheus.yaml - ingressroute-prometheus-http.yaml - dashboard-agave-status.yaml + - prometheus-rules-agave.yaml diff --git a/kustomize/infra/monitoring-extras/prometheus-rules-agave.yaml b/kustomize/infra/monitoring-extras/prometheus-rules-agave.yaml new file mode 100644 index 0000000..91c40f5 --- /dev/null +++ b/kustomize/infra/monitoring-extras/prometheus-rules-agave.yaml @@ -0,0 +1,61 @@ +apiVersion: monitoring.coreos.com/v1 +kind: PrometheusRule +metadata: + name: agave-rpc-alerts + namespace: monitoring + labels: + app: kube-prometheus-stack + release: monitoring-stack +spec: + groups: + - name: agave-rpc-health + rules: + - alert: AgaveRPCDown + expr: "max by (instance) (solana_rpc_up{job=\"mpabi-node-exporter\"}) == 0" + for: 30s + labels: + severity: critical + team: mpabi + annotations: + summary: "Agave RPC is unreachable" + description: "RPC probe from node exporter reports solana_rpc_up == 0 for instance {{ $labels.instance }}." + - alert: AgaveRPCSlotLagHigh + expr: "sum by (instance) (solana_rpc_slot_lag{job=\"mpabi-node-exporter\"}) > 50" + for: 2m + labels: + severity: warning + team: mpabi + annotations: + summary: "Agave RPC is lagging behind cluster" + description: "Current slot lag is {{ $value }} for instance {{ $labels.instance }}. Reference endpoint in probe config may be misconfigured or validator is behind." + - alert: AgaveRPCSlotLagCritical + expr: "sum by (instance) (solana_rpc_slot_lag{job=\"mpabi-node-exporter\"}) > 500" + for: 2m + labels: + severity: critical + team: mpabi + annotations: + summary: "Agave RPC severe lag" + description: "Slot lag is critically high ({{ $value }} slots) on instance {{ $labels.instance }}." + - alert: AgaveIOHigh + expr: | + sum by (instance) ( + (rate(node_disk_read_bytes_total{job="mpabi-node-exporter",device=~"nvme.*"}[5m]) + + rate(node_disk_written_bytes_total{job="mpabi-node-exporter",device=~"nvme.*"}[5m])) / 1024 / 1024 + ) > 300 + for: 5m + labels: + severity: warning + team: mpabi + annotations: + summary: "High storage I/O on Agave node" + description: "Combined NVMe read+write throughput >300 MiB/s for 5m on {{ $labels.instance }}. Check disk pressure and Geyser/ledger workload." + - alert: AgaveIOWaitHigh + expr: "avg by (instance) (rate(node_cpu_seconds_total{job=\"mpabi-node-exporter\",mode=\"iowait\"}[5m])) > 0.2" + for: 5m + labels: + severity: warning + team: mpabi + annotations: + summary: "High iowait on Agave node" + description: "Iowait over 20% on average for 5m on {{ $labels.instance }}. Storage latency is likely impacting slot progress." diff --git a/kustomize/overlays/prod/dlob-rpc-endpoint-patch.yaml b/kustomize/overlays/prod/dlob-rpc-endpoint-patch.yaml new file mode 100644 index 0000000..cc34b01 --- /dev/null +++ b/kustomize/overlays/prod/dlob-rpc-endpoint-patch.yaml @@ -0,0 +1,14 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dlob-publisher +spec: + template: + spec: + containers: + - name: publisher + env: + - name: ENDPOINT + value: "http://10.66.66.1:8899" + - name: WS_ENDPOINT + value: "ws://10.66.66.1:8900" diff --git a/kustomize/overlays/prod/dlob-rpc-server-endpoint-patch.yaml b/kustomize/overlays/prod/dlob-rpc-server-endpoint-patch.yaml new file mode 100644 index 0000000..643a345 --- /dev/null +++ b/kustomize/overlays/prod/dlob-rpc-server-endpoint-patch.yaml @@ -0,0 +1,14 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dlob-server +spec: + template: + spec: + containers: + - name: server + env: + - name: ENDPOINT + value: "http://10.66.66.1:8899" + - name: WS_ENDPOINT + value: "ws://10.66.66.1:8900" diff --git a/kustomize/overlays/prod/kustomization.yaml b/kustomize/overlays/prod/kustomization.yaml index 6d35101..5707279 100644 --- a/kustomize/overlays/prod/kustomization.yaml +++ b/kustomize/overlays/prod/kustomization.yaml @@ -7,6 +7,8 @@ resources: - ../../base patchesStrategicMerge: + - dlob-rpc-endpoint-patch.yaml + - dlob-rpc-server-endpoint-patch.yaml - frontend-graphql-proxy-patch.yaml configMapGenerator: diff --git a/kustomize/overlays/staging/dlob-ingestor.mjs b/kustomize/overlays/staging/dlob-ingestor.mjs index ac9e82f..a25fed1 100644 --- a/kustomize/overlays/staging/dlob-ingestor.mjs +++ b/kustomize/overlays/staging/dlob-ingestor.mjs @@ -66,7 +66,7 @@ function resolveConfig() { const hasuraAdminSecret = envString('HASURA_ADMIN_SECRET', ''); if (!hasuraAdminSecret) throw new Error('Missing HASURA_ADMIN_SECRET'); - const markets = envList('DLOB_MARKETS', 'PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP'); + const markets = envList('DLOB_MARKETS', 'SOL-PERP,DOGE-PERP,JUP-PERP'); const pollMs = envInt('TICKS_POLL_MS', 1000, { min: 250, max: 60_000 }); const source = envString('TICKS_SOURCE', 'dlob_stats'); diff --git a/kustomize/overlays/staging/dlob-rpc-endpoint-patch.yaml b/kustomize/overlays/staging/dlob-rpc-endpoint-patch.yaml new file mode 100644 index 0000000..cc34b01 --- /dev/null +++ b/kustomize/overlays/staging/dlob-rpc-endpoint-patch.yaml @@ -0,0 +1,14 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dlob-publisher +spec: + template: + spec: + containers: + - name: publisher + env: + - name: ENDPOINT + value: "http://10.66.66.1:8899" + - name: WS_ENDPOINT + value: "ws://10.66.66.1:8900" diff --git a/kustomize/overlays/staging/dlob-rpc-server-endpoint-patch.yaml b/kustomize/overlays/staging/dlob-rpc-server-endpoint-patch.yaml new file mode 100644 index 0000000..643a345 --- /dev/null +++ b/kustomize/overlays/staging/dlob-rpc-server-endpoint-patch.yaml @@ -0,0 +1,14 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: dlob-server +spec: + template: + spec: + containers: + - name: server + env: + - name: ENDPOINT + value: "http://10.66.66.1:8899" + - name: WS_ENDPOINT + value: "ws://10.66.66.1:8900" diff --git a/kustomize/overlays/staging/ingestor-dlob-patch.yaml b/kustomize/overlays/staging/ingestor-dlob-patch.yaml index ab234f1..f5dc313 100644 --- a/kustomize/overlays/staging/ingestor-dlob-patch.yaml +++ b/kustomize/overlays/staging/ingestor-dlob-patch.yaml @@ -18,7 +18,7 @@ spec: name: trade-hasura key: HASURA_GRAPHQL_ADMIN_SECRET - name: DLOB_MARKETS - value: PUMP-PERP,SOL-PERP,1MBONK-PERP,BTC-PERP,ETH-PERP + value: SOL-PERP,DOGE-PERP,JUP-PERP - name: TICKS_POLL_MS value: "1000" - name: TICKS_SOURCE diff --git a/kustomize/overlays/staging/kustomization.yaml b/kustomize/overlays/staging/kustomization.yaml index 7d11915..c546d0a 100644 --- a/kustomize/overlays/staging/kustomization.yaml +++ b/kustomize/overlays/staging/kustomization.yaml @@ -10,6 +10,8 @@ resources: - frontend-ingress-root.yaml patchesStrategicMerge: + - dlob-rpc-endpoint-patch.yaml + - dlob-rpc-server-endpoint-patch.yaml - hasura-patch.yaml - frontend-auth-patch.yaml - frontend-graphql-proxy-patch.yaml