-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Proposal: add config blob discovery #11547
Copy link
Copy link
Open
Labels
area/xdsdesign proposalNeeds design doc/proposal before implementationNeeds design doc/proposal before implementationhelp wantedNeeds help!Needs help!
Description
This proposal is to add a generic Blob Discovery Service that allows the control plane to push arbitrary data blobs and keep them up to date using resource versions. The motivation is Wasm extension files which are realistically on the order of MBs. The current solutions have many issues:
- inlining MB sized binaries in LDS/RDS config is problematic and can cause head-of-line blocking in ADS;
- URL fetcher has no interaction with xDS subscriptions. That means first xDS update is always NACKed. URL fetches also retrieves the same resource repeatedly, and does not re-fetch automatically. The failure mode of fetch failing after ACK can be an unrecoverable configuration error.
The API extension is to add a Blob resource reference and Blob config source to RemoteDataSource.
Blob discovery service client would be similar to RDS behavior. It would maintain a list of blobs indexed by references from Wasm and other extensions.
The behavior change in Wasm extensions would be:
- Wasm issues a subscription for new blob references and puts the underlying listener into warming at first
- On the first update, the listener is activated
- On subsequent updates, Wasm performs an internal update (how it does merits more discussion, since creation and draining of VMs is expensive)
It is worth mentioning that BDS can also subsume SDS since the payload is mostly opaque in SDS.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/xdsdesign proposalNeeds design doc/proposal before implementationNeeds design doc/proposal before implementationhelp wantedNeeds help!Needs help!