diff --git a/envoy/api/v2/cds.proto b/envoy/api/v2/cds.proto index 3df92cf8..ada24b03 100644 --- a/envoy/api/v2/cds.proto +++ b/envoy/api/v2/cds.proto @@ -41,7 +41,7 @@ service ClusterDiscoveryService { // [#protodoc-title: Clusters] // Configuration for a single upstream cluster. -// [#comment:next free field: 29] +// [#comment:next free field: 30] message Cluster { // Supplies the name of the cluster which must be unique across all clusters. // The cluster name is used when emitting @@ -184,6 +184,10 @@ message Cluster { reserved 12; + // Additional options when handling HTTP requests. These options will be applicable to both + // HTTP1 and HTTP2 requests. + core.HttpProtocolOptions common_http_protocol_options = 29; + // Additional options when handling HTTP1 requests. core.Http1ProtocolOptions http_protocol_options = 13; diff --git a/envoy/api/v2/core/protocol.proto b/envoy/api/v2/core/protocol.proto index ad386b3a..0e602ffe 100644 --- a/envoy/api/v2/core/protocol.proto +++ b/envoy/api/v2/core/protocol.proto @@ -4,6 +4,7 @@ syntax = "proto3"; package envoy.api.v2.core; +import "google/protobuf/duration.proto"; import "google/protobuf/wrappers.proto"; import "validate/validate.proto"; @@ -17,6 +18,15 @@ option (gogoproto.equal_all) = true; message TcpProtocolOptions { } +message HttpProtocolOptions { + // [#not-implemented-hide:] + // The idle timeout for upstream connection pool connections. The idle timeout is defined as the + // period in which there are no active requests. If not set, there is no idle timeout. When the + // idle timeout is reached the connection will be closed. Note that request based timeouts mean + // that HTTP/2 PINGs will not keep the connection alive. + google.protobuf.Duration idle_timeout = 1 [(gogoproto.stdduration) = true]; +} + message Http1ProtocolOptions { // Handle HTTP requests with absolute URLs in the requests. These requests // are generally sent by clients to forward/explicit proxies. This allows clients to configure