Files
omnex/deploy/chart-gestion/ingressroute/templates/ingressroute.yaml
T
Xor290 2f6e5a953d
ci-api / test (push) Successful in 28m2s
chore: update
2026-08-08 18:27:52 +02:00

54 lines
1.9 KiB
YAML

{{- if not .Values.host }}
{{- fail "ingressroute: .Values.host est requis (ex: demo-abc123.omnex.sbs)" }}
{{- end }}
# Routage HTTPS de cette démo. Le TLS n'est pas précisé : Traefik utilise
# automatiquement le certificat wildcard par défaut du TLSStore partagé
# (voir deploy/chart-gestion/traefik/templates/tlsstore.yaml). Le redirect
# HTTP -> HTTPS est géré au niveau de l'entrypoint Traefik (pas dupliqué ici).
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: {{ .Release.Namespace }}-routes
namespace: {{ .Release.Namespace }}
labels:
{{- include "ingressroute.labels" . | nindent 4 }}
spec:
entryPoints:
- websecure
routes:
# API backend — WAF + headers + rate limit (middlewares partagés, définis
# dans le namespace du Traefik commun, référencés cross-namespace).
- match: Host(`{{ .Values.host }}`) && (PathPrefix(`/api/`) || PathPrefix(`/webhook/`))
kind: Rule
priority: 20
middlewares:
- name: waf-chain
namespace: {{ .Values.traefikNamespace }}
services:
- name: {{ include "ingressroute.backendService" . }}
port: {{ .Values.backend.servicePort }}
# Fichiers uploadés — WAF désactivé dans les règles Coraza pour ce path
- match: Host(`{{ .Values.host }}`) && PathPrefix(`/uploads/`)
kind: Rule
priority: 15
middlewares:
- name: security-headers
namespace: {{ .Values.traefikNamespace }}
services:
- name: {{ include "ingressroute.backendService" . }}
port: {{ .Values.backend.servicePort }}
# Frontend SPA — WAF + headers + rate limit
- match: Host(`{{ .Values.host }}`)
kind: Rule
priority: 1
middlewares:
- name: waf-chain
namespace: {{ .Values.traefikNamespace }}
services:
- name: {{ include "ingressroute.frontendService" . }}
port: {{ .Values.frontend.servicePort }}
tls: {}