diff --git a/api/envoy/config/bootstrap/v2/bootstrap.proto b/api/envoy/config/bootstrap/v2/bootstrap.proto index 58153bc94358..caa9dce53d67 100644 --- a/api/envoy/config/bootstrap/v2/bootstrap.proto +++ b/api/envoy/config/bootstrap/v2/bootstrap.proto @@ -264,6 +264,15 @@ message RuntimeLayer { message AdminLayer { } + // [#not-implemented-hide:] + message TdsLayer { + // Resource to subscribe to at *tds_config* for the TDS layer. + string name = 1; + + // TDS configuration source. + envoy.api.v2.core.ConfigSource tds_config = 2; + } + // Descriptive name for the runtime layer. This is only used for the runtime // :http:get:`/runtime` output. string name = 1; @@ -274,6 +283,8 @@ message RuntimeLayer { google.protobuf.Struct static_layer = 2; DiskLayer disk_layer = 3; AdminLayer admin_layer = 4; + // [#not-implemented-hide:] + TdsLayer tds_layer = 5; } } diff --git a/api/envoy/service/discovery/v2/BUILD b/api/envoy/service/discovery/v2/BUILD index 33392fa67f86..fdd939758c4a 100644 --- a/api/envoy/service/discovery/v2/BUILD +++ b/api/envoy/service/discovery/v2/BUILD @@ -56,3 +56,20 @@ api_go_grpc_library( "//envoy/api/v2:discovery_go_proto", ], ) + +api_proto_library_internal( + name = "tds", + srcs = ["tds.proto"], + has_services = 1, + deps = [ + "//envoy/api/v2:discovery", + ], +) + +api_go_grpc_library( + name = "tds", + proto = ":tds", + deps = [ + "//envoy/api/v2:discovery_go_proto", + ], +) diff --git a/api/envoy/service/discovery/v2/tds.proto b/api/envoy/service/discovery/v2/tds.proto new file mode 100644 index 000000000000..d0280f5fd3c3 --- /dev/null +++ b/api/envoy/service/discovery/v2/tds.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +package envoy.service.discovery.v2; + +option java_outer_classname = "TdsProto"; +option java_multiple_files = true; +option java_package = "io.envoyproxy.envoy.service.discovery.v2"; +option java_generic_services = true; + +import "envoy/api/v2/discovery.proto"; + +import "google/api/annotations.proto"; +import "google/protobuf/struct.proto"; + +// Discovery service for Runtime resources. +// [#not-implemented-hide:] +service RuntimeDiscoveryService { + rpc StreamRuntime(stream envoy.api.v2.DiscoveryRequest) + returns (stream envoy.api.v2.DiscoveryResponse) { + } + + rpc FetchRuntime(envoy.api.v2.DiscoveryRequest) returns (envoy.api.v2.DiscoveryResponse) { + option (google.api.http) = { + post: "/v2/discovery:runtime" + body: "*" + }; + } +} + +// TDS resource type. This describes a layer in the runtime virtual filesystem. +// [#not-implemented-hide:] +message Runtime { + google.protobuf.Struct layer = 1; +} diff --git a/api/test/build/BUILD b/api/test/build/BUILD index 3260fd418147..9eb525246458 100644 --- a/api/test/build/BUILD +++ b/api/test/build/BUILD @@ -13,6 +13,7 @@ api_cc_test( "//envoy/service/accesslog/v2:als", "//envoy/service/discovery/v2:ads", "//envoy/service/discovery/v2:hds", + "//envoy/service/discovery/v2:tds", "//envoy/service/metrics/v2:metrics_service", "//envoy/service/ratelimit/v2:rls", ], diff --git a/api/test/build/build_test.cc b/api/test/build/build_test.cc index 6397c6391ec8..f0a8e7bf432c 100644 --- a/api/test/build/build_test.cc +++ b/api/test/build/build_test.cc @@ -18,6 +18,8 @@ int main(int argc, char* argv[]) { "envoy.service.discovery.v2.AggregatedDiscoveryService.StreamAggregatedResources", "envoy.service.discovery.v2.HealthDiscoveryService.FetchHealthCheck", "envoy.service.discovery.v2.HealthDiscoveryService.StreamHealthCheck", + "envoy.service.discovery.v2.RuntimeDiscoveryService.FetchRuntime", + "envoy.service.discovery.v2.RuntimeDiscoveryService.StreamRuntime", "envoy.service.accesslog.v2.AccessLogService.StreamAccessLogs", "envoy.service.metrics.v2.MetricsService.StreamMetrics", "envoy.service.ratelimit.v2.RateLimitService.ShouldRateLimit", diff --git a/source/server/BUILD b/source/server/BUILD index 86e97f8231cb..8ae94030aa92 100644 --- a/source/server/BUILD +++ b/source/server/BUILD @@ -300,6 +300,7 @@ envoy_cc_library( "@envoy_api//envoy/api/v2:rds_cc", "@envoy_api//envoy/service/discovery/v2:ads_cc", "@envoy_api//envoy/service/discovery/v2:hds_cc", + "@envoy_api//envoy/service/discovery/v2:tds_cc", "@envoy_api//envoy/service/ratelimit/v2:rls_cc", ], ) diff --git a/source/server/proto_descriptors.cc b/source/server/proto_descriptors.cc index 68019c209f7e..b77cca909414 100644 --- a/source/server/proto_descriptors.cc +++ b/source/server/proto_descriptors.cc @@ -29,6 +29,8 @@ void validateProtoDescriptors() { "envoy.service.discovery.v2.AggregatedDiscoveryService.StreamAggregatedResources", "envoy.service.discovery.v2.HealthDiscoveryService.FetchHealthCheck", "envoy.service.discovery.v2.HealthDiscoveryService.StreamHealthCheck", + "envoy.service.discovery.v2.RuntimeDiscoveryService.FetchRuntime", + "envoy.service.discovery.v2.RuntimeDiscoveryService.StreamRuntime", "envoy.service.ratelimit.v2.RateLimitService.ShouldRateLimit", };