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
Ce qui est cree automatiquement
Section intitulée « Ce qui est cree automatiquement »Pour chaque application avec un reseau :
| Ressource | Description |
|---|---|
| Gateway | HTTPS listeners avec TLS (cert-manager) par hostname |
| HTTPRoute | Routing vers les services backend |
| Service ClusterIP | Services K8s pour le routing |
| SecurityPolicy | IP whitelist + CORS |
| ClientTrafficPolicy | Limite de taille de requete |
| BackendTrafficPolicy | Timeouts, rate limit, retry (si configure) |
| EnvoyExtensionPolicy | Lua scripts (maintenance, SEO4Ajax, SPA fallback) |
Defaults de la plateforme
Section intitulée « Defaults de la plateforme »Ces valeurs sont appliquees automatiquement par terraform-gateway-api (infrastructure globale). Pas besoin de les configurer sauf pour override.
| Setting | Valeur par defaut |
|---|---|
| HTTP -> HTTPS | Active |
| CORS origins | *.homeserve.io, *.homeserve.fr, *.homeserve.be, *.homeserve.pro |
| Request timeout | 300s |
| Idle timeout | 300s |
| Connect timeout | 10s |
| Retries | Active |
| Gzip | Active |
| Circuit breaker | Active |
Overrides par application
Section intitulée « Overrides par application »Configurez ces proprietes dans network pour overrider les defaults :
network: - name: app timeout: request: "7200s" # Pour les uploads longs idle: "7200s"Rate limiting
Section intitulée « Rate limiting »network: - name: app rateLimit: requests: 100 unit: minute # second | minute | hournetwork: - name: app retry: numRetries: 5Load balancer
Section intitulée « Load balancer »network: - name: app loadBalancer: LeastRequest # RoundRobin | LeastRequest | Random | ConsistentHash | RingHashResponse headers
Section intitulée « Response headers »network: - name: app responseHeaders: set: X-Frame-Options: DENY X-Content-Type-Options: nosniff remove: - ServerRequest headers
Section intitulée « Request headers »network: - name: app requestHeaders: set: X-Request-Source: gatewayURL rewrite
Section intitulée « URL rewrite »network: - name: app urlRewrite: type: ReplacePrefixMatch value: /api/v2Voir aussi : Toutes les proprietes | Network | CORS & Securite