Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api: add eds to config dump #11425

Merged
merged 2 commits into from
Jun 4, 2020
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
34 changes: 34 additions & 0 deletions api/envoy/admin/v3/config_dump.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ message ConfigDump {
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v3.ClustersConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v3.ListenersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v3.RoutesConfigDump>`
// [#not-implemented-hide:] * *endpoints*: :ref:`EndpointsConfigDump <envoy_api_msg_admin.v3.EndpointsConfigDump>`
//
// You can filter output with the resource and mask query parameters.
// See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
Expand Down Expand Up @@ -346,3 +347,36 @@ message SecretsConfigDump {
// warming in preparation to service clusters or listeners.
repeated DynamicSecret dynamic_warming_secrets = 3;
}

// [#not-implemented-hide:]
// Envoy's EDS implementation *will* fill this message with all currently known endpoints. Endpoint
// configuration information can be used to recreate an Envoy configuration by populating all
Copy link
Contributor

Choose a reason for hiding this comment

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

Just a thought, since number of endpoints could potentially be very large, do we want to dump out all of them or should we have some upper limit.

Would like to see what the API reviewer thinks.

Copy link
Member

Choose a reason for hiding this comment

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

For the admin handler, this could be just a query param. Could be worth adding as needed.

// endpoints as static endpoints or by returning them in an EDS response.
message EndpointsConfigDump {
message StaticEndpointConfig {
// The endpoint config.
google.protobuf.Any endpoint_config = 1;

// The timestamp when the Endpoint was last updated.
google.protobuf.Timestamp last_updated = 2;
}

message DynamicEndpointConfig {
// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the endpoint configuration was loaded.
string version_info = 1;

// The endpoint config.
google.protobuf.Any endpoint_config = 2;

// The timestamp when the Endpoint was last updated.
google.protobuf.Timestamp last_updated = 3;
}

// The statically loaded endpoint configs.
repeated StaticEndpointConfig static_endpoint_configs = 2;

// The dynamically loaded endpoint configs.
repeated DynamicEndpointConfig dynamic_endpoint_configs = 3;
}
42 changes: 42 additions & 0 deletions api/envoy/admin/v4alpha/config_dump.proto
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ message ConfigDump {
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v4alpha.ClustersConfigDump>`
// * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v4alpha.ListenersConfigDump>`
// * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v4alpha.RoutesConfigDump>`
// [#not-implemented-hide:] * *endpoints*: :ref:`EndpointsConfigDump <envoy_api_msg_admin.v4alpha.EndpointsConfigDump>`
//
// You can filter output with the resource and mask query parameters.
// See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
Expand Down Expand Up @@ -340,3 +341,44 @@ message SecretsConfigDump {
// warming in preparation to service clusters or listeners.
repeated DynamicSecret dynamic_warming_secrets = 3;
}

// [#not-implemented-hide:]
// Envoy's EDS implementation *will* fill this message with all currently known endpoints. Endpoint
// configuration information can be used to recreate an Envoy configuration by populating all
// endpoints as static endpoints or by returning them in an EDS response.
message EndpointsConfigDump {
option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v3.EndpointsConfigDump";

message StaticEndpointConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.admin.v3.EndpointsConfigDump.StaticEndpointConfig";

// The endpoint config.
google.protobuf.Any endpoint_config = 1;

// The timestamp when the Endpoint was last updated.
google.protobuf.Timestamp last_updated = 2;
}

message DynamicEndpointConfig {
option (udpa.annotations.versioning).previous_message_type =
"envoy.admin.v3.EndpointsConfigDump.DynamicEndpointConfig";

// This is the per-resource version information. This version is currently taken from the
// :ref:`version_info <envoy_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
// the endpoint configuration was loaded.
string version_info = 1;

// The endpoint config.
google.protobuf.Any endpoint_config = 2;

// The timestamp when the Endpoint was last updated.
google.protobuf.Timestamp last_updated = 3;
}

// The statically loaded endpoint configs.
repeated StaticEndpointConfig static_endpoint_configs = 2;

// The dynamically loaded endpoint configs.
repeated DynamicEndpointConfig dynamic_endpoint_configs = 3;
}
34 changes: 34 additions & 0 deletions generated_api_shadow/envoy/admin/v3/config_dump.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 42 additions & 0 deletions generated_api_shadow/envoy/admin/v4alpha/config_dump.proto

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.