thrift: adding xDS RDS support for thrift proxy. (#19982)

Adding xDS routing discovery support for thrift proxy.

The routing discovery is supported only through ADS. No separate service endpoints added
for thrift routing config type url.

This PR is split from #17631

Risk Level: Low
Testing:
- Unittest
- Manual test with static routing from bootstrap config, static routing and dynamic routing from GRPC based xDS server.
Docs Changes: Comment added to the new API field.

Signed-off-by: Tamas Kovacs <tamas.2.kovacs@nokia-sbell.com>

Mirrored from https://github.com/envoyproxy/envoy @ ec7ef59ef36ccb5e2a9b20493ae23673504d75b9
pull/626/head
data-plane-api(Azure Pipelines) 3 years ago
parent a04278879b
commit a4cd696a87
  1. 22
      envoy/extensions/filters/network/thrift_proxy/v3/thrift_proxy.proto

@ -2,11 +2,13 @@ syntax = "proto3";
package envoy.extensions.filters.network.thrift_proxy.v3;
import "envoy/config/core/v3/config_source.proto";
import "envoy/extensions/filters/network/thrift_proxy/v3/route.proto";
import "google/protobuf/any.proto";
import "google/protobuf/wrappers.proto";
import "udpa/annotations/migrate.proto";
import "udpa/annotations/status.proto";
import "udpa/annotations/versioning.proto";
import "validate/validate.proto";
@ -59,7 +61,18 @@ enum ProtocolType {
TWITTER = 4;
}
// [#next-free-field: 8]
message Trds {
// Configuration source specifier.
// In case of *api_config_source* only aggregated *api_type* is supported.
config.core.v3.ConfigSource config_source = 1 [(validate.rules).message = {required: true}];
// The name of the route configuration. This allows to use different route
// configurations. Tells which route configuration should be fetched from the configuration source.
// Leave unspecified is also valid and means the unnamed route configuration.
string route_config_name = 2;
}
// [#next-free-field: 9]
message ThriftProxy {
option (udpa.annotations.versioning).previous_message_type =
"envoy.config.filter.network.thrift_proxy.v2alpha1.ThriftProxy";
@ -76,7 +89,12 @@ message ThriftProxy {
string stat_prefix = 1 [(validate.rules).string = {min_len: 1}];
// The route table for the connection manager is static and is specified in this property.
RouteConfiguration route_config = 4;
// It is invalid to define both *route_config* and *trds*.
RouteConfiguration route_config = 4
[(udpa.annotations.field_migrate).oneof_promotion = "route_specifier"];
// Use xDS to fetch the route configuration. It is invalid to define both *route_config* and *trds*.
Trds trds = 8 [(udpa.annotations.field_migrate).oneof_promotion = "route_specifier"];
// A list of individual Thrift filters that make up the filter chain for requests made to the
// Thrift proxy. Order matters as the filters are processed sequentially. For backwards

Loading…
Cancel
Save