chore(k8s): App-Deployment auf festen Build gepinnt, wie im Cluster
Docker Image bauen und veroeffentlichen / build-and-push (push) Canceled after 0s

Image per Digest statt :latest, imagePullPolicy IfNotPresent, Pod- und
Container-securityContext (runAsNonRoot 1001, seccomp RuntimeDefault, keine
Rechteausweitung, alle Capabilities entfernt). kubectl diff gegen den Cluster
ist leer. Neue Builds per kubectl set image ...:sha-<commit>.

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 06:48:00 +02:00
1 parent 4b15ca0b8d
commit 2995890b07
1 file changed
+18 -3
+18 -3
View File
@@ -1,5 +1,5 @@
# image: unten mit der tatsaechlichen Registry/Tag aus der Gitea-Actions-
# Pipeline ersetzen. Kein separater Migrations-Job mehr noetig: der
# image: unten auf den Build gepinnt, siehe Kommentar dort. Kein separater
# Migrations-Job mehr noetig: der
# Container fuehrt "prisma migrate deploy" + "prisma db seed" selbst aus,
# BEVOR er den Server startet (siehe Dockerfile-CMD in der runner-Stage) —
# beide Schritte sind idempotent, laufen also bei jedem Neustart gefahrlos
@@ -72,9 +72,24 @@ spec:
# "Uploads lassen sich nicht speichern".
securityContext:
fsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
runAsGroup: 1001
seccompProfile:
type: RuntimeDefault
containers:
- name: app
image: git.encry.de/nick.rosenloecher/wabenhain:latest
# Fest auf einen Build gepinnt (Tag sha-<kurzer Commit> aus der
# Gitea-Pipeline), nie :latest: ein "rollout restart" holt damit
# kein ungeprueftes neues Image. Neuer Build:
# kubectl -n wabenhain set image deploy/wabenhain-app app=git.encry.de/nick.rosenloecher/wabenhain:sha-<commit>
# und den Tag hier nachziehen.
image: git.encry.de/nick.rosenloecher/wabenhain@sha256:17d880340cdad9448b27a017316f9b906572c455a8e15579ecee50c22e06e14c
imagePullPolicy: IfNotPresent
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
ports:
- containerPort: 3000
envFrom: