extensions: add grpc_http1_reverse_bridge filter (#5315)
Adds a filter that allows converting a gRPC request into an HTTP/1.1 request with a custom content-type. Allows a vanilla HTTP/1.1 upstream to handle incoming requests by reading and responding with protobuf messages in binary octet format. For now this shields the upstream from any gRPC association: the filter removes the gRPC specific message prefix and manages the conversion of the HTTP status code into grpc-status. Signed-off-by: Snow Pettersen <snowp@squareup.com> Mirrored from https://github.com/envoyproxy/envoy @ a97e138ffc58c13dc5be277b877c6a5949083023pull/620/head
parent
286a22138c
commit
4de1fc9f0f
2 changed files with 30 additions and 0 deletions
@ -0,0 +1,8 @@ |
||||
load("//bazel:api_build_system.bzl", "api_proto_library") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_library( |
||||
name = "config", |
||||
srcs = ["config.proto"], |
||||
) |
@ -0,0 +1,22 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.extensions.filter.http.grpc_http1_reverse_bridge.v2alpha1; |
||||
option java_package = "io.envoyproxy.envoy.extensions.filter.http.grpc_http1_reverse_bridge.v2alpha1"; |
||||
option java_multiple_files = true; |
||||
option go_package = "v2"; |
||||
|
||||
import "validate/validate.proto"; |
||||
|
||||
// [#protodoc-title: Extensions gRPC Http1 Reverse Bridge] |
||||
// gRPC reverse bridge filter configuration |
||||
message FilterConfig { |
||||
// The content-type to pass to the upstream when the gRPC bridge filter is applied. |
||||
// The filter will also validate that the upstream responds with the same content type. |
||||
string content_type = 1 [(validate.rules).string.min_bytes = 1]; |
||||
|
||||
// If true, Envoy will assume that the upstream doesn't understand gRPC frames and |
||||
// strip the gRPC frame from the request, and add it back in to the response. This will |
||||
// hide the gRPC semantics from the upstream, allowing it to receive and respond with a |
||||
// simple binary encoded protobuf. |
||||
bool withhold_grpc_frames = 2; |
||||
} |
Loading…
Reference in new issue