Skip to content
This repository has been archived by the owner on Jul 11, 2023. It is now read-only.

Add support for WebAssembly filters #1671

Closed
marcusschiesser opened this issue Sep 8, 2020 · 7 comments
Closed

Add support for WebAssembly filters #1671

marcusschiesser opened this issue Sep 8, 2020 · 7 comments
Labels
area/control-plane Related to OSM's control plane kind/feature-request Feature request priority/P3 P3 priority size/XL 20 days (4 weeks) stale

Comments

@marcusschiesser
Copy link

Please describe the Improvement and/or Feature Request
The Envoy proxies configured by OSM can be extended at runtime with filters that are running in a WebAssembly sandbox - similar like this Istio feature: https://istio.io/latest/docs/concepts/wasm/

I see two changes that need to be done to reach that goal:

  1. Using an Envoy proxy version that contains the WASM sandbox: https://github.com/envoyproxy/envoy-wasm
  2. Provide a possibility to configure the Envoys to use a WASM filter (e.g. similar like the EnvoyFilter approach)

Scope (please mark with X where applicable)

  • New Functionality [ ]
  • Install [ ]
  • SMI Traffic Access Policy [ ]
  • SMI Traffic Specs Policy [ ]
  • SMI Traffic Split Policy [ ]
  • Permissive Traffic Policy [ ]
  • Ingress [ ]
  • Egress [ ]
  • Envoy Control Plane [x]
  • CLI Tool [ ]
  • Metrics [ ]
  • Certificate Management [ ]
  • Sidecar Injection [ ]
  • Logging [ ]
  • Debugging [ ]
  • Tests [ ]
  • CI System [ ]
  • Project Release [ ]

Possible use cases
Users of OSM can implement whatever feature they need to modify the traffic themselves. OSM can stay light-weight and doesn't have to provide these features for every use-case.

@nojnhuh
Copy link
Contributor

nojnhuh commented Sep 9, 2020

We have some ongoing work experimenting with WASM to extend the stats Envoy tracks so we can implement SMI's metrics spec. I have some code on my fork that is functional but still very much WIP: https://github.com/nojnhuh/osm/tree/envoy-wasm

What I have so far isn't designed to be generalizable to any WASM extension, but we have #1376 open to track using Envoy's xDS to configure each proxy more generally, so we'll definitely keep this use case in mind for that.

@SanyaKochhar SanyaKochhar added the area/control-plane Related to OSM's control plane label Sep 15, 2020
@draychev draychev added the size/XL 20 days (4 weeks) label Jan 26, 2021
@draychev draychev added this to Planned & Scoped in OSM Roadmap via automation Jan 29, 2021
@draychev draychev added this to the v0.8.0 milestone Jan 29, 2021
@michelleN michelleN removed this from the v0.8.0 milestone Feb 13, 2021
@NomadXD
Copy link

NomadXD commented Mar 17, 2021

Is this open for GSOC 2021 ? If so , I would like to work on this issue. I have some experience with implementing L7 C++ filters in envoy, building the envoy binary using bazel and configuring them through the go-control-plane. Regarding the languages , I have worked with golang and have some basic knowledge in rust (willing to learn).

@nojnhuh nojnhuh moved this from Planned & Scoped to In progress (Active Development) in OSM Roadmap Jul 26, 2021
@nojnhuh nojnhuh added this to the v0.10.0 milestone Jul 26, 2021
@nojnhuh nojnhuh self-assigned this Jul 26, 2021
@nojnhuh
Copy link
Contributor

nojnhuh commented Aug 10, 2021

I've been looking into this and have put together thoughts on how this might work in this doc: https://docs.google.com/document/d/16C8Oyq2QOLKHGhPfXsk4Kl0wCMU-VWsslSlmOQeJbRQ/edit?usp=sharing

The permissions on the doc aren't open for comments, but feel free to request access to comment or > quote the doc and leave comments here.

@draychev draychev modified the milestones: v0.10.0, vNext Aug 19, 2021
@nojnhuh nojnhuh moved this from In progress (Active Development) to Planned & Scoped in OSM Roadmap Sep 7, 2021
@snehachhabria snehachhabria removed this from the vNext milestone Feb 2, 2022
@snehachhabria
Copy link
Contributor

@nojnhuh please could you share your status on this issue. If you are no longer working on this, please could you move the item to the project backlog and unassing yourself

@nojnhuh nojnhuh moved this from Planned & Scoped to Backlog in OSM Roadmap Feb 2, 2022
@nojnhuh nojnhuh removed their assignment Feb 2, 2022
@snehachhabria snehachhabria removed this from Backlog in OSM Roadmap Feb 2, 2022
@steeling steeling added this to the vFuture milestone Feb 25, 2022
@github-actions
Copy link

Added default label kind/needed. Please consider re-labeling this issue appropriately.

@steeling steeling added priority/P3 P3 priority kind/feature-request Feature request and removed kind/needed labels Jul 15, 2022
@trstringer trstringer removed this from the vFuture milestone Nov 14, 2022
@github-actions
Copy link

github-actions bot commented Feb 3, 2023

This issue will be closed due to a long period of inactivity. If you would like this issue to remain open then please comment or update.

@github-actions github-actions bot added the stale label Feb 3, 2023
@github-actions
Copy link

Issue closed due to inactivity.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area/control-plane Related to OSM's control plane kind/feature-request Feature request priority/P3 P3 priority size/XL 20 days (4 weeks) stale
Projects
None yet
Development

No branches or pull requests

9 participants