diff --git a/envoy/extensions/filters/udp/udp_proxy/v3/BUILD b/envoy/extensions/filters/udp/udp_proxy/v3/BUILD index 25c7a9c3..375c78d2 100644 --- a/envoy/extensions/filters/udp/udp_proxy/v3/BUILD +++ b/envoy/extensions/filters/udp/udp_proxy/v3/BUILD @@ -6,8 +6,11 @@ licenses(["notice"]) # Apache 2 api_proto_package( deps = [ + "//envoy/annotations:pkg", "//envoy/config/accesslog/v3:pkg", "//envoy/config/core/v3:pkg", "@com_github_cncf_udpa//udpa/annotations:pkg", + "@com_github_cncf_udpa//xds/annotations/v3:pkg", + "@com_github_cncf_udpa//xds/type/matcher/v3:pkg", ], ) diff --git a/envoy/extensions/filters/udp/udp_proxy/v3/route.proto b/envoy/extensions/filters/udp/udp_proxy/v3/route.proto new file mode 100644 index 00000000..8d8fcf59 --- /dev/null +++ b/envoy/extensions/filters/udp/udp_proxy/v3/route.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package envoy.extensions.filters.udp.udp_proxy.v3; + +import "udpa/annotations/status.proto"; +import "validate/validate.proto"; + +option java_package = "io.envoyproxy.envoy.extensions.filters.udp.udp_proxy.v3"; +option java_outer_classname = "RouteProto"; +option java_multiple_files = true; +option go_package = "github.com/envoyproxy/go-control-plane/envoy/extensions/filters/udp/udp_proxy/v3;udp_proxyv3"; +option (udpa.annotations.file_status).package_version_status = ACTIVE; + +// [#protodoc-title: UDP proxy route configuration] +// UDP proxy :ref:`configuration overview `. + +message Route { + // Indicates the upstream cluster to which the request should be routed. + string cluster = 1 [(validate.rules).string = {min_len: 1}]; +} diff --git a/envoy/extensions/filters/udp/udp_proxy/v3/udp_proxy.proto b/envoy/extensions/filters/udp/udp_proxy/v3/udp_proxy.proto index e2ef68e2..a907fd4a 100644 --- a/envoy/extensions/filters/udp/udp_proxy/v3/udp_proxy.proto +++ b/envoy/extensions/filters/udp/udp_proxy/v3/udp_proxy.proto @@ -7,6 +7,10 @@ import "envoy/config/core/v3/udp_socket_config.proto"; import "google/protobuf/duration.proto"; +import "xds/annotations/v3/status.proto"; +import "xds/type/matcher/v3/matcher.proto"; + +import "envoy/annotations/deprecation.proto"; import "udpa/annotations/status.proto"; import "udpa/annotations/versioning.proto"; import "validate/validate.proto"; @@ -22,7 +26,7 @@ option (udpa.annotations.file_status).package_version_status = ACTIVE; // [#extension: envoy.filters.udp_listener.udp_proxy] // Configuration for the UDP proxy filter. -// [#next-free-field: 9] +// [#next-free-field: 10] message UdpProxyConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.config.filter.udp.udp_proxy.v2alpha.UdpProxyConfig"; @@ -52,7 +56,18 @@ message UdpProxyConfig { option (validate.required) = true; // The upstream cluster to connect to. - string cluster = 2 [(validate.rules).string = {min_len: 1}]; + // This field is deprecated in favor of + // :ref:`matcher `. + string cluster = 2 [ + deprecated = true, + (validate.rules).string = {min_len: 1}, + (envoy.annotations.deprecated_at_minor_version) = "3.0" + ]; + + // The match tree to use when resolving route actions for incoming requests. + // See :ref:`Routing ` for more information. + xds.type.matcher.v3.Matcher matcher = 9 + [(xds.annotations.v3.field_status).work_in_progress = true]; } // The idle timeout for sessions. Idle is defined as no datagrams between received or sent by