Open
Description
Envoy has support for setting the MaxStreamDuration both globally and on a route, I suspect configuring this instead of an envoy route timeout would resolve some SSL issues we are seeing when a downstream system has it's request interrupted halfway through a stream entry (when requesting streaming data from one of our streaming endpoints).
Contour currently has no way of passing this configuration through to Envoy.
I have had a preliminary look at the contour code and the changes required to support setting this either globally or per route seem straightforward to me:
Route Specific:
- Add
MaxStreamDuration: envoy.Timeout(r.TimeoutPolicy.MaxStreamDuration)
to theRouteAction
inrouteRoute()
- Add
MaxStreamDuration: string `json:"maxStreamDuration,omitempty"`
to theTimeoutPolicy
struct - Add
MaxStreamDuration
and error message totimeoutPolicy()
Global Default:
- Add
MaxStreamDuration timeout.Setting
to the Timeouts struct - Add
MaxStreamDuration
and an error message toParseTimeoutPolicy()
function - Add
MaxStreamDuration: *string `json:"maxStreamDuration,omitempty"`
to theTimeoutParameters
struct
I'm happy to open a PR to implement this.
Activity