[envoy/admin] Scaffolding for structured admin and config_dump endpoint (#532)
See envoyproxy/envoy#2771 for context I will add documentation once the interfaces and placement of these things is settled. Current location (new admin package) was agreed upon as a good start with @htuch but i don't feel strongly about that or naming. Signed-off-by: James Sedgwick <jsedgwick@lyft.com>pull/553/head
parent
a3c21d810f
commit
ed9e1a11f2
3 changed files with 48 additions and 0 deletions
@ -0,0 +1,12 @@ |
||||
load("//bazel:api_build_system.bzl", "api_proto_library") |
||||
|
||||
licenses(["notice"]) # Apache 2 |
||||
|
||||
api_proto_library( |
||||
name = "config_dump", |
||||
srcs = ["config_dump.proto"], |
||||
visibility = ["//visibility:public"], |
||||
deps = [ |
||||
"//envoy/api/v2:rds", |
||||
], |
||||
) |
@ -0,0 +1,35 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.admin.v2; |
||||
|
||||
import "google/protobuf/any.proto"; |
||||
import "envoy/api/v2/rds.proto"; |
||||
|
||||
import "gogoproto/gogo.proto"; |
||||
|
||||
// [#protodoc-title: ConfigDump] |
||||
// [#proto-status: draft] |
||||
|
||||
// The /config_dump admin endpoint uses this wrapper message to maintain and serve arbitrary |
||||
// configuration information from any component in Envoy. |
||||
// TODO(jsedgwick) In the future, we may want to formalize this further with an RPC for config_dump, |
||||
// and perhaps even with an RPC per config type. That strategy across all endpoints will allow for |
||||
// more flexibility w.r.t. protocol, serialization, parameters, etc. |
||||
message ConfigDump { |
||||
// This map is serialized and dumped in its entirety at the /config_dump endpoint. |
||||
// |
||||
// Keys should be a short descriptor of the config object they map to. For example, envoy's HTTP |
||||
// routing subsystem might use "routes" as the key for its config, for which it uses the message |
||||
// RouteConfigDump as defined below. In the future, the key will also be used to filter the output |
||||
// of the /config_dump endpoint. |
||||
map<string, google.protobuf.Any> configs = 1 [(gogoproto.nullable) = false]; |
||||
} |
||||
|
||||
// Envoy's RDS implementation fills this message with all currently loaded routes, as described by |
||||
// their RouteConnfiguration objects. Static routes configured in the bootstrap configuration are |
||||
// separated from those configured dynamically via RDS. This message is available at the |
||||
// /config_dump admin endpoint. |
||||
message RouteConfigDump { |
||||
repeated envoy.api.v2.RouteConfiguration static_route_configs = 1 [(gogoproto.nullable) = false]; |
||||
repeated envoy.api.v2.RouteConfiguration dynamic_route_configs = 2 [(gogoproto.nullable) = false]; |
||||
} |
Loading…
Reference in new issue