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

Pull latest changes from the master #1

Merged
merged 46 commits into from
Jul 27, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
a0b6243
Move well known names from ALL_CAPS to CamelCase. (#3893)
mrice32 Jul 18, 2018
3a56d21
coverage: remove deprecated NOT_IMPLEMENTED (#3889)
zuercher Jul 19, 2018
0e71582
add resource monitor framework (#3848)
eziskind Jul 19, 2018
0f68948
authz: fix RBAC filter config PB docs (#3895)
talnordan Jul 19, 2018
a8fa0c6
http/2: use hpack_table_size to control both encoder and decoder. (#3…
PiotrSikora Jul 19, 2018
b14ce1d
syscall: latch errno deeper in the buffer implementation (#3880)
venilnoronha Jul 19, 2018
982ebd2
load_stats: fix for Google import. (#3900)
htuch Jul 19, 2018
b202f89
Remove the deprecated redis_health_check field (#3896)
dio Jul 19, 2018
8ed7c15
api: ensure HeaderValue keys are non-empty. (#3901)
htuch Jul 19, 2018
20296c5
http: ensure the per-stream idle timer is disabled at stream end. (#3…
htuch Jul 20, 2018
b8e019f
Update gauges when a subset LB is destroyed (#3917)
rgs1 Jul 20, 2018
598f5c9
listener: fix ipv6 error (#3912)
ramaraochavali Jul 20, 2018
3cc6e3c
fuzz: fuzzer for HeaderMapImpl. (#3921)
htuch Jul 22, 2018
a5d9885
util: Add test for checking the format of proto files. (#3923)
jmarantz Jul 23, 2018
783fda9
http1: fix crash when upstream sends extra CR/LF between responses (#…
mattklein123 Jul 23, 2018
569d70a
test: fixing a downstream tsan failure (#3926)
alyssawilk Jul 23, 2018
a5478ee
alts: add gRPC TSI frame protector (#3873)
lizan Jul 23, 2018
391150a
coverage: coverage runs for a single test target. (#3922)
htuch Jul 23, 2018
672083c
http: global connection manager per-stream idle timeouts. (#3879)
htuch Jul 23, 2018
3a5d126
lua: add requestInfo():dynamicMetadata() API (#3800)
dio Jul 23, 2018
c4b6aec
jwt_authn docs: fix Protobuf YAML examples (#3924)
talnordan Jul 23, 2018
e021e4d
Add integration tests for static secrets (#3910)
qiwzhang Jul 23, 2018
7c11e92
tcp/conn_pool: improve interface for callers (#3903)
zuercher Jul 23, 2018
445e746
docs: adding flaky test instructions (#3931)
alyssawilk Jul 23, 2018
0a43ae8
Update network utility getoriginaldst for IPv6 (#3933)
cmluciano Jul 24, 2018
eefd06d
Add new field to access log (#3907)
rgs1 Jul 24, 2018
8b3aae8
health_check: remove deprecated endpoint field (#3891)
mrice32 Jul 24, 2018
b32eabf
upstream: implement Cluster's load_assignment field (#3864)
dio Jul 24, 2018
e89c9d6
build: Initial bazel build file changes for Windows (#3884)
sesmith177 Jul 24, 2018
a03c343
Fix envoy-filter-example build (#3947)
sesmith177 Jul 24, 2018
1f445bd
build: external deps build on Windows (#3892)
sesmith177 Jul 24, 2018
0621763
listener: deprecate sni_domains. (#3948)
PiotrSikora Jul 25, 2018
1ef23d4
tls: update BoringSSL to 372daf70 (3440). (#3946)
PiotrSikora Jul 25, 2018
ec0179a
router: add response/request header options at route level (#3838)
derekargueta Jul 25, 2018
8459237
fuzz: fixes oss-fuzz: 8363 (#3905)
anirudhmurali Jul 25, 2018
f3b1100
websocket: fixing websocket to consistently not send connection: clos…
alyssawilk Jul 25, 2018
3ee3aa3
Add support for drop category policy and reporting (#3894)
vishalpowar Jul 25, 2018
9b64f4b
build: BUILD file changes necessary for #3892 (#3909)
sesmith177 Jul 26, 2018
5beff99
Fix run_envoy_docker.sh 'do_ci.sh ' does not work behind proxy (#3956)
249043822 Jul 26, 2018
72a964c
thrift_proxy: simple thrift router (#3863)
zuercher Jul 26, 2018
4868061
thirdpary: explicit libdir path (#3962)
vbatts Jul 26, 2018
42109e5
health check: allow request header formatting for HTTP health check r…
dio Jul 26, 2018
0e2c795
fuzz: fixes oss-fuzz: 9204 (#3935)
anirudhmurali Jul 27, 2018
1dfde38
thrift_proxy: move protobuf to api/config hierarchy (#3963)
zuercher Jul 27, 2018
280baee
rds: split subscription out from RdsRouteConfigProviderImpl (#3960)
lizan Jul 27, 2018
324e628
syscall: refactor address APIs for deeper errno latching (#3897)
venilnoronha Jul 27, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
references:
envoy-build-image: &envoy-build-image
envoyproxy/envoy-build:18cdf0f806b66bef60ee64248352a8b3bc4ace7d
envoyproxy/envoy-build:1ef23d481a4701ad4a414d1ef98036bd2ed322e7

version: 2
jobs:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ SOURCE_VERSION
.cache
.vimrc
.vscode
.vs
5 changes: 4 additions & 1 deletion DEPRECATED.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ A logged warning is expected for each deprecated item that is in deprecation win

* Use of the v1 API is deprecated. See envoy-announce
[email](https://groups.google.com/forum/#!topic/envoy-announce/oPnYMZw8H4U).
* Use of the legacy
* Use of the legacy
[ratelimit.proto](https://github.com/envoyproxy/envoy/blob/b0a518d064c8255e0e20557a8f909b6ff457558f/source/common/ratelimit/ratelimit.proto)
is deprecated, in favor of the proto defined in
[date-plane-api](https://github.com/envoyproxy/envoy/blob/master/api/envoy/service/ratelimit/v2/rls.proto)
Expand All @@ -23,6 +23,9 @@ A logged warning is expected for each deprecated item that is in deprecation win
is deprecated. Please use the new `upgrade_configs` in the
[HttpConnectionManager](https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/filter/network/http_connection_manager/v2/http_connection_manager.proto)
instead.
* Setting hosts via `hosts` field in `Cluster` is deprecated. Use `load_assignment` instead.
* Use of `response_headers_to_*` and `request_headers_to_add` are deprecated at the `RouteAction`
level. Please use the configuration options at the `Route` level.

## Version 1.7.0

Expand Down
3 changes: 3 additions & 0 deletions api/STYLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,6 @@ the build system to prevent circular dependency formation. Package group
`//envoy/api/v2:friends` selects consumers of the core API package (services and configs)
and is the default visibility for the core API packages. The default visibility
for services and configs should be `//docs` (proto documentation tool).

Extensions should use the regular hierarchy. For example, configuration for network filters belongs
in a package under `envoy.config.filter.network`.
2 changes: 2 additions & 0 deletions api/envoy/api/v2/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ api_proto_library_internal(
"//envoy/api/v2/core:base",
"//envoy/api/v2/core:health_check",
"//envoy/api/v2/endpoint",
"//envoy/type:percent",
],
)

Expand All @@ -52,6 +53,7 @@ api_go_grpc_library(
"//envoy/api/v2/core:base_go_proto",
"//envoy/api/v2/core:health_check_go_proto",
"//envoy/api/v2/endpoint:endpoint_go_proto",
"//envoy/type:percent_go_proto",
],
)

Expand Down
9 changes: 7 additions & 2 deletions api/envoy/api/v2/cds.proto
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,13 @@ message Cluster {
// :ref:`STRICT_DNS<envoy_api_enum_value_Cluster.DiscoveryType.STRICT_DNS>`
// or :ref:`LOGICAL_DNS<envoy_api_enum_value_Cluster.DiscoveryType.LOGICAL_DNS>`,
// then hosts is required.
repeated core.Address hosts = 7;
//
// .. attention::
//
// **This field is deprecated**. Set the
// :ref:`load_assignment<envoy_api_field_Cluster.load_assignment>` field instead.
//
repeated core.Address hosts = 7 [deprecated = true];

// Setting this is required for specifying members of
// :ref:`STATIC<envoy_api_enum_value_Cluster.DiscoveryType.STATIC>`,
Expand All @@ -176,7 +182,6 @@ message Cluster {
// :ref:`endpoint assignments<envoy_api_msg_ClusterLoadAssignment>`.
// Setting this overrides :ref:`hosts<envoy_api_field_Cluster.hosts>` values.
//
// [#not-implemented-hide:]
ClusterLoadAssignment load_assignment = 33;

// Optional :ref:`active health checking <arch_overview_health_checking>`
Expand Down
2 changes: 1 addition & 1 deletion api/envoy/api/v2/core/base.proto
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ enum RequestMethod {
// Header name/value pair.
message HeaderValue {
// Header name.
string key = 1;
string key = 1 [(validate.rules).string.min_bytes = 1];

// Header value.
//
Expand Down
11 changes: 7 additions & 4 deletions api/envoy/api/v2/core/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,9 @@ message HealthCheck {
string service_name = 5;

// Specifies a list of HTTP headers that should be added to each request that is sent to the
// health checked cluster.
// health checked cluster. For more information, including details on header value syntax, see
// the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
repeated core.HeaderValueOption request_headers_to_add = 6;

// If set, health checks will be made using http/2.
Expand Down Expand Up @@ -152,16 +154,17 @@ message HealthCheck {
// TCP health check.
TcpHealthCheck tcp_health_check = 9;

// Redis health check.
RedisHealthCheck redis_health_check = 10;

// gRPC health check.
GrpcHealthCheck grpc_health_check = 11;

// Custom health check.
CustomHealthCheck custom_health_check = 13;
}

reserved 10; // redis_health_check is deprecated by :ref:`custom_health_check
// <envoy_api_field_core.HealthCheck.custom_health_check>`
reserved "redis_health_check";

// The "no traffic interval" is a special health check interval that is used when a cluster has
// never had traffic routed to it. This lower interval allows cluster information to be kept up to
// date, without sending a potentially large amount of active health checking traffic for no
Expand Down
36 changes: 30 additions & 6 deletions api/envoy/api/v2/eds.proto
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ option java_generic_services = true;

import "envoy/api/v2/discovery.proto";
import "envoy/api/v2/endpoint/endpoint.proto";
import "envoy/type/percent.proto";

import "google/api/annotations.proto";

Expand Down Expand Up @@ -50,12 +51,35 @@ message ClusterLoadAssignment {

// Load balancing policy settings.
message Policy {
// Percentage of traffic (0-100) that should be dropped. This
// action allows protection of upstream hosts should they unable to
// recover from an outage or should they be unable to autoscale and hence
// overall incoming traffic volume need to be trimmed to protect them.
// [#v2-api-diff: This is known as maintenance mode in v1.]
double drop_overload = 1 [(validate.rules).double = {gte: 0, lte: 100}];
reserved 1;

message DropOverload {
// Identifier for the policy specifying the drop.
string category = 1 [(validate.rules).string.min_bytes = 1];

// Percentage of traffic that should be dropped for the category.
envoy.type.Percent drop_percentage = 2;
}
// Action to trim the overall incoming traffic to protect the upstream
// hosts. This action allows protection in case the hosts are unable to
// recover from an outage, or unable to autoscale or unable to handle
// incoming traffic volume for any reason.
//
// At the client each category is applied one after the other to generate
// the 'actual' drop percentage on all outgoing traffic. For example:
//
// .. code-block:: json
//
// { "drop_overloads": [
// { "category": "throttle", "drop_percentage": 60 }
// { "category": "lb", "drop_percentage": 50 }
// ]}
//
// The actual drop percentages applied to the traffic at the clients will be
// "throttle"_drop = 60%
// "lb"_drop = 20% // 50% of the remaining 'actual' load, which is 40%.
// actual_outgoing_load = 20% // remaining after applying all categories.
repeated DropOverload drop_overloads = 2;
}

// Load balancing policy settings.
Expand Down
6 changes: 3 additions & 3 deletions api/envoy/api/v2/endpoint/endpoint.proto
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ message Endpoint {
// and will be resolved via DNS.
core.Address address = 1;

// [#not-implemented-hide:] The optional health check configuration.
// The optional health check configuration.
message HealthCheckConfig {
// Optional alternative health check port value.
//
Expand All @@ -40,8 +40,8 @@ message Endpoint {
uint32 port_value = 1;
}

// [#not-implemented-hide:] The optional health check configuration is used as
// configuration for the health checker to contact the health checked host.
// The optional health check configuration is used as configuration for the
// health checker to contact the health checked host.
//
// .. attention::
//
Expand Down
10 changes: 10 additions & 0 deletions api/envoy/api/v2/endpoint/load_report.proto
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,16 @@ message ClusterStats {
// deliberately dropped by the drop_overload policy and circuit breaking.
uint64 total_dropped_requests = 3;

message DroppedRequests {
// Identifier for the policy specifying the drop.
string category = 1 [(validate.rules).string.min_bytes = 1];
// Total number of deliberately dropped requests for the category.
uint64 dropped_count = 2;
}
// Information about deliberately dropped requests for each category specified
// in the DropOverload policy.
repeated DroppedRequests dropped_requests = 5;

// Period over which the actual load report occurred. This will be guaranteed to include every
// request reported. Due to system load and delays between the *LoadStatsRequest* sent from Envoy
// and the *LoadStatsResponse* message sent from the management server, this may be longer than
Expand Down
16 changes: 2 additions & 14 deletions api/envoy/api/v2/listener/listener.proto
Original file line number Diff line number Diff line change
Expand Up @@ -148,20 +148,8 @@ message FilterChainMatch {
// unless all connecting clients are known to use ALPN.
repeated string application_protocols = 10;

// If non-empty, a list of server names (e.g. SNI for TLS protocol) to consider when determining
// a filter chain match. Those values will be compared against the server names of a new
// connection, when detected by one of the listener filters.
//
// The server name will be matched against all wildcard domains, i.e. ``www.example.com``
// will be first matched against ``www.example.com``, then ``*.example.com``, then ``*.com``.
//
// Note that partial wildcards are not supported, and values like ``*w.example.com`` are invalid.
//
// .. attention::
//
// Deprecated. Use :ref:`server_names <envoy_api_field_listener.FilterChainMatch.server_names>`
// instead.
repeated string sni_domains = 1 [deprecated = true];
reserved 1;
reserved "sni_domains";
}

// A filter chain wraps a set of match criteria, an option TLS context, a set of filters, and
Expand Down
69 changes: 38 additions & 31 deletions api/envoy/api/v2/route/route.proto
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,15 @@ message VirtualHost {

// Specifies a list of HTTP headers that should be added to each request
// handled by this virtual host. Headers specified at this level are applied
// after headers from enclosed :ref:`envoy_api_msg_route.RouteAction` and before headers from the
// after headers from enclosed :ref:`envoy_api_msg_route.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
// details on header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
repeated core.HeaderValueOption request_headers_to_add = 7;

// Specifies a list of HTTP headers that should be added to each response
// handled by this virtual host. Headers specified at this level are applied
// after headers from enclosed :ref:`envoy_api_msg_route.RouteAction` and before headers from the
// after headers from enclosed :ref:`envoy_api_msg_route.Route` and before headers from the
// enclosing :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
// details on header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
Expand Down Expand Up @@ -148,6 +148,26 @@ message Route {
// specific; see the :ref:`HTTP filter documentation <config_http_filters>` for
// if and how it is utilized.
map<string, google.protobuf.Struct> per_filter_config = 8;

// Specifies a set of headers that will be added to requests matching this
// route. Headers specified at this level are applied before headers from the
// enclosing :ref:`envoy_api_msg_route.VirtualHost` and
// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
repeated core.HeaderValueOption request_headers_to_add = 9;

// Specifies a set of headers that will be added to responses to requests
// matching this route. Headers specified at this level are applied before
// headers from the enclosing :ref:`envoy_api_msg_route.VirtualHost` and
// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
// details on header value syntax, see the documentation on
// :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`.
repeated core.HeaderValueOption response_headers_to_add = 10;

// Specifies a list of HTTP headers that should be removed from each response
// to requests matching this route.
repeated string response_headers_to_remove = 11;
}

// Compared to the :ref:`cluster <envoy_api_field_route.RouteAction.cluster>` field that specifies a
Expand Down Expand Up @@ -176,8 +196,7 @@ message WeightedCluster {
// Specifies a list of headers to be added to requests when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_route.RouteAction`.
// Headers specified at this level are applied before headers from the enclosing
// :ref:`envoy_api_msg_route.RouteAction`,
// :ref:`envoy_api_msg_route.VirtualHost`, and
// :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_route.VirtualHost`, and
// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
Expand All @@ -186,8 +205,7 @@ message WeightedCluster {
// Specifies a list of headers to be added to responses when this cluster is selected
// through the enclosing :ref:`envoy_api_msg_route.RouteAction`.
// Headers specified at this level are applied before headers from the enclosing
// :ref:`envoy_api_msg_route.RouteAction`,
// :ref:`envoy_api_msg_route.VirtualHost`, and
// :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_route.VirtualHost`, and
// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
Expand Down Expand Up @@ -439,12 +457,11 @@ message RouteAction {
google.protobuf.Duration per_try_timeout = 3 [(gogoproto.stdduration) = true];
}

// Specifies the idle timeout for the route. If not specified, this defaults
// to 5 minutes. The default value was select so as not to interfere with any
// smaller configured timeouts that may have existed in configurations prior
// to the introduction of this feature, while introducing robustness to TCP
// connections that terminate without FIN. A value of 0 will completely
// disable the idle timeout.
// Specifies the idle timeout for the route. If not specified, there is no per-route idle timeout
// specified, although the connection manager wide :ref:`stream_idle_timeout
// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.stream_idle_timeout>`
// will still apply. A value of 0 will completely disable the route's idle timeout, even if a
// connection manager stream idle timeout is configured.
//
// The idle timeout is distinct to :ref:`timeout
// <envoy_api_field_route.RouteAction.timeout>`, which provides an upper bound
Expand Down Expand Up @@ -493,25 +510,14 @@ message RouteAction {
// https://github.com/lyft/protoc-gen-validate/issues/42 is resolved.]
core.RoutingPriority priority = 11;

// Specifies a set of headers that will be added to requests matching this
// route. Headers specified at this level are applied before headers from the
// enclosing :ref:`envoy_api_msg_route.VirtualHost` and
// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including details on
// header value syntax, see the documentation on :ref:`custom request headers
// <config_http_conn_man_headers_custom_request_headers>`.
repeated core.HeaderValueOption request_headers_to_add = 12;
// [#not-implemented-hide:]
repeated core.HeaderValueOption request_headers_to_add = 12 [deprecated = true];

// Specifies a set of headers that will be added to responses to requests
// matching this route. Headers specified at this level are applied before
// headers from the enclosing :ref:`envoy_api_msg_route.VirtualHost` and
// :ref:`envoy_api_msg_RouteConfiguration`. For more information, including
// details on header value syntax, see the documentation on
// :ref:`custom request headers <config_http_conn_man_headers_custom_request_headers>`.
repeated core.HeaderValueOption response_headers_to_add = 18;
// [#not-implemented-hide:]
repeated core.HeaderValueOption response_headers_to_add = 18 [deprecated = true];

// Specifies a list of HTTP headers that should be removed from each response
// to requests matching this route.
repeated string response_headers_to_remove = 19;
// [#not-implemented-hide:]
repeated string response_headers_to_remove = 19 [deprecated = true];

// Specifies a set of rate limit configurations that could be applied to the
// route.
Expand Down Expand Up @@ -712,8 +718,9 @@ message DirectResponseAction {
//
// .. note::
//
// Headers can be specified using *response_headers_to_add* in
// :ref:`envoy_api_msg_RouteConfiguration`.
// Headers can be specified using *response_headers_to_add* in the enclosing
// :ref:`envoy_api_msg_route.Route`, :ref:`envoy_api_msg_RouteConfiguration` or
// :ref:`envoy_api_msg_route.VirtualHost`.
core.DataSource body = 2;
}

Expand Down
11 changes: 3 additions & 8 deletions api/envoy/config/filter/http/health_check/v2/health_check.proto
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,8 @@ message HealthCheck {
// Specifies whether the filter operates in pass through mode or not.
google.protobuf.BoolValue pass_through_mode = 1 [(validate.rules).message.required = true];

// Specifies the incoming HTTP endpoint that should be considered the
// health check endpoint. For example */healthcheck*.
// Note that this field is deprecated in favor of
// :ref:`headers <envoy_api_field_config.filter.http.health_check.v2.HealthCheck.headers>`.
string endpoint = 2 [deprecated = true];
reserved 2;
reserved "endpoint";

// If operating in pass through mode, the amount of time in milliseconds
// that the filter should cache the upstream response.
Expand All @@ -36,8 +33,6 @@ message HealthCheck {

// Specifies a set of health check request headers to match on. The health check filter will
// check a request’s headers against all the specified headers. To specify the health check
// endpoint, set the ``:path`` header to match on. Note that if the
// :ref:`endpoint <envoy_api_field_config.filter.http.health_check.v2.HealthCheck.endpoint>`
// field is set, it will overwrite any ``:path`` header to match.
// endpoint, set the ``:path`` header to match on.
repeated envoy.api.v2.route.HeaderMatcher headers = 5;
}
Loading