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
Support FilterChain level Post xDS Hook #3307
Comments
So what you're looking for is to update the EnvoyGatewayExtension interface and add an additional method? Something like: service EnvoyGatewayExtension {
rpc PostRouteModify (PostRouteModifyRequest) returns (PostRouteModifyResponse) {};
rpc PostVirtualHostModify(PostVirtualHostModifyRequest) returns (PostVirtualHostModifyResponse) {};
rpc PostHTTPListenerModify(PostHTTPListenerModifyRequest) returns (PostHTTPListenerModifyResponse) {};
rpc PostTranslateModify(PostTranslateModifyRequest) returns (PostTranslateModifyResponse) {};
// PostFilterChainModify provides a way for extensions to modify a filter chains generated by Envoy Gateway
// before it is finalized.
rpc PostFilterChainModify(PostFilterChainModifyRequest) returns (PostFilterChainModifyResponse) {};
} The semantics could be that before |
Yes, additional method is used to control filter chain translated from Gateway listener, because xDS listener may have multiple filter chains.
It'll be better if Because if |
Or we can set Footnotes |
Description:
Proposal to add FilterChain level Post xDS Hook.
WHY?
Giving three Gateway Listeners, and suppose Envoy has supported
com.eg.filter_test
HTTP filter andhandshaker_test
custom handshaker.If I have these goals:
com.eg.filter_test
HTTP filter on HCM translated byhttp
Listener.handshaker_test
custom handshaker on FilterChain translated byhttps-foo
Listener.com.eg.filter_test
HTTP filter on HCM translated byhttps-bar
Listener.After all of xDS translations including xDS Hook, xDS resources should archive my goals.
http
Listener will be translated to xDS Listener similar like this:https-foo
andhttps-bar
Listeners will be translated to xDS Listener similar like this:In EG, HTTP Listener is translated to
default_filter_chain
of xDS Listener, HTTPS Listeners are translated to distinct FilterChain infilter_chains
of xDS Listener. Each Gateway Listener corresponds to single FilterChain in xDS Listener.So if I want to goals above, context indicating which FilterChain will be modified in the xDS Listener should be passed to extension server implements HTTPListener Hook.
Another way is to support FilterChain Hook, after FilterChain is translated from Gateway Listener, EG finds Policies attaching to this Gateway Listener and pass it to extension server.
[optional Relevant Links:]
The text was updated successfully, but these errors were encountered: