From 50bd4bfd84d879d4b8e481d3ac499be8e90731a2 Mon Sep 17 00:00:00 2001 From: "update-envoy[bot]" <135279899+update-envoy[bot]@users.noreply.github.com> Date: Tue, 27 Feb 2024 19:15:30 +0000 Subject: [PATCH] ext_proc: allow override metadata without grpc_service (#31544) * ext_proc: allow override metadata without grpc_service allows `overrides.metadata` in `ExtProcPerRoute` that appends and overrides parent metadata: - match: ... route: ... typed_per_filter_config: envoy.filters.http.ext_proc: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExtProcPerRoute overrides: metadata: - key: "x-ext-proc-override" value: "route3-override" - key: "x-router3-metadata-append" value: "route3-metadata-append" http_filters: - name: envoy.filters.http.ext_proc typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor grpc_service: envoy_grpc: cluster_name: ext-proc-proxy timeout: 60s initial_metadata: - key: "x-ext-proc-override" value: "root" - key: "x-ext-proc-original" value: "root" that allows to have: x-ext-proc-override: route3-override x-router3-metadata-append: route3-metadata-append x-ext-proc-original: root --------- Signed-off-by: Ivan Prisyazhnyy Mirrored from https://github.com/envoyproxy/envoy @ 372a262894f028431cb84f3a1d361fb8fb6a2518 --- envoy/extensions/filters/http/ext_proc/v3/ext_proc.proto | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/envoy/extensions/filters/http/ext_proc/v3/ext_proc.proto b/envoy/extensions/filters/http/ext_proc/v3/ext_proc.proto index ebcc53d7..5ef01fd8 100644 --- a/envoy/extensions/filters/http/ext_proc/v3/ext_proc.proto +++ b/envoy/extensions/filters/http/ext_proc/v3/ext_proc.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package envoy.extensions.filters.http.ext_proc.v3; import "envoy/config/common/mutation_rules/v3/mutation_rules.proto"; +import "envoy/config/core/v3/base.proto"; import "envoy/config/core/v3/grpc_service.proto"; import "envoy/extensions/filters/http/ext_proc/v3/processing_mode.proto"; import "envoy/type/matcher/v3/string.proto"; @@ -273,7 +274,7 @@ message ExtProcPerRoute { } // Overrides that may be set on a per-route basis -// [#next-free-field: 7] +// [#next-free-field: 8] message ExtProcOverrides { // Set a different processing mode for this route than the default. ProcessingMode processing_mode = 1; @@ -301,4 +302,10 @@ message ExtProcOverrides { // config used. It is the prerogative of the control plane to ensure this // most-specific config contains the correct final overrides. MetadataOptions metadata_options = 6; + + // Additional metadata to include into streams initiated to the ext_proc gRPC + // service. This can be used for scenarios in which additional ad hoc + // authorization headers (e.g. ``x-foo-bar: baz-key``) are to be injected or + // when a route needs to partially override inherited metadata. + repeated config.core.v3.HeaderValue grpc_initial_metadata = 7; }