Commit Graph

29 Commits

Author SHA1 Message Date
Easwar Swaminathan dfcabe08c6
xds: cleanup bootstrap processing functionality (#7299) 2024-06-06 15:09:39 -07:00
Zach Reyes 9199290ff8
xds: Move bootstrap config to internal/xds (#7182) 2024-05-03 16:51:11 -04:00
Easwar Swaminathan 6e6914a7af
completely delete WatchListener and WatchRouteConfig APIs (#6849) 2023-12-14 16:29:26 -08:00
Easwar Swaminathan 92f5ba9783
xdsclient: completely remove the old WatchCluster API (#6621) 2023-09-18 09:00:19 -07:00
Easwar Swaminathan ace808232f
xdsclient: close func refactor (#5926)
Fixes https://github.com/grpc/grpc-go/issues/5895
2023-01-18 11:32:40 -08:00
Menghan Li 0a68f8aff0
xds/federation: support federation in LRS (#5128) 2022-01-26 11:39:10 -08:00
Menghan Li c53203c581
xds/federation: support populating resource template in xds-resolver (#4900) 2021-11-08 14:17:48 -08:00
Menghan Li 79e9c9571a
xds/client: move unmarshal functions and types to a separate package (#4904) 2021-11-08 11:11:24 -08:00
Zach Reyes ad87ad0098
xds: Add support for Dynamic RDS in listener wrapper (#4655)
* Add support for Dynamic RDS in listener wrapper
2021-08-11 18:48:24 -04:00
Menghan Li ebfe3be62a
cluster_resolver: implement resource resolver to resolve EDS and DNS (#4531) 2021-07-12 16:42:02 -07:00
Menghan Li b3f274c2ba
xds/cluster_impl: fix cluster_impl not correctly starting LoadReport stream (#4566) 2021-06-29 11:45:16 -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 5c164e2b8f
xds: rename xds/internal/client package to xdsclient (#4511) 2021-06-03 16:10:21 -07:00
Menghan Li a712a73889
xds/cds: add separate fields for cluster name and eds service name (#4414) 2021-05-12 16:25:07 -07:00
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 f5c42ca714
xds/client: Export a method to return bootstrap config. (#4033) 2020-11-17 13:31:38 -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
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
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
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
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