feat(api): add HTTP/2 connection keepalive to ClientTrafficPolicy and BackendTrafficPolicy#8215
feat(api): add HTTP/2 connection keepalive to ClientTrafficPolicy and BackendTrafficPolicy#8215rajatvig wants to merge 10 commits intoenvoyproxy:mainfrom
Conversation
… BackendTrafficPolicy Signed-off-by: Rajat Vig <rvig@etsy.com>
✅ Deploy Preview for cerulean-figolla-1f9435 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8215 +/- ##
==========================================
- Coverage 73.57% 73.57% -0.01%
==========================================
Files 242 242
Lines 37000 37045 +45
==========================================
+ Hits 27224 27257 +33
- Misses 7854 7862 +8
- Partials 1922 1926 +4 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Signed-off-by: Rajat Vig <rvig@etsy.com>
Signed-off-by: Rajat Vig <rvig@etsy.com>
Signed-off-by: Rajat Vig <rvig@etsy.com>
internal/gatewayapi/http.go
Outdated
| if err != nil { | ||
| errs = errors.Join(errs, fmt.Errorf("invalid ConnectionKeepalive.Interval: %w", err)) | ||
| } else { | ||
| keepalive.Interval = ptr.To(uint32(d.Seconds())) |
There was a problem hiding this comment.
The API allows ms, but the translation drops ms, so 1500ms becomes 1s. Should we use metav1.Duration here?
Then envoy api does allows ms: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-msg-config-core-v3-keepalivesettings
It's fine for TCP keepalive to use seconds only, since the API only allows seconds:
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-tcpkeepalive
There was a problem hiding this comment.
if we want to support that, we should add our custom type and relax CEL
There was a problem hiding this comment.
Using metav1.Duration now.
Signed-off-by: Rajat Vig <rvig@etsy.com>
…live-shared Signed-off-by: Rajat Vig <rvig@etsy.com>
Signed-off-by: Rajat Vig <rvig@etsy.com>
Signed-off-by: Rajat Vig <rvig@etsy.com>
Signed-off-by: Rajat Vig <rvig@etsy.com>
…live-shared Signed-off-by: Rajat Vig <rvig@etsy.com>
Summary
connectionKeepalivefield toHTTP2Settingsfor configuring HTTP/2 PING framesinterval,timeout, andconnectionIdleIntervalsettingsNote
The settings are also applied to other resources like
EnvoyExtensionPolicy,EnvoyProxyandSecurityPolicydue to how reuse of theHTTP2Settingsstruct. Trying to make it work just forClientTrafficPolicyis done in #8213 but extending it forBackendTrafficPolicyis not possible similarly as the struct is embedded inClusterSettingsstruct.This change can be merged independently of the other PR and I can close #8213 if this looks good.
Fixes #7744
Fixes #8214