# Setzt einen bereits im Cluster laufenden Ingress-Controller voraus (z.B. # ingress-nginx) sowie optional cert-manager fuer automatisches TLS. Host # unten anpassen (muss zu NEXT_PUBLIC_SITE_URL in 01-configmap.yaml passen). # # X-Forwarded-For: ingress-nginx setzt den Header standardmaessig korrekt # (verwirft einen vom Client mitgeschickten Wert), lib/rate-limit.ts vertraut # genau darauf — bei einem ANDEREN Ingress-Controller/zusaetzlichen Proxy # davor unbedingt pruefen, dass er sich genauso verhaelt, siehe Kommentar in # lib/rate-limit.ts. apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: wabenhain namespace: wabenhain annotations: # Nur relevant, falls cert-manager installiert ist — sonst diese beiden # Zeilen und den "tls:"-Block unten entfernen und Host per HTTP betreiben # oder TLS auf andere Weise terminieren. cert-manager.io/cluster-issuer: letsencrypt-prod nginx.ingress.kubernetes.io/ssl-redirect: "true" # ingress-nginx laesst ohne diese Annotation standardmaessig nur 1 MB pro # Request durch — weit unter dem Bild- (8 MB, lib/uploads.ts # MAX_UPLOAD_BYTES) und erst recht dem Video-Limit (40 MB, lib/uploads.ts # MAX_UPLOAD_VIDEO_BYTES) der Admin-Uploads. Ohne diese Zeile bricht # nginx jeden Upload jenseits von 1 MB vor der App ab (Verbindungsabbruch # ohne verwertbare Fehlermeldung im Browser) — 45m deckt das groessere der # beiden Limits (40 MB) plus etwas Spielraum fuer den multipart/form-data- # Overhead ab. nginx.ingress.kubernetes.io/proxy-body-size: "45m" spec: ingressClassName: nginx tls: - hosts: - shop.example.com secretName: wabenhain-tls rules: - host: shop.example.com http: paths: - path: / pathType: Prefix backend: service: name: wabenhain-app port: number: 80