[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
James Sedgwick 7 years ago committed by htuch
parent a3c21d810f
commit ed9e1a11f2
  1. 12
      envoy/admin/v2/BUILD
  2. 35
      envoy/admin/v2/config_dump.proto
  3. 1
      envoy/api/v2/BUILD

@ -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];
}

@ -8,6 +8,7 @@ licenses(["notice"]) # Apache 2
package_group(
name = "friends",
packages = [
"//envoy/admin/...",
"//envoy/api/v2",
"//envoy/config/...",
"//envoy/service/...",

Loading…
Cancel
Save