Helm Charts / Detect changed charts (push) Successful in 1m6s
Helm Charts / Detect changed charts (pull_request) Successful in 1m5s
Helm Charts / Library charts tool (push) Has been skipped
Helm Charts / Library charts tool (pull_request) Has been skipped
Helm Charts / Application charts pgcat (push) Has been skipped
Helm Charts / Application charts pgcat (pull_request) Has been skipped
Sans ça, la synchronisation des vidéos ne peut pas marcher, et ce sont des faits du navigateur : une page servie en https ne peut pas émettre de requête vers http:// (contenu mixte), et `.lab` n'est pas résolvable hors du LAN. L'ingress existant est en entrypoint `web` sans TLS, sur un domaine interne — donc inutilisable depuis kadans.arcodange.fr, en déplacement COMME à la maison. Même motif que grafana/templates/ingress-public.yaml : entrypoint `web`, TLS terminé par le tunnel Cloudflare (wildcard *.arcodange.fr), middleware crowdsec. Le `.lab` interne reste inchangé. PAS de basic-auth, contrairement à kadans-public : une requête S3 porte sa propre signature (SigV4), et un défi HTTP Basic casserait le PUT présigné auquel le navigateur ne peut pas répondre. L'autorisation vient de l'URL signée et de sa durée de vie courte. CORS déclaré sur les origines EXACTES de la PWA (.fr et .lab), jamais « * » : une URL présignée qui fuiterait serait sinon rejouable depuis n'importe quel site. Sans cette liste, le préflight OPTIONS échoue et le PUT ne part même pas. ⚠ Signalé, NON mesuré : le tunnel Cloudflare plafonne probablement le corps d'une requête (~100 Mo sur les offres gratuites). À éprouver avec un vrai téléversement. Contexte utile : sur le corpus réel du fondateur (707 vidéos, ~2 ans), la durée MOYENNE est de 53 s et deux vidéos seulement dépassent 5 min — au palier « travail » de l'ADR-018, 100 Mo valent ~29 min de cours. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01CoafGWmRVESaWX819USUUA
38 lines
1.6 KiB
YAML
38 lines
1.6 KiB
YAML
# Exposition PUBLIQUE s3.arcodange.fr, EN PLUS du .lab interne (qui reste
|
|
# inchangé). Même motif que `grafana/templates/ingress-public.yaml` : entrypoint
|
|
# `web` — le TLS est terminé en amont par le tunnel Cloudflare (wildcard
|
|
# *.arcodange.fr → traefik.kube-system.svc:80) — et middleware crowdsec.
|
|
#
|
|
# POURQUOI c'est nécessaire (et pas un confort) : la PWA est servie en
|
|
# https://kadans.arcodange.fr. Un navigateur REFUSE une requête vers http://
|
|
# depuis une page https (contenu mixte), et `.lab` n'est de toute façon pas
|
|
# résolvable hors du LAN. Sans cet ingress, le téléversement d'une vidéo ne peut
|
|
# marcher NI en déplacement, NI même à la maison — c'est le maillon qui manque
|
|
# à kadans-api#23 (URL présignées).
|
|
#
|
|
# ⚠ PAS de basic-auth ici, contrairement à kadans-public : une requête S3 porte
|
|
# sa propre signature (SigV4) dans ses en-têtes ou son URL. Un défi HTTP Basic
|
|
# casserait le PUT présigné du navigateur, qui n'a aucun moyen d'y répondre.
|
|
# L'autorisation vient de l'URL signée, avec sa durée de vie courte.
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: minio-public
|
|
namespace: tools
|
|
annotations:
|
|
traefik.ingress.kubernetes.io/router.entrypoints: web
|
|
traefik.ingress.kubernetes.io/router.middlewares: kube-system-crowdsec@kubernetescrd
|
|
spec:
|
|
ingressClassName: traefik
|
|
rules:
|
|
- host: s3.arcodange.fr
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: minio
|
|
port:
|
|
number: 9000
|