Commit Graph

4335 Commits

Author SHA1 Message Date
Eric Gribkoff de36e42458
Update README etc to reference 1.31.0 (#7267) 2020-07-30 08:50:21 -07:00
Eric Gribkoff 9eb33838ad
Update minimum Android API in README (#7265) 2020-07-29 14:55:24 -07:00
sanjaypujare 06ca927a64
xds: first part of MeshCaCertificateProvider (#7247) 2020-07-29 09:10:02 -07:00
Menghan Li d2182fe197
interop-testing: add path_matching and header_matching (#7254) 2020-07-28 14:07:43 -07:00
Eric Gribkoff 4fbe6bef7d
interop-testing: add flags to xds test client 2020-07-28 12:43:00 -07:00
Chengyuan Zhang f444b7bcc0
android, cronet, android-interop-testing, example/drop support for android SDK versions older than 16 (#7253) 2020-07-28 12:40:55 -07:00
ZHANG Dapeng 784e804259
xds: refactor usage of Node in Bootstrap to EnvoyProtoData.Node
In preparation for xds-v3 support.
2020-07-28 08:56:41 -07:00
ZHANG Dapeng 7949f65e0f
xds: remove GRPC_XDS_EXPERIMENTAL_ROUTING flag 2020-07-28 08:03:46 -07:00
ZHANG Dapeng 6ec9387cbc
core: refactor ClientTransportProvider to ClientStreamProvider
Replace the two APIs of ClientCallImpl.ClientTransportProvider with a single API: newStream().
2020-07-24 09:40:53 -07:00
Eric Anderson 8a792c3367 buildscripts: Fix check for java-example-hostname:latest tagging
The previous 'git ls-remote' was returning the tag-referenced commits via
vF.O.O^{} which was confusing the version check (as v1.30.0 would not match
v1.30.0^{}). Passing --refs filters those ^{} tags.

There was also a missing 'v' in the version check. It was added explicitly to
generate the list but not to check the result.
2020-07-24 09:22:05 -05:00
Ran 61fd6d3ecd
xds: fix missing @RunWith annotation. (#7245) 2020-07-23 12:58:24 -07:00
sanjaypujare c60f5ff95b
xds: implement STS based OAuth 2.0 credentials exchange (#7232) 2020-07-22 16:36:38 -07:00
Chengyuan Zhang e4215b422d
xds: routing policy should immediately update a picker that selects base on updated config (#7233)
The routing LB policy should immediately the Channel's picker that delegates picking to the updated routes. Otherwise, new RPCs will keep being sent through old routes even if they are removed. This change also includes the fix for syncing state change for child balancers in deactivated state.
2020-07-22 01:16:51 -07:00
Chengyuan Zhang 9f49e48237
xds: support load reporting all clusters option and fix actual report interval measurement (#7209)
- Add support for send_all_clusters field in LRS response. When it is set to true, just send load reports for clusters that the client is currently tracking (aka, is sending load to).

- The actual load report interval (in each ClusterStats message, which contains the stats for each cluster:eds_service) should be tracked individually.
2020-07-21 18:03:36 -07:00
Chengyuan Zhang 1e238ee2a0
xds: add header matching special cases for hiding/exposing some gRPC headers (#7224)
Expose "content-type" header (hard-coded) at header matching, pretend it's already there.
2020-07-21 18:02:29 -07:00
susinmotion 24731102c6
grpclb: Make ATTR_LB_ADDRS public (#7230) 2020-07-21 12:45:47 -07:00
ZHANG Dapeng 4edbe245f1
xds: import v3 proto for ADS service 2020-07-20 13:42:57 -07:00
Chengyuan Zhang b9d067677c
xds: implement the top-level LB policy (#7203)
The top-level LB policy, which is an aggregator for CDS policies. It maintains the lifecycle of CDS LB policy instances. The pick argument taken from the Channel contains the information to determine which child CDS policy instance should the picking operation be delegated to.

The implementation is similar to the action part of what we currently have in the routing policy. The existing routing policy will be refactored to two parts, with the route match part moved into ConfigSelector and action part being this top-level LB policy.
2020-07-20 12:12:59 -07:00
ZhenLian e7cd2299c4
xds: change package name for CEL lib (#7235) 2020-07-17 19:46:51 -07:00
ZHANG Dapeng 9f56b8cea2
api: change ConfigSelector.Result to use callback instead of interceptor
We found that the interceptor approach for `ConfigSelector` would be adding a layer of indirection for no gain: The API Result selectConfig(LoadBalancer.PickSubchannelArgs args) consumes headers among other inputs, because route matching might need to match the headers; and the API produces ClientInterceptor among other outputs. But the headers is not available until clientCall.start(listner, headers), whereas the interceptor need be applied to the call before clientCall.start(). So the input is not available until the output is applied. That means we will need to delay calling the downstream newCall() (which will either be RealChannel or the interceptor) until start() is called.

So we want to change to the other approach similar to what c-core is taking: Have `Result(Object config, CallOptions, Runnable committedCallback)`, where CallOption is the selector modified CallOption, and committedCallback is used to monitor the call lifecycle.
2020-07-17 13:33:44 -07:00
sanjaypujare 8ab2c75150
xds: fix DistributorWatcher to send last updates to newly added watchers (#7220) 2020-07-17 11:58:30 -07:00
Trustin Lee 1d443e0389
interop-testing: fix flakiness of deadlineExceeded test (#7202)
Increase the deadline amount to avoid the false positive of deadline exceeded due to the call is scheduled to start after the deadline.
2020-07-17 10:40:15 -07:00
ZHANG Dapeng d342b111f9
api: add InternalConfigSelector abstract class 2020-07-16 13:52:03 -07:00
Eric Anderson 44db31d147 benchmarks: Use correct classpath for scripts
'runtime' is the old classpath, pre-java-library plugin. We could swap to
'runtimeClasspath', but it is cleaner to just use startScript's defaults. We
already use that approach in interop-testing.

Fixes #7218
2020-07-16 13:00:01 -05:00
Chengyuan Zhang 92f4842f0f
xds: perform header matching on concatenated values (#7215)
Combine values of header fields with the same key to a comma-separated string before performing header matching.
2020-07-15 14:06:02 -07:00
Eric Gribkoff 7d97443cd7
Start 1.32.0 development cycle (#7214) 2020-07-15 13:51:06 -07:00
sanjaypujare 7047209ba3
xds: add meshca.proto from Istio repo (#7213) 2020-07-15 10:46:14 -07:00
ZHANG Dapeng bacd12ee0a
xds: delete deprecated xds-experimental scheme 2020-07-14 16:46:58 -07:00
Chengyuan Zhang 631e07f090
xds: fix lint (#7210) 2020-07-14 15:25:34 -07:00
cindyxue 47c6bfefe5
xds: Add a mock Cel library used for evaluation in Cel Engine (#7162)
* a mock Cel library used for authorization evaluation
2020-07-14 14:39:44 -07:00
Eric Anderson 3a43abef7b
interop-testing: Use normal runtimeOnly dep for xds (#7200)
This prevents grpc-xds and its transitive dependencies from being included
twice in distTar and distZip, which reduces the size from 60 MB to 40 MB. It
does mean that interop-testing as a whole depends on xds, but that should not
be an issue any longer. It was an issue before we started providing grpc-xds on
Maven Central.
2020-07-14 13:25:40 -07:00
Eric Anderson 3224c21afa core: Hide Javadoc for Internal* in-process transport classes
The first such class was added in fd5f4aac6.
2020-07-13 15:51:12 -05:00
sanjaypujare 016ff64a8b
xds: implement CertificateProviderRegistry & CertificateProviderStore (#7188) 2020-07-10 16:30:17 -07:00
ZHANG Dapeng 791b48e79d
Revert "core: Fix migrating deframer compatibility with RetriableStream"
This reverts commit bcb287b in #7195.
2020-07-10 08:43:30 -07:00
Eric Anderson dc30d85765 Swap to new Google Maven Central mirror URL
As seen at https://maven-central.storage.googleapis.com/index.html . The old
URL still has content, but apparently is no longer being updated. For example,
jetty-alpn-agent-2.0.10.pom is not present.
2020-07-10 08:45:49 -05:00
Eric Anderson bcb287bb15 core: Fix migrating deframer compatibility with RetriableStream
Fixes #7168
2020-07-09 16:46:00 -05:00
Eric Anderson cb5ceaaaa0 interop-testing: Add integration test for RetriableStream 2020-07-09 16:46:00 -05:00
Eric Anderson 825c34f606 core: Delay client listener exception notification until normal close
This should avoid messages being leaked when a Listener throws an exception and
the executor is shut down immediately after the call completes. This is related
to #7105 but a different scenario and we aren't aware of any user having
observed the previous behavior.

Note also this does _not_ fix the similar case of reordering caused by
delayedCancelOnDeadlineExceeded().
2020-07-09 12:20:41 -05:00
ZHANG Dapeng cd70dcbfae
xds: fix lint 2020-07-08 17:21:16 -07:00
ZHANG Dapeng c756c2db56
xds: parse resources in ADS response to envoy-api v3 objects
Continuation of #7169 to parse all resources in ADS response to v3 objects. In this PR we still only send v2 requests to xDS server (No v3 bootstrap or env flag support).
2020-07-06 21:55:25 -07:00
sanjaypujare 2dc670163f
xds: convert and rename ReferenceCountingSslContextProviderMap to generic ReferenceCountingMap (#7181) 2020-07-06 18:08:25 -07:00
Eric Gribkoff 784e6b62f4
Upgrade to Gradle 6.5.1 2020-07-06 15:40:45 -07:00
ZHANG Dapeng eaa98f8d91
xds: parse Listener update as xDS v3 resource
This is part of xDS v3 support as per go/grpc-xds-v3-support

In this PR:
- still only send v2 requests to xDS server (No v3 bootstrap or env flag support)
- parse Listener update as v3 proto
- Refactor SDS's Listener watcher to use enovy v3 API
- still parse other resources as v2 proto.
2020-07-06 10:25:46 -07:00
Jihun Cho c6bd97245c
core: disable MigratingThreadDeframer (#7177) 2020-07-01 15:39:13 -07:00
Jihun Cho b8822e56af
rls: OobChannel doesn't use directpath by default (#7176) 2020-07-01 12:02:49 -07:00
Eric Anderson 21269bd188
stub: Clarify ServerCallStreamObserver cancellation
This avoids the "changes" description, which could be understood to mean that
the transition is important instead of the steady-state and thus a callback
might not be called (which is not the case).

Much of the language was copied from ServerCall.
2020-07-01 11:58:53 -07:00
Eric Anderson f5b976dd5c stub: Remove useless private method indirection
The method did nothing; just inline its contents. Brought up as part of #7173's
review.
2020-07-01 13:34:22 -05:00
sanjaypujare e2de5f1a65
xds: 1st part of implementation of CertificateProvider for agentless (#7170) 2020-07-01 09:35:05 -07:00
Eric Anderson 2dab629a0a api: Deprecate ManagedChannelBuilder.nameResolverFactory
It has been our intention for years to remove nameResolverFactory. We should
make it clear to users to avoid new code depending on it and so they can tell
us why they need it so we can provide replacements.
2020-06-30 14:34:35 -05:00
Eric Anderson debc3cdc79 api: Add documentation for Provider SPI discovery 2020-06-30 14:34:35 -05:00