fix(sol): serialize canary rollouts under quota
All checks were successful
deploy-trade-r001-canary / apply (push) Successful in 6m46s

This commit is contained in:
mpabi
2026-04-12 18:39:31 +02:00
parent 2e909026a7
commit c76eb7d5f3
10 changed files with 60 additions and 20 deletions

View File

@@ -54,6 +54,7 @@ Minimal canary namespace for migration baseline `R001` on `sol`.
before it waits for `Hasura`, `trade-api`, `trade-frontend`, `trade-ingestor`, and the DLOB hot/all-path deployments to become healthy.
- The canary `trade-ingestor` now follows the live `R001` path on `sol`: it reads `dlob_hot_derived_latest` first for hot markets and falls back to `dlob_all_derived_latest`.
- `api-token-seed` restores the frontend read token in `api_tokens`, so `trade-api` and `trade-frontend` can be validated against the reconstructed derived tables after each deploy.
- Canary deployments use `RollingUpdate` with `maxSurge=0` and `maxUnavailable=1`, and the workflow restarts them sequentially, because the namespace `limits.cpu=6` guardrail does not tolerate surge-based restarts of the full surface at once.
## Operator Flow

View File

@@ -12,6 +12,13 @@ spec:
- name: seed
image: postgres:16-alpine
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 64Mi
limits:
cpu: 250m
memory: 128Mi
command:
- sh
- -lc

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: dlob-hot-postgres-to-postgres-derived-writer

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: dlob-hot-redis-to-postgres-raw-writer

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: dlob-publisher-hot

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app: hasura

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: trade-api

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: trade-frontend

View File

@@ -5,6 +5,11 @@ metadata:
namespace: trade-r001-canary
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: trade-ingestor