envoyproxy / envoyproxy/envoy

Envoy should be able to describe (Wasm) ABIs it supports

Open
#10,395 3 comments 0 reactions 0 assignees View on GitHub
area/wasm help wanted
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.