dynamic_modules: adds a matcher based on Dynamic Modules#43408
dynamic_modules: adds a matcher based on Dynamic Modules#43408agrawroh merged 6 commits intoenvoyproxy:mainfrom
Conversation
|
CC @envoyproxy/api-shepherds: Your approval is needed for changes made to |
6fe2aff to
38f7d23
Compare
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
38f7d23 to
dc75975
Compare
wbpcode
left a comment
There was a problem hiding this comment.
Thanks for your contribution. Could you share your original requirement here and see is there easier way to go? (although I didn't against this, but also think we may needn't add dynamic module at everywhere if we have some simpler solution.)
/wait-any
api/envoy/extensions/matching/input_matchers/dynamic_modules/v3/dynamic_modules.proto
Outdated
Show resolved
Hide resolved
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
@wbpcode Thanks for taking a look! Today we run a sidecar (via ExtAuthZ) that inspects the incoming OAuth token, extracts claims from the JWT payload, and combines them with other request headers to make routing decisions. After this, the sidecar forces a route re-match in Envoy. The goal for us is to eliminate the sidecar entirely and move this logic into Envoy itself via a Dynamic Module matcher. This would gives us the ability to implement arbitrarily complex matching logic without the latency and operational overhead of a separate process. I could imagine many other additional use-cases which we're looking to consolidate:
|
Signed-off-by: Rohit Agrawal <rohit.agrawal@databricks.com>
Description
This PR adds a dynamic module input matcher extension and HTTP data input which allows implementing custom matching logic in external languages (Rust, Go, C) via dynamic modules. This enables a lot of use-cases where we need to write some advanced logic for route matching.
Commit Message: dynamic_modules: adds a matcher based on Dynamic Modules
Additional Description: Added a dynamic module input matcher extension and HTTP data input which allows implementing custom matching logic in external languages via dynamic modules.
Risk Level: Low
Testing: Added Tests
Docs Changes: Added
Release Notes: Added