Adding HTTP service support for Envoy external processing (#35489)

This is to address the 1st step, i.e, the API change needed for
https://github.com/envoyproxy/envoy/issues/35488.

---------

Signed-off-by: Yanjun Xiang <yanjunxiang@google.com>

Mirrored from https://github.com/envoyproxy/envoy @ ff94c296f27be2f4a6cd71a2d6b0898cec6c2100
main
update-envoy[bot] 7 months ago
parent 6fa6303db1
commit 11682ffc1b
  1. 22
      envoy/extensions/filters/http/ext_proc/v3/ext_proc.proto

@ -5,6 +5,7 @@ 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/config/core/v3/http_service.proto";
import "envoy/extensions/filters/http/ext_proc/v3/processing_mode.proto";
import "envoy/type/matcher/v3/string.proto";
@ -98,7 +99,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE;
// <arch_overview_advanced_filter_state_sharing>` object in a namespace matching the filter
// name.
//
// [#next-free-field: 20]
// [#next-free-field: 21]
message ExternalProcessor {
// Describes the route cache action to be taken when an external processor response
// is received in response to request headers.
@ -125,7 +126,18 @@ message ExternalProcessor {
// Configuration for the gRPC service that the filter will communicate with.
// The filter supports both the "Envoy" and "Google" gRPC clients.
config.core.v3.GrpcService grpc_service = 1 [(validate.rules).message = {required: true}];
// Only one of ``grpc_service`` or ``http_service`` can be set.
// It is required that one of them must be set.
config.core.v3.GrpcService grpc_service = 1
[(udpa.annotations.field_migrate).oneof_promotion = "ext_proc_service_type"];
// [#not-implemented-hide:]
// Configuration for the HTTP service that the filter will communicate with.
// Only one of ``http_service`` or
// :ref:`grpc_service <envoy_v3_api_field_extensions.filters.http.ext_proc.v3.ExternalProcessor.grpc_service>`.
// can be set. It is required that one of them must be set.
ExtProcHttpService http_service = 20
[(udpa.annotations.field_migrate).oneof_promotion = "ext_proc_service_type"];
// By default, if the gRPC stream cannot be established, or if it is closed
// prematurely with an error, the filter will fail. Specifically, if the
@ -265,6 +277,12 @@ message ExternalProcessor {
google.protobuf.Duration deferred_close_timeout = 19;
}
// ExtProcHttpService is used for HTTP communication between the filter and the external processing service.
message ExtProcHttpService {
// Sets the HTTP service which the external processing requests must be sent to.
config.core.v3.HttpService http_service = 1;
}
// The MetadataOptions structure defines options for the sending and receiving of
// dynamic metadata. Specifically, which namespaces to send to the server, whether
// metadata returned by the server may be written, and how that metadata may be written.

Loading…
Cancel
Save