110 lines
3.4 KiB
YAML
110 lines
3.4 KiB
YAML
# =============================================================
|
|
# Traefik partagé multi-tenant : un seul déploiement pour toutes les démos.
|
|
# Le routage par démo (Host -> Service) est fourni par le chart
|
|
# deploy/chart-gestion/ingressroute, installé une fois par namespace de démo.
|
|
# =============================================================
|
|
|
|
# TLS : certificat wildcard émis une fois par cert-manager
|
|
# (voir deploy/cert-manager/), référencé ici comme certificat par défaut
|
|
# du TLSStore. Toutes les IngressRoute (dans ce namespace ou les namespaces
|
|
# de démo) qui ne précisent pas de tls.secretName utilisent automatiquement
|
|
# ce certificat.
|
|
tls:
|
|
secretName: wildcard-demo-tls
|
|
|
|
waf:
|
|
paranoia: 2
|
|
anomalyInbound: 5
|
|
anomalyOutbound: 4
|
|
|
|
rateLimit:
|
|
# requêtes moyennes par seconde par IP
|
|
average: 20
|
|
burst: 50
|
|
|
|
# =============================================================
|
|
# Valeurs passées au subchart officiel traefik
|
|
# https://github.com/traefik/traefik-helm-chart
|
|
# =============================================================
|
|
traefik:
|
|
# Expose les ports 80 et 443. Le port web redirige automatiquement vers
|
|
# websecure au niveau de l'entrypoint (pas besoin d'IngressRoute dédiée).
|
|
# Schéma valable pour le chart traefik/traefik >= 34 (vendored : 41.1.0,
|
|
# voir charts/traefik-41.1.0.tgz).
|
|
ports:
|
|
web:
|
|
port: 8000
|
|
expose:
|
|
default: true
|
|
http:
|
|
redirections:
|
|
entryPoint:
|
|
to: websecure
|
|
scheme: https
|
|
permanent: true
|
|
websecure:
|
|
port: 8443
|
|
expose:
|
|
default: true
|
|
http:
|
|
tls:
|
|
enabled: true
|
|
|
|
# Logs
|
|
log:
|
|
level: INFO
|
|
accessLog:
|
|
enabled: true
|
|
|
|
# Plugin Coraza WAF — DÉSACTIVÉ temporairement : "github.com/corazawaf/
|
|
# coraza-traefik@v0.3.0" n'existe pas sur le catalogue de plugins Traefik
|
|
# (404 au démarrage), ce qui invalidait toute la chaîne de middlewares et
|
|
# cassait le routage de TOUTES les démos. Le bon plugin est probablement
|
|
# github.com/jcchavezs/coraza-http-wasm-traefik (WASM), mais le nom de
|
|
# module exact + la version doivent être repris tels quels depuis
|
|
# https://plugins.traefik.io (bouton "Install this plugin" génère le
|
|
# snippet exact et garanti à jour) avant de les remettre ici — deux
|
|
# tentatives de deviner la bonne valeur ont déjà cassé la prod.
|
|
# experimental:
|
|
# plugins:
|
|
# coraza-traefik:
|
|
# moduleName: ""
|
|
# version: ""
|
|
|
|
# ACME interne désactivé : c'est cert-manager qui gère le cycle de vie du
|
|
# certificat wildcard (voir deploy/cert-manager/), Traefik ne fait que le
|
|
# consommer via le TLSStore (templates/tlsstore.yaml).
|
|
|
|
# ACME storage persistant — plus nécessaire sans resolver Traefik interne,
|
|
# conservé désactivé par défaut.
|
|
persistence:
|
|
enabled: false
|
|
|
|
# Traefik lit les IngressRoute/Middleware dans tous les namespaces de démo,
|
|
# et peut référencer les Middlewares partagés (waf-chain) définis ici depuis
|
|
# une IngressRoute d'un autre namespace.
|
|
providers:
|
|
kubernetesCRD:
|
|
enabled: true
|
|
allowCrossNamespace: true
|
|
|
|
# IP réelle via X-Forwarded-For (profondeur 1 = proxy direct)
|
|
# Le rate-limiter et les logs utilisent cette IP
|
|
service:
|
|
spec:
|
|
externalTrafficPolicy: Local
|
|
|
|
# Métriques Prometheus
|
|
metrics:
|
|
prometheus:
|
|
enabled: true
|
|
|
|
# Ressources
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 500m
|
|
memory: 256Mi
|