Skip to content

Commit

Permalink
admin: complete /config_dump (#3340)
Browse files Browse the repository at this point in the history
This completes initial implementation of the /config_dump admin endpoint,
allowing for detailed display of the currently loaded Envoy configuration,
including versions of each resource. Note that this does not include output
for EDS. That work is tracked in envoyproxy/envoy#3362.

Fixes envoyproxy/envoy#2421
Fixes envoyproxy/envoy#2172

*Risk Level*: Low
*Testing*: Unit/integration
*Docs Changes*: Added
*Release Notes*: Added

Signed-off-by: Matt Klein <[email protected]>

Mirrored from https://github.com/envoyproxy/envoy @ a2a5fc1df1541ebe0b0cd761f3e77212dbf70e5f
  • Loading branch information
data-plane-api(CircleCI) committed May 11, 2018
1 parent eee05e7 commit 2bbed54
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 19 deletions.
1 change: 1 addition & 0 deletions docs/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ package_group(
proto_library(
name = "protos",
deps = [
"//envoy/admin/v2alpha:config_dump",
"//envoy/api/v2:cds",
"//envoy/api/v2:discovery",
"//envoy/api/v2:eds",
Expand Down
44 changes: 25 additions & 19 deletions envoy/admin/v2alpha/config_dump.proto
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,19 @@ import "gogoproto/gogo.proto";

// [#protodoc-title: ConfigDump]

// 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.
// The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
// message to maintain and serve arbitrary configuration information from any component in Envoy.
message ConfigDump {
// This map is serialized and dumped in its entirety at the /config_dump endpoint.
// This map is serialized and dumped in its entirety at the
// :ref:`/config_dump <operations_admin_interface_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.
// Keys are a short descriptor of the config object they map to. The following keys (and the
// messages they map to) are currently supported:
//
// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v2alpha.BootstrapConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v2alpha.ListenersConfigDump>`
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v2alpha.ClustersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v2alpha.RoutesConfigDump>`
map<string, google.protobuf.Any> configs = 1 [(gogoproto.nullable) = false];
}

Expand All @@ -40,15 +41,17 @@ message BootstrapConfigDump {
// configuration information can be used to recreate an Envoy configuration by populating all
// listeners as static listeners or by returning them in a LDS response.
message ListenersConfigDump {
// This is the *version_info* in the last processed LDS discovery response. If there
// are only static bootstrap listeners, this field will be "".
// This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
// last processed LDS discovery response. If there are only static bootstrap listeners, this field
// will be "".
string version_info = 1;

// Describes a dynamically loaded cluster via the LDS API.
message DynamicListener {
// This is the per-resource version information. This version is currently taken from the
// *version_info* field at the time that the listener was loaded. In the future, discrete
// per-listener versions may be supported by the API.
// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
// that the listener was loaded. In the future, discrete per-listener versions may be supported
// by the API.
string version_info = 1;

// The listener config.
Expand Down Expand Up @@ -79,15 +82,17 @@ message ListenersConfigDump {
// configuration information can be used to recreate an Envoy configuration by populating all
// clusters as static clusters or by returning them in a CDS response.
message ClustersConfigDump {
// This is the *version_info* in the last processed CDS discovery response. If there
// are only static bootstrap clusters, this field will be "".
// This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
// last processed CDS discovery response. If there are only static bootstrap clusters, this field
// will be "".
string version_info = 1;

// Describes a dynamically loaded cluster via the CDS API.
message DynamicCluster {
// This is the per-resource version information. This version is currently taken from the
// *version_info* field at the time that the cluster was loaded. In the future, discrete
// per-cluster versions may be supported by the API.
// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
// that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
// the API.
string version_info = 1;

// The cluster config.
Expand Down Expand Up @@ -116,7 +121,8 @@ message ClustersConfigDump {
message RoutesConfigDump {
message DynamicRouteConfig {
// This is the per-resource version information. This version is currently taken from the
// *version_info* field at the time that the route configuration was loaded.
// :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
// the route configuration was loaded.
string version_info = 1;

// The route config.
Expand Down
3 changes: 3 additions & 0 deletions envoy/config/filter/http/ip_tagging/v2/ip_tagging.proto
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ import "google/protobuf/wrappers.proto";

import "validate/validate.proto";

// [#protodoc-title: IP tagging]
// IP tagging :ref:`configuration overview <config_http_filters_ip_tagging>`.

message IPTagging {

// The type of requests the filter should apply to. The supported types
Expand Down

0 comments on commit 2bbed54

Please sign in to comment.