Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions envoy/admin/v2/BUILD
Original file line number Diff line number Diff line change
@@ -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",
],
)
35 changes: 35 additions & 0 deletions envoy/admin/v2/config_dump.proto
Original file line number Diff line number Diff line change
@@ -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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should consider making this a type URL in the future. I'm still after a config that could be effectively replayed via an xDS management server.

// 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];
}
1 change: 1 addition & 0 deletions envoy/api/v2/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ licenses(["notice"]) # Apache 2
package_group(
name = "friends",
packages = [
"//envoy/admin/...",
"//envoy/api/v2",
"//envoy/config/...",
"//envoy/service/...",
Expand Down