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