I deployed a Golang HTTP client that makes HTTP requests periodically, about once every 10 seconds, to L7 endpoints which are exposed with envoy. This is done to check if the endpoints are alive as end-to-end testing.
While running it, I experienced the same error as reported in the issue about envoy.
This comment says that the error has something to do with keepalive, and this comment says that this issue is actually solved by configuring the tcp_keepalive under upstream_connection_options.
I think it's better to get the upstream_connection_options fields configurable because some developers seem to have faced this issue.
Any thoughts on this?
In general, we try not to just lift and copy Envoy structs into HTTPProxy, for three reasons:
That said, we already set TCP keepalives for the listener itself (see #2633 and #2652 for greater configurability of it), but we don't currently for the upstream.
I think that adding TCP keepalive configurability to the upstreams seems to make sense, and we could probably reuse the same keepalive configuration struct for the listener as well, which would help with #2652.
Most helpful comment
In general, we try not to just lift and copy Envoy structs into HTTPProxy, for three reasons:
That said, we already set TCP keepalives for the listener itself (see #2633 and #2652 for greater configurability of it), but we don't currently for the upstream.
I think that adding TCP keepalive configurability to the upstreams seems to make sense, and we could probably reuse the same keepalive configuration struct for the listener as well, which would help with #2652.