You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(interceptor): add direct-pod routing for cold-start requests
- Adds KEDA_HTTP_DIRECT_POD_ROUTING (disabled|cold-start-only); when set,
rewrites upstream URL to a ready pod's ip:port after scale-from-zero
- ReadyEndpointsCache now tracks (ip, port) pairs keyed by named port via
EndpointSlice updates; WaitForReady returns a podHost alongside isColdStart
- Empty podHost (no portName match) leaves upstream URL unchanged, falling
back to ClusterIP as before
- TransportPool keyed on (responseHeaderTimeout, serverName) with per-transport
TLSClientConfig.ServerName for correct SNI per pod
- Routing middleware stores intended TLS hostname in context before any URL
rewrite so SNI always points to the original service
Signed-off-by: Atharva Pakade <pakade310@gmail.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,11 +32,13 @@ This changelog keeps track of work items that have been completed and are ready
32
32
33
33
### New
34
34
35
-
-**General**: TODO ([#TODO](https://github.com/kedacore/http-add-on/issues/TODO))
35
+
-**Interceptor**: Add `KEDA_HTTP_DIRECT_POD_ROUTING` environment variable (`disabled` | `cold-start-only`). When set to `cold-start-only`, the interceptor routes cold-start requests directly to a ready pod IP instead of through the service ClusterIP, reducing latency when kube-proxy rules are slow to propagate. ([#1473](https://github.com/kedacore/http-add-on/issues/1473))
36
36
37
37
### Improvements
38
38
39
-
-**General**: TODO ([#TODO](https://github.com/kedacore/http-add-on/issues/TODO))
39
+
-**Interceptor**: `ReadyEndpointsCache` now tracks full `(ip, port)` pairs per named port from EndpointSlices, enabling direct-pod routing (replaces the previous bool-only ready state). ([#1473](https://github.com/kedacore/http-add-on/issues/1473))
40
+
-**Interceptor**: `TransportPool` now keys on `(responseHeaderTimeout, serverName)` and applies TLS `ServerName` per transport, enabling correct SNI when the upstream URL is rewritten to a pod IP. ([#1473](https://github.com/kedacore/http-add-on/issues/1473))
41
+
-**Interceptor**: TLS server name is captured in context by the routing middleware before any URL rewrites, so downstream transports always use the original service hostname for SNI. ([#1473](https://github.com/kedacore/http-add-on/issues/1473))
0 commit comments