Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

State and Future of EnvoyGateway Extension Points #2025

Open
Xunzhuo opened this issue Oct 20, 2023 · 6 comments
Open

State and Future of EnvoyGateway Extension Points #2025

Xunzhuo opened this issue Oct 20, 2023 · 6 comments
Assignees
Labels
area/extensions help wanted Extra attention is needed kind/enhancement New feature or request
Milestone

Comments

@Xunzhuo
Copy link
Member

Xunzhuo commented Oct 20, 2023

Current State

In v0.4.0, eg introduces ExtensionManager, grpc based extension hooks, to dynamically modify xds resources generated by EG.

In v0.5.0, eg introduces EnvoyPatchPolicy, a CRD resource, to dynamically patch xds resource generated by EG.

In the two above approaches, the extension target is the whole xds resources. It unlocks the full power of xds for vendors/teams to extend EG abilities, which is powerful and flexible.

What`s More?

EnvoyProxy itself provides some extension http filters, which allows people dynamically extend envoyproxy without restarting it, like Lua, WASM and new introduced Go Extension Filter.

I propose EG to provide high level APIs(CRDs) to abstract these extension points. From my experience of using EnvoyFilter in istio, compared with the full xds patch/modify, these ways have more specific target scopes and easier to be control, which are safer , easier and less dangerous to be used.

ExtensionRef or PolicyAttachment ?

ExtensionRef can be used per-route-rule/per-backend, and PolicyAttachment can be used to whole Gateway/xRoute.

  • WASMFilter or WASMExtensionPolicy CRD
  • LuaFilter or LuaExtensionPolicy CRD
  • GoFilter or GoExtensionPolicy CRD
@Xunzhuo Xunzhuo added kind/enhancement New feature or request area/extensions labels Oct 20, 2023
@Xunzhuo Xunzhuo added this to the Backlog milestone Oct 20, 2023
@arkodg
Copy link
Contributor

arkodg commented Oct 20, 2023

Im a +1 on this idea, it can be a safer, less scoped way than EnvoyPatchPolicy of extending EG

@zirain
Copy link
Contributor

zirain commented Aug 15, 2024

@denniskniep is it a part of envoy core? if not, maybe we should wait for it.

@denniskniep
Copy link
Contributor

denniskniep commented Aug 15, 2024

@zirain
code is located in /contrib/golang folder of envoy repo in main branch:
https://github.com/envoyproxy/envoy/tree/main/contrib/golang

Current status is alpha

see here and here

What do you mean exactly with envoy core?

BTW: Status of WASM Filter is also alpha see here

@zirain
Copy link
Contributor

zirain commented Aug 16, 2024

can you use these filter with envoyproxy/envoy:<version> image instead of envoyproxy/envoy:contrib-<version>?

@denniskniep
Copy link
Contributor

denniskniep commented Aug 17, 2024

yes, its only available within contrib image (api docs)

Is there any document in envoy where roadmap or plans for these graduation from contrib to core are listed ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/extensions help wanted Extra attention is needed kind/enhancement New feature or request
Projects
Development

No branches or pull requests

6 participants