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

router: Add path rewrite via regex #1

Closed
wants to merge 83 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
a857219
ratelimit: revert `revert rate limit failure mode config` and add tes…
ramaraochavali Aug 31, 2018
9c492a0
Support Envoy to fetch secrets using SDS service. (#4256)
JimmyCYJ Aug 31, 2018
42f6048
Proto string issue fix (#4320)
mrice32 Aug 31, 2018
3553461
fuzz: fix H2 codec fuzzer post #4262. (#4311)
htuch Aug 31, 2018
af1183c
Re-enable TcpProxySslIntegrationTest and make the tests pass again. (…
ggreenway Aug 31, 2018
00ffe44
utility: fix strftime overflow handling. (#4321)
htuch Aug 31, 2018
0c2e998
tcp-proxy: fixing a TCP proxy bug where we attempted to readDisable a…
alyssawilk Sep 4, 2018
e947a27
router: minor doc fixes in stream idle timeout (#4329)
ramaraochavali Sep 4, 2018
f13ef24
docs: remove reference to deprecated value field (#4322)
danielhochman Sep 4, 2018
cddc732
CONTRIBUTING: Document 'kick-ci' trick. (#4335)
dnoe Sep 4, 2018
0a1e92a
test: fix heap use-after-free in ~IntegrationTestServer. (#4319)
htuch Sep 4, 2018
d243cd6
test: set to zero when start_time exceeds limit (#4328)
dio Sep 4, 2018
1485a13
lua: make sure resetting dynamic metadata wrapper when request info i…
dio Sep 4, 2018
0b7e3b5
test: Remove declared but undefined class methods (#4297)
curiouserrandy Sep 4, 2018
07efc6d
fix static initialization fiasco problem (#4314)
zyfjeff Sep 4, 2018
2d155f9
ppc64le build (#4183)
clnperez Sep 4, 2018
69474b3
admin: order stats in clusters json admin (#4306)
ramaraochavali Sep 4, 2018
7bc210e
test: fixing interactions between waitFor and ignore_spurious_events …
alyssawilk Sep 4, 2018
83487f6
tls: update BoringSSL to ab36a84b (3497). (#4338)
PiotrSikora Sep 4, 2018
752483e
Fixing the fix (#4333)
alyssawilk Sep 4, 2018
c6bfc7d
time: Event::TimeSystem abstraction to make it feasible to inject tim…
jmarantz Sep 5, 2018
5d73187
rbac: update the authenticated.user to a StringMatcher. (#4250)
yangminzhu Sep 5, 2018
aa06142
test: Stop fake_upstream methods from accidentally succeeding (#4232)
mkbehr Sep 5, 2018
ae6a252
router: fix matching when all domains have wildcards (#4326)
talnordan Sep 5, 2018
e34dcd6
Fix crash in tcp_proxy (#4323)
ggreenway Sep 5, 2018
f936fc6
ssl: serialize accesses to SSL socket factory contexts (#4345)
akonradi Sep 5, 2018
763f2a7
thrift: refactor Thrift router to allow protocol upgrade (#4286)
zuercher Sep 5, 2018
ee710d0
Add terminal attribute to request hash. (#4292)
stevenzzzz Sep 5, 2018
7707c3b
fix time_since_epoch different in different os default return precisi…
zyfjeff Sep 6, 2018
1537e68
test: another echo_integration_test fix (#4350)
zuercher Sep 6, 2018
c4211b3
not to writeQueued if cq is drained (#4356)
qiwzhang Sep 6, 2018
b15a0cd
http: remove double 100 headers ASSERT from H2 codec. (#4313)
htuch Sep 6, 2018
adda579
test: run main_common_test with IPv4 and v6 (#4365)
akonradi Sep 6, 2018
6e58926
docs: ForwardAction => RouteAction in endpoint docs (#4362)
julia-stripe Sep 7, 2018
12957a2
overload: add a file-based injected resource monitor (#4298)
eziskind Sep 7, 2018
166dddb
upstream: replace std::shared_timed_mutex with absl::Mutex (#4347)
akonradi Sep 7, 2018
d8ee853
dns: switch to callback exception wrapping. (#4366)
htuch Sep 7, 2018
c886007
time: Rename time_source_ and timeSource() to time_system_ and timeSy…
jmarantz Sep 7, 2018
b5ba7f8
admin: add /memory for inspection of heap usage (#4361)
ambuc Sep 7, 2018
3879b1b
resource_monitors: convert tests to use timeSystem v. timeSource (#4375)
zuercher Sep 7, 2018
a50ac37
[thrift_proxy] Add and implement weighted clusters to thrift.RouteAct…
brirams Sep 7, 2018
1ee6213
Update dependencies, standardize on retrieval via tag where available…
moderation Sep 7, 2018
5fc21b2
Revert benchmark dependency to commit that removes a feature that rel…
moderation Sep 7, 2018
cce8cf8
docs: fix links in websocket documentation. (#4372)
ggreenway Sep 9, 2018
fedaac9
sds/dns: fix late SDS exception throw during c-ares callbacks. (#4377)
htuch Sep 10, 2018
8ac535b
fuzz: ensure HCM fuzzer always has a request method. (#4378)
htuch Sep 10, 2018
68595ce
test: use explicit port/param map constructors (#4370)
akonradi Sep 10, 2018
89d8a20
grpc_json_transcoder: remove Trailer headers from http/1 responses (#…
joshuarubin Sep 10, 2018
f75577d
upstream: add interfaces for priority/host retry selection extension …
snowp Sep 10, 2018
d2fa5f3
test: Add matchers for testing HeaderMaps. (#4279)
mkbehr Sep 10, 2018
287bbde
Cleaning up ClangyTidy issues. (#4387)
kmyerson Sep 11, 2018
140f63c
Dependency: Upgrade to lightstep-tracer-cpp 0.8.0 & opentracing-cpp 1…
moderation Sep 11, 2018
5c3169f
docs: fix non-rendered character in domains docs (#4399)
junr03 Sep 11, 2018
1ce25a7
time: Plumb in TimeSystem into the integration test framework (#4341)
jmarantz Sep 11, 2018
a3c7442
thrift_proxy: fix early close bug for calls (#4369)
zuercher Sep 11, 2018
976991c
restarter: python3 support (#4398)
asottile Sep 12, 2018
2d141b7
ci: Copy WORKSPACE instead of using api_dependencies (#4413)
Sep 12, 2018
260798f
thrift_proxy: use per-upstream sequence ids (#4364)
zuercher Sep 12, 2018
325d5b1
admin: add /stats filtering capability (#4371)
ambuc Sep 13, 2018
c734a4a
ssl: clarify exception when tls_certificates are missing (#4412)
cmluciano Sep 13, 2018
5b0bcb2
test: improve error output of router_check (#4392)
snowp Sep 13, 2018
3b3c28a
[envoy/router] Move MetadataMatchCriteriaImpl implementation to its o…
brirams Sep 13, 2018
ee23b24
format: forbid use of std::atomic_* free functions (#4348)
akonradi Sep 14, 2018
b0ff481
Creating JwksFetcher interface and impl v2 (#4242)
nickrmc83 Sep 14, 2018
c32aed9
[thrift_proxy] Add metadata_match to RouteAction and WeightedClusters…
brirams Sep 14, 2018
62eb123
router: implement RetryHostPredicate (#4385)
snowp Sep 14, 2018
e29d239
thrift_proxy: fix another variant of the early close bug (#4418)
zuercher Sep 14, 2018
35ec541
http: add overload action for closing new streams (#4126)
eziskind Sep 14, 2018
fcdc64b
config: fix stats inconsistency between xds and ads (#4381)
ramaraochavali Sep 14, 2018
23e8e12
Use gRPC local channel credentials (#4395)
JimmyCYJ Sep 17, 2018
b3645c2
test: add explicit ctor/dtor to more mocks (#4423)
snowp Sep 17, 2018
d646949
bug_fix: modified HTTP and gRPC clients to support response status on…
Sep 17, 2018
2ee64ff
common: extract buffer and thrift proxy refactors to a separate commi…
jkemv Sep 17, 2018
fcafc2d
time: Remove all usages of chrono::*::now() and instead plumb in Time…
jmarantz Sep 17, 2018
03e714e
test: Create SimulateTimeSystem for running tests (#4340)
jmarantz Sep 17, 2018
480ad1a
upstream: additional log lines during cluster initialization (#4436)
ramaraochavali Sep 17, 2018
15cfc5a
Fetch certificate validation context using SDS service. (#4355)
JimmyCYJ Sep 17, 2018
4715bfa
cluster: Use SimulatedTimeSystem for cluster tests rather than mock t…
jmarantz Sep 18, 2018
1d46c75
docs: replace v1 API links to v2 ones (#4415)
taiki45 Sep 18, 2018
21c6d13
thrift: implement Twitter protocol variant (#4363)
zuercher Sep 18, 2018
7f899f5
Refactor SecretManagerImpl to templatize findOrCreate method. (#4448)
JimmyCYJ Sep 18, 2018
445a673
router: plumb through max_host_selection_count (#4443)
snowp Sep 18, 2018
0be6f97
router: add path rewrite via regex
gabrieltaylor Sep 12, 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
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -214,3 +214,17 @@ git push origin -f

Note, that in general rewriting history in this way is a hinderance to the review process and this
should only be done to correct a DCO mistake.

## Triggering CI re-run without making changes

Sometimes CI test runs fail due to obvious resource problems or other issues
which are not related to your PR. It may be desirable to re-trigger CI without
making any code changes. Consider adding an alias into your `.gitconfig` file:

```
[alias]
kick-ci = !"git commit -s --allow-empty -m 'Kick CI' && git push"
```

Once you add this alias you can issue the command `git kick-ci` and the PR
will be sent back for a retest.
2 changes: 2 additions & 0 deletions DEPRECATED.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ A logged warning is expected for each deprecated item that is in deprecation win
* 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.
* Use of the string `user` field in `Authenticated` in [rbac.proto](https://github.com/envoyproxy/envoy/blob/master/api/envoy/config/rbac/v2alpha/rbac.proto)
is deprecated in favor of the new `StringMatcher` based `principal_name` field.

## Version 1.7.0

Expand Down
1 change: 1 addition & 0 deletions api/docs/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ proto_library(
"//envoy/config/ratelimit/v2:rls",
"//envoy/config/rbac/v2alpha:rbac",
"//envoy/config/resource_monitor/fixed_heap/v2alpha:fixed_heap",
"//envoy/config/resource_monitor/injected_resource/v2alpha:injected_resource",
"//envoy/config/trace/v2:trace",
"//envoy/config/transport_socket/capture/v2alpha:capture",
"//envoy/data/accesslog/v2:accesslog",
Expand Down
6 changes: 6 additions & 0 deletions api/envoy/admin/v2alpha/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,9 @@ api_proto_library_internal(
srcs = ["metrics.proto"],
visibility = ["//visibility:public"],
)

api_proto_library_internal(
name = "memory",
srcs = ["memory.proto"],
visibility = ["//visibility:public"],
)
4 changes: 2 additions & 2 deletions api/envoy/admin/v2alpha/clusters.proto
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ message HostStatus {
// Address of this host.
envoy.api.v2.core.Address address = 1;

// Mapping from the name of the statistic to the current value.
map<string, SimpleMetric> stats = 2;
// List of stats specific to this host.
repeated SimpleMetric stats = 2;

// The host's current health status.
HostHealthStatus health_status = 3;
Expand Down
19 changes: 19 additions & 0 deletions api/envoy/admin/v2alpha/memory.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
syntax = "proto3";

package envoy.admin.v2alpha;

// [#protodoc-title: Memory]

// Proto representation of the internal memory consumption of an Envoy instance. These represent
// values extracted from an internal TCMalloc instance. For more information, see the section of the
// docs entitled ["Generic Tcmalloc Status"](http://gperftools.github.io/gperftools/tcmalloc.html).
message Memory {

// The number of bytes allocated by the heap for Envoy. This is an alias for
// `generic.current_allocated_bytes`.
uint64 allocated = 1;

// The number of bytes reserved by the heap but not necessarily allocated. This is an alias for
// `generic.heap_size`.
uint64 heap_size = 2;
}
5 changes: 4 additions & 1 deletion api/envoy/admin/v2alpha/metrics.proto
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@ message SimpleMetric {
GAUGE = 1;
}

// Type of metric represented.
// Type of the metric represented.
Type type = 1;

// Current metric value.
uint64 value = 2;

// Name of the metric.
string name = 3;
}
11 changes: 5 additions & 6 deletions api/envoy/api/v2/auth/cert.proto
Original file line number Diff line number Diff line change
Expand Up @@ -232,21 +232,22 @@ message CommonTlsContext {
// relaxed in the future.
repeated TlsCertificate tls_certificates = 2 [(validate.rules).repeated .max_items = 1];

// [#not-implemented-hide:]
// Configs for fetching TLS certificates via SDS API.
repeated SdsSecretConfig tls_certificate_sds_secret_configs = 6;

oneof validation_context_type {
// How to validate peer certificates.
CertificateValidationContext validation_context = 3;

// [#not-implemented-hide:]
// Config for fetching validation context via SDS API.
SdsSecretConfig validation_context_sds_secret_config = 7;
}

// Supplies the list of ALPN protocols that the listener should expose. In
// practice this is likely to be set to one of two values (see the
// :ref:`codec_type <config_http_conn_man_codec_type>` parameter in the HTTP connection
// manager for more information):
// :ref:`codec_type
// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.codec_type>`
// parameter in the HTTP connection manager for more information):
//
// * "h2,http/1.1" If the listener is going to support both HTTP/2 and HTTP/1.1.
// * "http/1.1" If the listener is only going to support HTTP/1.1.
Expand Down Expand Up @@ -302,7 +303,6 @@ message DownstreamTlsContext {
}

// [#proto-status: experimental]
// [#not-implemented-hide:]
message SdsSecretConfig {
// Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
// When both name and config are specified, then secret can be fetched and/or reloaded via SDS.
Expand All @@ -312,7 +312,6 @@ message SdsSecretConfig {
}

// [#proto-status: experimental]
// [#not-implemented-hide:]
message Secret {
// Name (FQDN, UUID, SPKI, SHA256, etc.) by which the secret can be uniquely referred to.
string name = 1;
Expand Down
2 changes: 1 addition & 1 deletion api/envoy/api/v2/core/address.proto
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ message SocketAddress {
// in :ref:`FilterChainMatch <envoy_api_msg_listener.FilterChainMatch>`.] When used
// within an upstream :ref:`BindConfig <envoy_api_msg_core.BindConfig>`, the address
// controls the source address of outbound connections. For :ref:`clusters
// <config_cluster_manager_cluster>`, the cluster type determines whether the
// <envoy_api_msg_Cluster>`, the cluster type determines whether the
// address must be an IP (*STATIC* or *EDS* clusters) or a hostname resolved by DNS
// (*STRICT_DNS* or *LOGICAL_DNS* clusters). Address resolution can be customized
// via :ref:`resolver_name <envoy_api_field_core.SocketAddress.resolver_name>`.
Expand Down
11 changes: 6 additions & 5 deletions api/envoy/api/v2/core/base.proto
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ message Locality {

// Defines the local service zone where Envoy is running. Though optional, it
// should be set if discovery service routing is used and the discovery
// service exposes :ref:`zone data <config_cluster_manager_sds_api_host_az>`,
// service exposes :ref:`zone data <envoy_api_field_endpoint.LocalityLbEndpoints.locality>`,
// either in this message or via :option:`--service-zone`. The meaning of zone
// is context dependent, e.g. `Availability Zone (AZ)
// <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
Expand Down Expand Up @@ -49,9 +49,10 @@ message Node {
// Defines the local service cluster name where Envoy is running. Though
// optional, it should be set if any of the following features are used:
// :ref:`statsd <arch_overview_statistics>`, :ref:`health check cluster
// verification <config_cluster_manager_cluster_hc_service_name>`,
// :ref:`runtime override directory <config_runtime_override_subdirectory>`,
// :ref:`user agent addition <config_http_conn_man_add_user_agent>`,
// verification <envoy_api_field_core.HealthCheck.HttpHealthCheck.service_name>`,
// :ref:`runtime override directory <envoy_api_msg_config.bootstrap.v2.Runtime>`,
// :ref:`user agent addition
// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.add_user_agent>`,
// :ref:`HTTP global rate limiting <config_http_filters_rate_limit>`,
// :ref:`CDS <config_cluster_manager_cds>`, and :ref:`HTTP tracing
// <arch_overview_tracing>`, either in this message or via
Expand Down Expand Up @@ -170,7 +171,7 @@ message DataSource {
}

// Configuration for transport socket in :ref:`listeners <config_listeners>` and
// :ref:`clusters <config_cluster_manager_cluster>`. If the configuration is
// :ref:`clusters <envoy_api_msg_Cluster>`. If the configuration is
// empty, a default transport socket implementation and configuration will be
// chosen based on the platform and existence of tls_context.
message TransportSocket {
Expand Down
4 changes: 2 additions & 2 deletions api/envoy/api/v2/core/config_source.proto
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ message AggregatedConfigSource {
}

// Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
// <config_cluster_manager_cluster>`, :ref:`routes
// <config_http_conn_man_route_table>`, :ref:`endpoints
// <config_cluster_manager>`, :ref:`routes
// <envoy_api_msg_RouteConfiguration>`, :ref:`endpoints
// <arch_overview_service_discovery>` etc. may either be sourced from the
// filesystem or from an xDS API source. Filesystem configs are watched with
// inotify for updates.
Expand Down
7 changes: 7 additions & 0 deletions api/envoy/api/v2/core/grpc_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,11 @@ message GrpcService {
DataSource cert_chain = 3;
}

// Local channel credentials. Only UDS is supported for now.
// See https://github.com/grpc/grpc/pull/15909.
message GoogleLocalCredentials {
}

// See https://grpc.io/docs/guides/auth.html#credential-types to understand Channel and Call
// credential types.
message ChannelCredentials {
Expand All @@ -53,6 +58,8 @@ message GrpcService {

// https://grpc.io/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
google.protobuf.Empty google_default = 2;

GoogleLocalCredentials local_credentials = 3;
}
}

Expand Down
3 changes: 2 additions & 1 deletion api/envoy/api/v2/endpoint/endpoint.proto
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ message LbEndpoint {
// balancer to select endpoints in a cluster for a given request. The filter
// name should be specified as *envoy.lb*. An example boolean key-value pair
// is *canary*, providing the optional canary status of the upstream host.
// This may be matched against in a route's ForwardAction metadata_match field
// This may be matched against in a route's
// :ref:`RouteAction <envoy_api_msg_route.RouteAction>` metadata_match field
// to subset the endpoints considered in cluster load balancing.
core.Metadata metadata = 3;

Expand Down
Loading