feat: Kubernetes-Job fuer Prisma-Migrationen beim Deploy
Bisher lief keine Migration automatisch: dem Runtime-Image fehlten Prisma-CLI, prisma/migrations/ und prisma.config.ts (nur dist+generated wurden kopiert, prisma war devDependency). Jetzt: - prisma von devDependencies zu dependencies verschoben (wird fuer migrate:deploy im --omit=dev Runtime-Image gebraucht) - neues npm-Script migrate:deploy (prisma migrate deploy) - Dockerfile kopiert prisma/, prisma.config.ts zusaetzlich ins Runtime-Image - deploy/k8s/backend/migrate-job.yaml: Job, der dasselbe Backend-Image mit ueberschriebenem command nutzt statt eines eigenen Migrations-Images, laeuft einmalig vor dem Rollout (Reihenfolge/kubectl-Befehle als Kommentar in der Datei) Verifiziert: tsc, 253/253 Unit-Tests, Build clean, `npx prisma --version` laedt prisma.config.ts korrekt.
This commit is contained in:
1 parent
80890a5fc3
commit
a6e5b0331f
5 files changed
+38
-134
No files matched your search
@@ -0,0 +1,26 @@
|
||||
# Job statt Teil des Deployment-CMD: laeuft einmalig vor dem Rollout, damit
|
||||
# nicht mehrere Backend-Pod-Replicas gleichzeitig Migrationen ausfuehren
|
||||
# (siehe ARCHITECTURE.md Abschnitt 8). Jobs sind unveraenderlich, daher vor
|
||||
# jedem Deploy mit neuem Image-Tag zuerst loeschen:
|
||||
#
|
||||
# kubectl delete job apicore-backend-migrate --ignore-not-found
|
||||
# kubectl apply -f deploy/k8s/backend/migrate-job.yaml
|
||||
# kubectl wait --for=condition=complete job/apicore-backend-migrate --timeout=120s
|
||||
# kubectl apply -f deploy/k8s/backend/deployment.yaml
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: apicore-backend-migrate
|
||||
spec:
|
||||
backoffLimit: 2
|
||||
ttlSecondsAfterFinished: 3600
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: migrate
|
||||
image: git.encry.de/nick.rosenloecher/apicore-backend:latest
|
||||
command: ["npm", "run", "migrate:deploy"]
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: apicore-backend-secret
|
||||
Reference in new issue
Block a user