Commit Graph

45 Commits

Author SHA1 Message Date
Doug Fawley 74fe073e9a
Revert "xds: require router filter when filters are empty" (#4556)
This reverts commit 00ae0c57cc.
2021-06-17 16:53:52 -07:00
Aliaksandr Mianzhynski 00ae0c57cc
xds: require router filter when filters are empty (#4553) 2021-06-17 10:23:18 -07:00
Zach Reyes 633fbe4dfe
xds: generate per-request hash config selector (#4525)
* xds: generate per-request hash in config selector
2021-06-17 09:00:05 -04:00
Doug Fawley 6351a55c38
xds: remove env var protetion of advanced routing features (#4529) 2021-06-10 09:33:06 -07:00
Menghan Li b1418a6e74
xds: export XDSClient interface and use it in balancer tests (#4510)
- xdsclient.New returns the interface now
- xdsclient.SetClient and xdsclient.FromResolverState take and return the interface now
- cleanup xds balancer tests to pass xds_client in resolver state
2021-06-08 16:05:50 -07:00
Doug Fawley d30e2c91a0
xds/resolver: test xds client closed by resolver Close (#4509) 2021-06-07 17:13:48 -07:00
Doug Fawley 7beddeea91
cleanup: remove "Interface" as suffix of (almost all) interface names (#4512) 2021-06-04 08:58:26 -07:00
Doug Fawley 5c164e2b8f
xds: rename xds/internal/client package to xdsclient (#4511) 2021-06-03 16:10:21 -07:00
Doug Fawley 0439465fe2
xds_resolver: fix flaky Test/XDSResolverDelayedOnCommitted (#4393)
Before this change, if two xds client updates came too close together, the second one could replace the first one.  The fix is to wait for the effects of the first update before sending the second update.  I injected a synthetic delay into handling the updates from the channel to reproduce this flake 100%, and confirmed this change fixes it.

As part of this change I also noticed that we're actually calling the context cancellation function twice via defers, and never the cancel function from the test setup, so I fixed that, too.
2021-05-07 11:57:56 -07:00
Doug Fawley 74fe6eaa41
github: testing action workflow improvements and update to test Go1.16 (#4358) 2021-04-22 14:59:51 -07:00
Zach Reyes 1c598a11a4
Move exponential backoff to DNS resolver from resolver.ClientConn (#4270) 2021-04-20 13:20:09 -04:00
Menghan Li 1895da54b0
xds/resolver: fix panic when two LDS updates are receives without RDS in between (#4327)
Also confirmed that the LDS updates shouldn't trigger state update without the
RDS.
2021-04-08 11:34:02 -07:00
Menghan Li d26af8e391
admin: implement admin services (#4274) 2021-03-22 15:14:11 -07:00
Doug Fawley 61f0b5fa7c
client: implement proper config selector interceptors (#4235) 2021-03-05 13:31:34 -08:00
Doug Fawley 60843b1066
xds: add support for HTTP filters (gRFC A39) (#4206) 2021-02-25 14:04:15 -08:00
Doug Fawley 083393f287
xds/resolver: fix resource deletion (#4143) 2021-01-08 16:47:46 -08:00
Doug Fawley 6a318bb011
xds: add HTTP connection manager max_stream_duration support (#4122) 2021-01-08 10:14:53 -08:00
Doug Fawley 15458d2820
xds: implement RouteAction timeout support (#4116) 2020-12-17 10:40:27 -08:00
Easwar Swaminathan 20f4a84610
xds: Expect certprovider bootstrap configs when xdsCreds are in use (#4111) 2020-12-15 14:46:55 -08:00
Doug Fawley 4cd551eca7
xds: split routing balancer into config selector + cluster manager (#4083) 2020-12-15 14:01:04 -08:00
Menghan Li 40076094f6
xds: call xdsclient.New instead of getting xds_client from attributes (#4032) 2020-11-19 13:15:38 -08:00
Easwar Swaminathan 22dba5eb4b
xds: Remove usages of grpc.WithInsecure(). (#4028) 2020-11-12 12:13:25 -08:00
Menghan Li 6caf9d8621
xds: make xds client a singleton (#4015)
- xdsclient.New() no longer takes any input, all configs are from bootstrap file
  - added a NewForTesting()
- The returned *Client is a wrapper of the underlying client implementation, for ref-couting
- xds-resolver and xds-server no longer calls bootstrap.NewConfig. It only calls xdsclient.New()
2020-11-12 11:08:36 -08:00
Menghan Li 71ef09e69a
xdsResolver: call WatchListener and WatchRDS, instead of WatchService (#3972) 2020-10-27 15:56:59 -07:00
Menghan Li 4270c3cfce
xds bootstrap: support insecure and make Creds required (#3881) 2020-09-17 11:05:45 -07:00
Easwar Swaminathan 9ec6f11015
xds: Exit from run() goroutine when resolver is closed. (#3882) 2020-09-16 14:53:49 -07:00
Easwar Swaminathan d25c71b543
testutils: Add a context parameter to the Receive() method. (#3835) 2020-08-27 13:55:15 -07:00
Easwar Swaminathan 97c30a1419
xds: Client refactor in preparation for xDS v3 support (#3743) 2020-07-30 10:27:09 -07:00
Menghan Li 7408372e0e
xdsrouting: remove env variable for routing (#3754) 2020-07-27 13:55:02 -07:00
Menghan Li a1ace9105a
xdsrouting: resolver to generate service config with routes, and pick routing balancer (#3751) 2020-07-22 14:36:22 -07:00
Menghan Li 6e77a8b2f6
xds: delete experimental package and experimental scheme (#3729) 2020-07-16 13:37:27 -07:00
Easwar Swaminathan d8193ee9cc
xds: Add v3 support for client bootstrap. (#3723) 2020-07-09 16:23:28 -07:00
Menghan Li cb7f5de3ff
xds: handle errors in xds resolver (#3651) 2020-06-02 13:17:04 -07:00
Menghan Li d071d56834
xds: handle weighted cluster as route action (#3613) 2020-05-26 13:58:04 -07:00
Menghan Li 96e5c84cc8
xds: rename resolver scheme to xds (#3621)
https://github.com/grpc/grpc-go/pull/3621
2020-05-19 10:04:23 -07:00
Menghan Li 95c834a73c
xds: resolver handle good update after getting an error (#3374) 2020-02-12 11:11:21 -08:00
Menghan Li 1f66bc9efb
xds: propogate bootstrap error to grpc.Dial (#3330) 2020-01-23 12:45:58 -08:00
Easwar Swaminathan 8a65b8453b
xds: client test cleanup. (#3284) 2019-12-27 15:00:59 -08:00
Easwar Swaminathan 9819552c93
xds: Improve xds_resolver_test.go (#3259)
Also get rid of the testutils.XDSClient type. We have a new
testutils/fakexds/Client type which will be used in tests going forward.
2019-12-19 09:21:11 -08:00
Easwar Swaminathan 11399004a9
xds: resolver test cleanup (#3233)
This PR also adds a new testutils directory with a fake client and a
channel which supports a timed receive operation. In follow up PRs, we
can move other common test stuff like the fake server etc to this
directory and cleanup more tests.
2019-12-10 11:20:06 -08:00
Easwar Swaminathan 5d4cc8affe
xds: Implementation of xds_resolver using LDS/RDS (#3183)
xds: Implementation of xds_resolver using LDS/RDS
2019-11-18 17:46:14 -08:00
Doug Fawley 2cb07fcd90
resolver: rename Option to Options, leaving type aliases for now (#3175) 2019-11-12 15:23:46 -08:00
Menghan Li b09352fc84
xds: add new fields to XDSConfig (#3100)
Fields are added in: https://github.com/grpc/grpc-proto/pull/64

Other changes:
 - Move XDSConfig from internal to balancer
   - Later we will add a separate config for CDS balancer
 - generate service_config.pb.go and test with json generated from proto message
2019-11-05 09:17:10 -08:00
Doug Fawley ed563a02ea
resolver: add State fields to support error handling (#2951) 2019-10-04 12:59:43 -07:00
Easwar Swaminathan dc1875474e
Implementation of the xds_experimental resolver. (#2967)
This resolver doesn't do much at this point, except returning an empty
address list and a hard-coded service config which picks the xds
balancer with a round_robin child policy.

Also moved the xdsConfig struct to the xds/internal package and exported
it as LBConfig, so that both the resolver and the balancer packages can
make use of this.
2019-08-21 11:24:53 -07:00