[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