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

Feature Request: Enable the envoy route cache control mechanism for the wasm plugin #351

Open
WeixinX opened this issue May 23, 2023 · 0 comments

Comments

@WeixinX
Copy link
Collaborator

WeixinX commented May 23, 2023

Why do you need it?

目前需要以 Wasm 插件的方式实现 rewrite #334 和 header control #335,来为用户提供更灵活的控制模式。

而两者均需要修改请求头信息(例如 rewrite 需要修改 :authority, :path)。在 Wasm 插件中如果修改头部信息,会使得 HCM (Http Connection Manager) 在开始执行 http filter chain 之前设置的 cached route 被清除、并重新选择,这将导致无法正确路由到原本的上游(详细请见 HTTP filter chain processing)。

另外,rewrite 和 header control 注解分别是通过 RouteActionRoute 层级的 envoy 配置实现的,它们应该都是在路由确定之后、转发到上游之前这个时间节点内对头部信息进行修改。

因此,为了让 rewrite, header control Wasm 插件能够达到预期效果,我们需要为 Wasm 提供某种控制机制,保证原本的缓存路由不被重新设置。

How could it be?

在 envoy 侧实现暂停清理 cached route 的开关(可能还涉及其他控制机制),并为 Wasm 插件提供 API。

@johnlanni johnlanni self-assigned this May 24, 2023
@johnlanni johnlanni removed the help wanted Extra attention is needed label Feb 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Todo
Development

No branches or pull requests

3 participants