-
Notifications
You must be signed in to change notification settings - Fork 487
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
Add timeouts to destination connection details #89
Comments
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
xref #184 |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Rotten issues close after 30d of inactivity. Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
@fejta-bot: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/reopen |
@robscott: Reopened this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/lifecycle frozen |
I've spent some time digging into just how portable this could be, and unfortunately it looks like there is quite a bit of variation on how different projects handle this. One of the most broadly supported concepts is that of a request or read timeout, here are some examples of how that is defined:
At first glance, there appears to be some level of potential portability here, but even these relatively similar definitions have some divergence in what they're doing. When we start to look a bit more broadly, we can see that implementations like nginx and caddyserver have very different timeout configurations that would simply not be portable with any of what's specified above. I think @hbagdi summarized this well in a related Slack thread today:
I'm interested in some additional perspective here - did we miss any paths to portability here? If not, maybe we should close out this issue? |
I think the way @hbagdi laid it out is both clear and correct. There's just too much variability here to really be able to make these settings portable. But the other part of what he said is probably addressable under this issue, namely having a single spot in the API where you put timeouts, and a standard shape of thing to put there, probably a CRD per underlying implementation or something? That would let an implementation easily check if it supported a particular timeout set, or could translate the timeouts, and if not, keeps the config confined to one spot. |
One question: How many different types of timeouts are supported for each of the variants?
But the specific (which byte) qualifies is up to the implementation? Do we need to be 100% proscriptive or is it still useful at a high level and point the user to the specific documentation when they have to get into the weeds? |
I think @robscott's review showed that even the definitions of what a particular timeout is are really varied between implementations. So I don't know if even that level of generic timeout is possible (because different implementations will have timeouts that may add up to that timeout or something). |
Timeouts in general are a incompatible, but there are some general use cases that might be able to help us
Orthogonal to these issues is how to handle idle sessions. So maybe an approach for the portable API is to represent timeouts as profiles that an implementation can use to do the right thing (or expand into something specific)? |
#713 covers this in some sense. |
Yeah I think that's probably the most fitting solution here. /close |
@robscott: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Add Mesh CRDs
What would you like to be added:
Destination service should include connect, read and write timeouts to be used by the proxy in addition to specifying a port (#48) and service name. This should be per service configuration as services of different types can requires different timeouts based on the workloads.
Why is this needed:
All proxies and LB implementation have timeouts that can be defined for establishing a TCP connection, read timeouts, write timeouts, sometimes referred to as idle timeouts.
/kind feature
The text was updated successfully, but these errors were encountered: