Skip to content

Proposal: add config blob discovery #11547

@kyessenov

Description

@kyessenov

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions