Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 2m17s
Auf Wunsch des Betreibers auf das Noetige reduziert: StatefulSet PostgreSQL, Services, Ingress, App-Deployment, zwei SMB-PersistentVolumes (Postgres-Daten, Medien). Beibehalten nach Absprache: Worker-CronJob (Folgeraten, Reservierungsfreigabe, Mail-Wiederholung), ConfigMap und die NetworkPolicies (Sicherheitsbefund Rate-Limit-Umgehung). - Migration als initContainer im App-Deployment statt eigenem Job - Entfernt: Backup-CronJob/-Volume (NAS sichert die Freigabe), Migrations-CronJob, PodDisruptionBudget, HTTP-Redirect-Ingress und Middleware, Namespace-Objekt (einmalig von Hand anzulegen) - PostgreSQL auf SMB als bewusste, dokumentierte Ausnahme mit hard, cache=strict, SMB 3.1.1 + seal, uid 70 / 0700 Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
28 lines
732 B
YAML
28 lines
732 B
YAML
# Die beiden dauerhaften Speicher. Im Produktions-Overlay werden sie fest an
|
|
# die SMB-PersistentVolumes gebunden (k8s/overlays/production/smb-volumes.yaml).
|
|
# Eine separate Sicherung gibt es nicht: die SMB-Freigabe wird auf dem NAS
|
|
# selbst mehrfach gesichert.
|
|
|
|
# PostgreSQL-Datenverzeichnis.
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: artista-modelcamp-postgres-data
|
|
spec:
|
|
accessModes: ["ReadWriteOnce"]
|
|
resources:
|
|
requests:
|
|
storage: 10Gi
|
|
---
|
|
# Freigegebene Bilder und Videos. ReadWriteMany, weil mehrere App-Replikate
|
|
# lesen.
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: artista-modelcamp-media
|
|
spec:
|
|
accessModes: ["ReadWriteMany"]
|
|
resources:
|
|
requests:
|
|
storage: 5Gi
|