Files
trade-deploy/kustomize/base/hasura/job-bootstrap.yaml

54 lines
1.7 KiB
YAML

apiVersion: batch/v1
kind: Job
metadata:
name: hasura-bootstrap
annotations:
argocd.argoproj.io/hook: Sync
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation,HookSucceeded
argocd.argoproj.io/sync-wave: "3"
spec:
backoffLimit: 5
template:
spec:
restartPolicy: OnFailure
initContainers:
- name: wait-db
image: postgres:16
imagePullPolicy: IfNotPresent
envFrom:
- secretRef:
name: trade-postgres
command:
- sh
- -ec
- |
export PGPASSWORD="$POSTGRES_PASSWORD"
until pg_isready -h postgres -U "$POSTGRES_USER" -d "$POSTGRES_DB"; do sleep 1; done
until psql -h postgres -U "$POSTGRES_USER" -d "$POSTGRES_DB" -v ON_ERROR_STOP=1 -c "select 1 from public.drift_ticks limit 1" >/dev/null 2>&1; do sleep 1; done
containers:
- name: hasura-bootstrap
image: node:20-slim
imagePullPolicy: IfNotPresent
env:
- name: HASURA_URL
value: http://hasura:8080
- name: HASURA_ADMIN_SECRET
valueFrom:
secretKeyRef:
name: trade-hasura
key: HASURA_GRAPHQL_ADMIN_SECRET
- name: TICKS_TABLE
value: drift_ticks
- name: CANDLES_FUNCTION
value: get_drift_candles
command: ["node", "/app/hasura-bootstrap.mjs"]
volumeMounts:
- name: script
mountPath: /app/hasura-bootstrap.mjs
subPath: hasura-bootstrap.mjs
readOnly: true
volumes:
- name: script
configMap:
name: hasura-bootstrap-script