Aller au contenu

Gateway API

Le deployer utilise l’Envoy Gateway API pour gerer le trafic HTTP. Chaque application recoit automatiquement une Gateway avec TLS, CORS, timeouts, et plus.

flowchart LR
    Internet -->|HTTPS| GW["Gateway\n(TLS + cert-manager)"]
    GW --> CTP["ClientTrafficPolicy\n(max body size)"]
    GW --> SP["SecurityPolicy\n(CORS + IP whitelist)"]
    GW --> HR["HTTPRoute\n(path routing)"]
    HR --> BTP["BackendTrafficPolicy\n(timeout, retry, rate limit)"]
    HR --> EEP["EnvoyExtensionPolicy\n(Lua: maintenance, SEO4Ajax,\nredirects, SPA fallback)"]
    HR --> SVC["Service ClusterIP"]
    SVC --> POD["Pods"]

    style GW fill:#4af,stroke:#333,color:#000
    style HR fill:#9f9,stroke:#333,color:#000
    style EEP fill:#f9f,stroke:#333,color:#000

Pour chaque application avec un reseau :

RessourceDescription
GatewayHTTPS listeners avec TLS (cert-manager) par hostname
HTTPRouteRouting vers les services backend
Service ClusterIPServices K8s pour le routing
SecurityPolicyIP whitelist + CORS
ClientTrafficPolicyLimite de taille de requete
BackendTrafficPolicyTimeouts, rate limit, retry (si configure)
EnvoyExtensionPolicyLua scripts (maintenance, SEO4Ajax, SPA fallback)

Ces valeurs sont appliquees automatiquement par terraform-gateway-api (infrastructure globale). Pas besoin de les configurer sauf pour override.

SettingValeur par defaut
HTTP -> HTTPSActive
CORS origins*.homeserve.io, *.homeserve.fr, *.homeserve.be, *.homeserve.pro
Request timeout300s
Idle timeout300s
Connect timeout10s
RetriesActive
GzipActive
Circuit breakerActive

Configurez ces proprietes dans network pour overrider les defaults :

network:
- name: app
timeout:
request: "7200s" # Pour les uploads longs
idle: "7200s"
network:
- name: app
rateLimit:
requests: 100
unit: minute # second | minute | hour
network:
- name: app
retry:
numRetries: 5
network:
- name: app
loadBalancer: LeastRequest # RoundRobin | LeastRequest | Random | ConsistentHash | RingHash
network:
- name: app
responseHeaders:
set:
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
remove:
- Server
network:
- name: app
requestHeaders:
set:
X-Request-Source: gateway
network:
- name: app
urlRewrite:
type: ReplacePrefixMatch
value: /api/v2

Voir aussi : Toutes les proprietes | Network | CORS & Securite