http: add support for skip filter match action (#14275)
Adds support for associating a match tree with a HTTP filter, supporting a single "Skip" operation that will have the FM ignore the filter for the duration of the stream once matched. Signed-off-by: Snow Pettersen <snowp@lyft.com> Mirrored from https://github.com/envoyproxy/envoy @ 935a6598cd01324f03608ca77ebffc9608f7af81pull/623/head
parent
bd25f5946f
commit
3bd2667b8e
10 changed files with 120 additions and 2 deletions
@ -0,0 +1,13 @@ |
|||||||
|
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py. |
||||||
|
|
||||||
|
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||||
|
|
||||||
|
licenses(["notice"]) # Apache 2 |
||||||
|
|
||||||
|
api_proto_package( |
||||||
|
deps = [ |
||||||
|
"//envoy/config/common/matcher/v3:pkg", |
||||||
|
"//envoy/config/core/v3:pkg", |
||||||
|
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||||
|
], |
||||||
|
) |
@ -0,0 +1,29 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
|
||||||
|
package envoy.extensions.common.matching.v3; |
||||||
|
|
||||||
|
import "envoy/config/common/matcher/v3/matcher.proto"; |
||||||
|
import "envoy/config/core/v3/extension.proto"; |
||||||
|
|
||||||
|
import "udpa/annotations/migrate.proto"; |
||||||
|
import "udpa/annotations/status.proto"; |
||||||
|
import "validate/validate.proto"; |
||||||
|
|
||||||
|
option java_package = "io.envoyproxy.envoy.extensions.common.matching.v3"; |
||||||
|
option java_outer_classname = "ExtensionMatcherProto"; |
||||||
|
option java_multiple_files = true; |
||||||
|
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||||
|
|
||||||
|
// [#protodoc-title: Extension Matcher] |
||||||
|
|
||||||
|
// Wrapper around an existing extension that provides an associated matcher. This allows |
||||||
|
// decorating an existing extension with a matcher, which can be used to match against |
||||||
|
// relevant protocol data. |
||||||
|
message ExtensionWithMatcher { |
||||||
|
// The associated matcher. |
||||||
|
config.common.matcher.v3.Matcher matcher = 1 [(validate.rules).message = {required: true}]; |
||||||
|
|
||||||
|
// The underlying extension config. |
||||||
|
config.core.v3.TypedExtensionConfig extension_config = 2 |
||||||
|
[(validate.rules).message = {required: true}]; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py. |
||||||
|
|
||||||
|
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||||
|
|
||||||
|
licenses(["notice"]) # Apache 2 |
||||||
|
|
||||||
|
api_proto_package( |
||||||
|
deps = [ |
||||||
|
"//envoy/config/common/matcher/v4alpha:pkg", |
||||||
|
"//envoy/config/core/v4alpha:pkg", |
||||||
|
"//envoy/extensions/common/matching/v3:pkg", |
||||||
|
"@com_github_cncf_udpa//udpa/annotations:pkg", |
||||||
|
], |
||||||
|
) |
@ -0,0 +1,32 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
|
||||||
|
package envoy.extensions.common.matching.v4alpha; |
||||||
|
|
||||||
|
import "envoy/config/common/matcher/v4alpha/matcher.proto"; |
||||||
|
import "envoy/config/core/v4alpha/extension.proto"; |
||||||
|
|
||||||
|
import "udpa/annotations/status.proto"; |
||||||
|
import "udpa/annotations/versioning.proto"; |
||||||
|
import "validate/validate.proto"; |
||||||
|
|
||||||
|
option java_package = "io.envoyproxy.envoy.extensions.common.matching.v4alpha"; |
||||||
|
option java_outer_classname = "ExtensionMatcherProto"; |
||||||
|
option java_multiple_files = true; |
||||||
|
option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; |
||||||
|
|
||||||
|
// [#protodoc-title: Extension Matcher] |
||||||
|
|
||||||
|
// Wrapper around an existing extension that provides an associated matcher. This allows |
||||||
|
// decorating an existing extension with a matcher, which can be used to match against |
||||||
|
// relevant protocol data. |
||||||
|
message ExtensionWithMatcher { |
||||||
|
option (udpa.annotations.versioning).previous_message_type = |
||||||
|
"envoy.extensions.common.matching.v3.ExtensionWithMatcher"; |
||||||
|
|
||||||
|
// The associated matcher. |
||||||
|
config.common.matcher.v4alpha.Matcher matcher = 1 [(validate.rules).message = {required: true}]; |
||||||
|
|
||||||
|
// The underlying extension config. |
||||||
|
config.core.v4alpha.TypedExtensionConfig extension_config = 2 |
||||||
|
[(validate.rules).message = {required: true}]; |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
# DO NOT EDIT. This file is generated by tools/proto_format/proto_sync.py. |
||||||
|
|
||||||
|
load("@envoy_api//bazel:api_build_system.bzl", "api_proto_package") |
||||||
|
|
||||||
|
licenses(["notice"]) # Apache 2 |
||||||
|
|
||||||
|
api_proto_package( |
||||||
|
deps = ["@com_github_cncf_udpa//udpa/annotations:pkg"], |
||||||
|
) |
@ -0,0 +1,19 @@ |
|||||||
|
syntax = "proto3"; |
||||||
|
|
||||||
|
package envoy.extensions.filters.common.matcher.action.v3; |
||||||
|
|
||||||
|
import "udpa/annotations/migrate.proto"; |
||||||
|
import "udpa/annotations/status.proto"; |
||||||
|
import "udpa/annotations/versioning.proto"; |
||||||
|
import "validate/validate.proto"; |
||||||
|
|
||||||
|
option java_package = "io.envoyproxy.envoy.extensions.filters.common.matcher.action.v3"; |
||||||
|
option java_outer_classname = "SkipActionProto"; |
||||||
|
option java_multiple_files = true; |
||||||
|
option (udpa.annotations.file_status).package_version_status = ACTIVE; |
||||||
|
|
||||||
|
// [#protodoc-title: Common Match Actions] |
||||||
|
|
||||||
|
// Indicates that the associated filter should be skipped. |
||||||
|
message SkipFilter { |
||||||
|
} |
Loading…
Reference in new issue