Files
Artista-Filmcamp/k8s/overlays/production/ingress.yaml
T
Nick SzaunigandClaude Opus 5.5 c84eb1e740
Docker-Images bauen und veroeffentlichen / build-and-push (push) Successful in 2m17s
refactor(k8s): schlanker Umfang, Postgres und Medien auf SMB
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]>
2026-09-27 20:36:30 +02:00

35 lines
1.2 KiB
YAML

# Ingress fuer Traefik mit cert-manager.
# Anpassen: Host (auch APP_URL in kustomization.yaml), ingressClassName
# ("kubectl get ingressclass"), ClusterIssuer, TLS-Secret-Name.
# HTTP->HTTPS-Umleitung erwartet dieses Manifest EntryPoint-weit in Traefik
# (Helm: ports.web.redirections.entryPoint.to=websecure).
#
# X-Forwarded-For/X-Real-Ip: Rate Limits verlassen sich darauf, dass Traefik
# vom Client mitgeschickte Werte verwirft. Dafuer im Traefik-EntryPoint
# forwardedHeaders.trustedIPs nur auf echte vorgelagerte Proxys setzen.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: artista-modelcamp
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
ingressClassName: traefik
tls:
- hosts:
- modelcamp.example.org
secretName: artista-modelcamp-tls
rules:
- host: modelcamp.example.org
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: artista-modelcamp-app
port:
name: http