Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Contour should configure a stream_idle_timeout #1547

Closed
xstevens opened this issue Sep 19, 2019 · 4 comments
Closed

Contour should configure a stream_idle_timeout #1547

xstevens opened this issue Sep 19, 2019 · 4 comments
Milestone

Comments

@xstevens
Copy link

Describe the solution you'd like
Allow the configuration of Envoy's stream_idle_timeout. According to the Envoy documentation this can be set globally as well as per-route. Envoy defaults this to 5 minutes, but it is overridden by per-route idle timeout.

We use gRPC streaming for some APIs and we would like to keep the connection open as long as possible in many cases. We have currently enabled gRPC keep-alive, but recently realized that Envoy doesn't proxy these through to keep upstream connections alive (see envoy/2086 and envoy/5142).

What happens currently is if we don't send data in under 60 seconds (Contour's default idle timeout) then we get a gRPC error back of "stream timeout".

Anything else you would like to add:

We also need to consider how to do this in a way where we can avoid security issues such as trusting timeouts specified by clients.

Related Issues:

Environment:

  • Contour version: v0.15
  • Kubernetes version: v1.15.3
@davecheney davecheney modified the milestone: 1.0.0-rc.1 Sep 29, 2019
@davecheney
Copy link
Contributor

@xstevens in 1.0.0-beta.1 we added support for a route.timeoutPolicy.idle per route idle timeout. Is this useful for you?

@davecheney davecheney added this to the Backlog milestone Sep 29, 2019
@xstevens
Copy link
Author

Yes, per route idle timeout is useful for us. Thanks!

@ewoutp
Copy link

ewoutp commented Apr 12, 2020

We have same problem. Even after setting idle timeout to infinity, we still get stream timeout errors.

@skriss
Copy link
Member

skriss commented Oct 7, 2020

Stream idle timeout is now globally configurable for Contour -- see https://projectcontour.io/docs/v1.9.0/configuration/#timeout-configuration. Closing this out, but feel free to reach out again if needed.

@skriss skriss closed this as completed Oct 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants