chore(k8s): Images auf CI-Build pinnen statt :latest
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 5m51s

App, Migration und Worker zeigen auf sha-<commit> mit
imagePullPolicy IfNotPresent. Damit gibt es ein Rollback per
rollout undo, und ein Neustart zieht nicht mehr ungeprueft das
neueste Image (oder scheitert, wenn Gitea gerade nicht laeuft).
README beschreibt das Ausrollen mit kubectl set image.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-10-12 05:27:47 +02:00
1 parent b725aa230c
commit f2b548cb98
3 files changed
+19 -7

No files matched your search

+5 -4
View File
@@ -24,8 +24,9 @@ spec:
seccompProfile: { type: RuntimeDefault }
initContainers:
- name: migrate
image: git.encry.de/nick.rosenloecher/artista-modelcamp-tools:latest
imagePullPolicy: Always
# Gepinnt auf einen CI-Build (sha-<commit>), nicht :latest. Ausrollen siehe README.
image: git.encry.de/nick.rosenloecher/artista-modelcamp-tools:sha-REPLACE_ME
imagePullPolicy: IfNotPresent
command: ["prisma", "migrate", "deploy"]
envFrom:
- secretRef: { name: artista-modelcamp-secrets }
@@ -37,8 +38,8 @@ spec:
capabilities: { drop: ["ALL"] }
containers:
- name: app
image: git.encry.de/nick.rosenloecher/artista-modelcamp:latest
imagePullPolicy: Always
image: git.encry.de/nick.rosenloecher/artista-modelcamp:sha-REPLACE_ME
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 3000
+3 -2
View File
@@ -25,8 +25,9 @@ spec:
seccompProfile: { type: RuntimeDefault }
containers:
- name: worker
image: git.encry.de/nick.rosenloecher/artista-modelcamp-tools:latest
imagePullPolicy: Always
# Gepinnt auf einen CI-Build (sha-<commit>), nicht :latest. Ausrollen siehe README.
image: git.encry.de/nick.rosenloecher/artista-modelcamp-tools:sha-REPLACE_ME
imagePullPolicy: IfNotPresent
command: ["tsx", "scripts/worker.ts"]
envFrom:
- configMapRef: { name: artista-modelcamp-config }
+11 -1
View File
@@ -68,10 +68,20 @@ kubectl -n artista run admin-create --rm -i --restart=Never \
## Bei einem neuen Image (Redeploy)
Die Manifeste sind auf einen Build gepinnt, nicht auf `:latest`. Den Tag `sha-<commit>` (7 Zeichen) zeigt der CI-Lauf in der Zusammenfassung. App und Werkzeuge immer mit demselben Tag ausrollen:
```bash
kubectl rollout restart deployment/artista-modelcamp-app -n artista
TAG=sha-<commit>
kubectl -n artista set image deployment/artista-modelcamp-app \
migrate=git.encry.de/nick.rosenloecher/artista-modelcamp-tools:$TAG \
app=git.encry.de/nick.rosenloecher/artista-modelcamp:$TAG
kubectl -n artista set image cronjob/artista-modelcamp-worker \
worker=git.encry.de/nick.rosenloecher/artista-modelcamp-tools:$TAG
kubectl -n artista rollout status deployment/artista-modelcamp-app
```
Zurueck auf den vorherigen Stand: `kubectl -n artista rollout undo deployment/artista-modelcamp-app` (den CronJob dann wieder auf den alten Tag setzen).
## Fehlersuche
```bash