refactor(k8s): schlanker Umfang, Postgres und Medien auf SMB
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 2m17s
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]>
This commit is contained in:
1 parent
974c403a8b
commit
c84eb1e740
12 files changed
+200
-327
No files matched your search
+5
-27
@@ -1,11 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: artista
|
||||
labels:
|
||||
# Pod Security Admission: nur eingeschraenkte (non-root) Pods.
|
||||
pod-security.kubernetes.io/enforce: restricted
|
||||
---
|
||||
# Der Namespace "artista" wird einmalig von Hand angelegt:
|
||||
# kubectl create namespace artista
|
||||
# kubectl label namespace artista pod-security.kubernetes.io/enforce=restricted
|
||||
#
|
||||
# Nicht geheime Einstellungen. Geheimnisse: k8s/secret.example.yaml.
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
@@ -23,26 +19,8 @@ data:
|
||||
MEDIA_DIR: "/app/media"
|
||||
EXTERNAL_VIDEO_PROVIDER: "none"
|
||||
---
|
||||
# Freigegebene Bilder und Videos (Unterkunft, Portraets, Feedback-Videos).
|
||||
# Dauerhaft, deshalb ein PersistentVolumeClaim und KEIN emptyDir.
|
||||
#
|
||||
# ReadWriteMany, weil mehrere App-Replikate dasselbe Verzeichnis lesen.
|
||||
# Geeignet: z. B. Longhorn (RWX), NFS oder eine SMB/CSI-Freigabe — fuer
|
||||
# Medien ist ein Netzwerkdateisystem unkritisch (anders als fuer PostgreSQL).
|
||||
# Steht nur ReadWriteOnce zur Verfuegung: replicas im Deployment auf 1 setzen.
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: artista-modelcamp-media
|
||||
spec:
|
||||
accessModes: ["ReadWriteMany"]
|
||||
# storageClassName: longhorn
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
---
|
||||
# Die Datenbank ist nur fuer Pods mit dem Label artista/db-client erreichbar
|
||||
# (App, Migration, Worker, Sicherung).
|
||||
# (App inkl. Migrations-initContainer, Worker).
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
|
||||
Reference in new issue
Block a user