Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 2m19s
Alle Ressourcen tragen den Praefix artista-modelcamp- im Namespace artista; Images <owner>/artista-modelcamp und <owner>/artista-modelcamp-tools. DATABASE_URL-Host, Backup-Host, Traefik-Middleware-Referenz und Betriebsdoku entsprechend angepasst. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
62 lines
1.7 KiB
YAML
62 lines
1.7 KiB
YAML
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: artista
|
|
labels:
|
|
# Pod Security Admission: nur eingeschraenkte (non-root) Pods.
|
|
pod-security.kubernetes.io/enforce: restricted
|
|
---
|
|
# Nicht geheime Einstellungen. Geheimnisse: k8s/secret.example.yaml.
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: artista-modelcamp-config
|
|
data:
|
|
APP_ENV: "production"
|
|
APP_URL: "https://modelcamp.example.org"
|
|
DATABASE_POOL_SIZE: "10"
|
|
MAIL_TRANSPORT: "smtp"
|
|
MAIL_FROM: "ARTISTA MODELCAMP <[email protected]>"
|
|
ADMIN_NOTIFY_EMAIL: ""
|
|
SMTP_PORT: "587"
|
|
SMTP_SECURE: "false"
|
|
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).
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: NetworkPolicy
|
|
metadata:
|
|
name: artista-modelcamp-postgres-access
|
|
spec:
|
|
podSelector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: artista-modelcamp-postgres
|
|
policyTypes: ["Ingress"]
|
|
ingress:
|
|
- from:
|
|
- podSelector:
|
|
matchLabels:
|
|
artista/db-client: "true"
|
|
ports:
|
|
- port: 5432
|