envoy
envoy copied to clipboard
envoy-1.23 issue ExtProcPerRoute override ExtProc with ExtensionWithMatcher
Description:
The following configuration was working in 1.22 while 1.23 seem to have issues: without ExtensionWithMatcher ExtProcPerRoute working just fine.
main plugin configuration:
- name: composite
typed_config:
"@type": type.googleapis.com/envoy.extensions.common.matching.v3.ExtensionWithMatcher
extension_config:
name: envoy.filters.http.ext_proc
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor
failure_mode_allow: false
processing_mode:
request_header_mode: "SKIP"
response_header_mode: "SKIP"
request_body_mode: "NONE"
response_body_mode: "NONE"
request_trailer_mode: "SKIP"
response_trailer_mode: "SKIP"
grpc_service:
envoy_grpc:
cluster_name: cluster
xds_matcher:
matcher_tree:
input:
name: response-header
typed_config:
"@type": type.googleapis.com/envoy.type.matcher.v3.HttpResponseHeaderMatchInput
header_name: :status
exact_match_map:
map:
200:
action:
name: skip
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.common.matcher.action.v3.SkipFilter
with ExtProcPerRoute route override:
typed_per_filter_config:
envoy.filters.http.ext_proc:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute
overrides:
processing_mode:
request_header_mode: "SEND"
response_header_mode: "SEND"
request_body_mode: "NONE"
response_body_mode: "NONE"
request_trailer_mode: "SKIP"
response_trailer_mode: "SKIP"
pls let me know if additional details are necessary
cc @pradeepcrao @snowp
I would like to know what issue do you met? A configuration error on start up, or an incorrect behavior during runtime?
override is not working, at runtime, in this case overrides saying send header data (request_header_mode: "SEND" response_header_mode: "SEND") while main plugin configuration asking to SKIP sending request and response headers
I suspect it works as expected. The typed_per_filter_config override is applied to envoy.filters.http.ext_proc, while the HTTP filter chain has a composite only. I guess composite filter does not support to passthrough typed_per_filter_config to its insides.
I suspect it works as expected. The
typed_per_filter_configoverride is applied toenvoy.filters.http.ext_proc, while the HTTP filter chain has acompositeonly. I guess composite filter does not support to passthroughtyped_per_filter_configto its insides.
@zhxie as I mentioned it was working just fine in 1.22 and before that, so this behavior was introduced after 1.23