Commit Graph

107 Commits

Author SHA1 Message Date
Zach Reyes 45e60095da
xds: add support for aggregate clusters (#4332)
Add support for aggregate clusters in CDS Balancer
2021-05-12 17:28:49 -04:00
Easwar Swaminathan 8bf65c69b9
xds: use same format while registering and watching resources (#4422) 2021-05-12 10:18:50 -07:00
Easwar Swaminathan aff517ba8a
xds: make e2e tests use a single management server instance (#4399) 2021-05-07 14:35:48 -07:00
Easwar Swaminathan 40b25c5b2c
xds: set correct order of certificate providers in handshake info (#4350) 2021-05-05 12:34:15 -07:00
Doug Fawley 11bd77660d
xds: work around xdsclient race in fault injection test (#4377) 2021-05-04 14:51:32 -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
Menghan Li 1a870aec2f
xds/clusterimpl: trigger re-resolution on subconn transient_failure (#4314) 2021-04-15 15:08:03 -07:00
Menghan Li d26af8e391
admin: implement admin services (#4274) 2021-03-22 15:14:11 -07:00
Menghan Li 95173a53fe
csds: implement CSDS service handler (#4243) 2021-03-16 14:05:05 -07:00
Easwar Swaminathan a45f13b160
xds: Support server_listener_resource_name_template (#4233) 2021-03-10 09:26:23 -08:00
Doug Fawley fc8f38cccf
xds: add support for more resources to e2e server (#4230) 2021-03-01 13:02:55 -08:00
Easwar Swaminathan c949703b4b
xds/cdsbalancer: Override UpdateAddresses() (#4227) 2021-02-26 08:45:26 -08:00
Easwar Swaminathan 9dfe677337
balancer: Add UpdateAddresses() to balancer.ClientConn interface (#4215) 2021-02-25 15:48:39 -08:00
Menghan Li ad24ab52b1
priority: the implementation (#4070) 2021-02-10 10:38:04 -08:00
Easwar Swaminathan 9280052d36
balancergroup: Propagate balancer.BuildOptions to child policies (#4184) 2021-02-07 19:55:33 -08:00
Menghan Li 0bc741730b
xds: report drops by circuit breaking (#4171) 2021-01-28 16:47:07 -08:00
Doug Fawley 15458d2820
xds: implement RouteAction timeout support (#4116) 2020-12-17 10:40:27 -08:00
Easwar Swaminathan 2fad6bf4da
xds: Implement server-side security (#4092) 2020-12-16 10:27:18 -08:00
Doug Fawley 668e3ae6d5
testing: stop listening on externally-visible devices (#4112) 2020-12-15 15:56:06 -08:00
Doug Fawley 4cd551eca7
xds: split routing balancer into config selector + cluster manager (#4083) 2020-12-15 14:01:04 -08:00
Easwar Swaminathan 96a834a12f
xds: `server_features` should be a child of `xds_servers` and not a sibling (#4087) 2020-12-08 10:27:46 -08:00
Easwar Swaminathan 5b1874ab74
xds: Handle child policy configs properly (#4071) 2020-12-03 09:00:33 -08:00
Menghan Li 4a0125ac58
roundrobin: strip attributes from addresses (#4024) 2020-11-30 14:20:03 -08:00
Easwar Swaminathan 8736dcd05b
xds: Accept a net.Listener in Serve(). (#4052) 2020-11-20 12:42:06 -08:00
Easwar Swaminathan 230166b6df
xds: Use management server from go-control-plane. (#4039) 2020-11-18 09:46:14 -08:00
Easwar Swaminathan f5c42ca714
xds/client: Export a method to return bootstrap config. (#4033) 2020-11-17 13:31: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
Easwar Swaminathan 28c130fe3d
xds: Minor improvements to xDS server API and test. (#4026) 2020-11-11 10:12:52 -08:00
Easwar Swaminathan bc01f3fa87
certprovider: API tweaks. (#3987) 2020-11-06 11:24:57 -08:00
Easwar Swaminathan fe9c99ff4c
xds: CDS balancer security integration. (#3955) 2020-10-30 15:52:14 -07:00
Menghan Li 71ef09e69a
xdsResolver: call WatchListener and WatchRDS, instead of WatchService (#3972) 2020-10-27 15:56:59 -07:00
Menghan Li a223251d8b
lrs: handle multiple clusters in LRS stream (#3935) 2020-10-26 15:47:47 -07:00
Easwar Swaminathan 4e932bbcb0
xds/testutils: Minor cleanup. (#3898) 2020-09-22 16:00:38 -07:00
Menghan Li 0dc9986169
lrs: add a layer for clusters in load store (#3880) 2020-09-22 14:26:20 -07:00
Easwar Swaminathan b5802b5f3b
xds: v3 support for LRS. (#3856) 2020-09-01 16:56:52 -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 7419b444ee
xds: Improve TestClientWrapperWatchEDS. (#3783)
* One subtest should not depend on a previous one. So, refactored the test to be a single one, instead of having multiple subtests.
* Added a channel on the fake server to notify when it receives a connection. This test was sometimes failing because it went ahead and sent EDS requests and expected responses, before the connection to the fake server was up.
2020-08-06 15:36:15 -07:00
Easwar Swaminathan 97c30a1419
xds: Client refactor in preparation for xDS v3 support (#3743) 2020-07-30 10:27:09 -07:00
Easwar Swaminathan d8193ee9cc
xds: Add v3 support for client bootstrap. (#3723) 2020-07-09 16:23:28 -07:00
Easwar Swaminathan 4241954407
xds: Move test only utility method to testutils. (#3715) 2020-06-25 20:03:47 -07:00
Menghan Li 806b6fc596
xds: handle errors in cds balancer (#3649) 2020-05-29 09:43:40 -07:00
Menghan Li acd5f84904
xds: handle errors in eds balancer (#3645) 2020-05-28 09:54:18 -07:00
Menghan Li d071d56834
xds: handle weighted cluster as route action (#3613) 2020-05-26 13:58:04 -07:00
Doug Fawley 4eb418e5b2
balancer: move Balancer and Picker to V2; delete legacy API (#3431) 2020-04-28 14:52:49 -07:00
Menghan Li ff40ef4227
xds: refactor xds_client (#3477)
This PR refactors xds_client to support multiples watches. Those watches can be for the same type and same resource_name.

There's upper level `Client` and lower level `v2client`. Before this change, all logic was in `v2client`, and `Client` was a thin wrapper.

This PR moves some of the functionality from `v2client` to `Client`. New layers:

- Upper level `Client`
  - keeps a list of watchers
    - provides method `func WatchXXX() (cancel func())`
    - has `WatchService()` which involves `LDS` and `RDS`
  - handles resources from the xDS responses and dispatch to the watchers
    - including multiple watchers for the same resource_name
  - keeps cache
    - and checks cache for new watches

- Lower level `v2client`
  - is a dumb client that
    - manages ADS stream
    - sends a new xDS request when add/remove watch
    - parses xDS responses
      - It doesn't call watchers, but forwards all parsed results to upper Client
    - handles ACK/NACK
  - supports `addWatch(type, name)` and `removeWatch(type, name)`
    - instead of `func watchCDS() func()`, which is now moved up to upper `Client`

Also includes other changes:
 - Corresponding test changes (some tests for `v2client` were moved to `Client`)
 - Method and type renaming
   - CDS/EDS -> Cluster/Endpoints
 - callback functions all accept updates as non-pointers
2020-04-15 14:32:31 -07:00
Zou Nengren 46c755aff1
rename to LocalityID (#3522) 2020-04-14 09:04:53 -07:00
Menghan Li a783b25fe5
internal: rename proto import to end with pb (#3523) 2020-04-13 12:37:38 -07:00
Menghan Li 98e4c7ad3e
xds: move balancer group to a separate package (#3493)
This PR moves balancer group to a separate package and exports the type with some methods. Balancer group will be used by the weighted_target policy.
2020-04-06 15:12:58 -07:00
Menghan Li 4e487c1661
xds: rename WatchEDS to WatchEndpoints in xds_client (#3447) 2020-03-12 13:42:44 -07:00
Easwar Swaminathan 8a65b8453b
xds: client test cleanup. (#3284) 2019-12-27 15:00:59 -08:00
Easwar Swaminathan fb8a097792
xds: Improve cdsbalancer_test.go (#3277)
* Use the fakexds.Client object instead of defining a new one
* Add CDS watch functionality to the fakexds.Client object
2019-12-19 13:47:34 -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 660df6a06b
xds: Improve xds_client_test.go (#3270)
Simplified the tests by only testing what is required and faking out
whatever can be faked out.

Also added a fakexds.Server implementation. Will switch other users of
the existing fakeserver implementation after this PR is merged.
2019-12-18 14:17:35 -08:00
Easwar Swaminathan d01454da4a
xds: Improve balancere/xds_test.go. (#3256) 2019-12-17 11:42:43 -08:00
Easwar Swaminathan d5c817b906
xds: Improve xds_lrs_test.go (#3251) 2019-12-12 12:04:14 -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