Envoy should be able to describe (Wasm) ABIs it supports
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 437
Description
*Title*: Envoy should be able to describe (Wasm) ABIs it supports
*Context*:
* consider a use case of a marketplace with Wasm extensions for Envoy
* from a user perspective, it's important to know whether a given extension is supported by a particular Envoy distribution he is using right now
* the assumption is that an answer like "use Envoy vX.Y.Z+" is not good enough (a user might be using either a 3rd party closed source Envoy distro, or a nightly build of upstream Envoy, etc)
*Proposal*:
* Add to Envoy the ability to describe (Wasm) ABIs it supports
* The initial focus is on the offline scenario where it is a user, or a marketplace, or a vendor, who needs to know this info
* The online scenario, where it is a Control Plane who needs to know this info, is currently out of scope
*Example use cases*:
* a user runs `envoy --list-abis` to get the precise list of (Wasm) ABIs this particular Envoy distro supports, e.g.
```yaml
envoy:
version:
...
abis:
v1:
host:
network_filter:
...
http_filter:
...
access_log:
...
http_client:
proxy_http_call: SUPPORTED
grpc_client:
proxy_grpc_call: SUPPORTED
proxy_grpc_stream: SUPPORTED
proxy_grpc_send: SUPPORTED
tcp_client:
...
udp_client:
...
...
extension:
network_filter:
...
http_filter:
...
access_log:
...
http_client:
proxy_on_http_call_response: SUPPORTED
grpc_client:
proxy_on_grpc_create_initial_metadata: SUPPORTED
proxy_on_grpc_receive: DEPRECATED
tcp_client:
...
udp_client:
...
...
```
* a user then comes to a marketplace site, provides info from above and gets back the exact info on what extensions (and their versions) are applicable to him
* a marketplace runs `envoy --list-abis` on popular Envoy distributions (e.g. upstream, `getenvoy`, `istio`, `solo`, etc) to provide compatibility info in advance
* a vendor of a closed source Envoy distribution runs `envoy --list-abis` on his own binaries and submits this info to a marketplace in order to be present in the compatibility matrix for each extension in the catalog
Contributor guide
Assessment
This issue has not been assessed yet.