envoyproxy/envoy
View on GitHubEnvoy should be able to describe (Wasm) ABIs it supports
Open
#10,395 opened on Mar 15, 2020
area/wasmhelp wanted
Repository metrics
- Stars
- (27,997 stars)
- PR merge metrics
- (Avg merge 8d) (378 merged PRs in 30d)
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-abisto get the precise list of (Wasm) ABIs this particular Envoy distro supports, e.g.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-abison 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-abison 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