-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
server: add handler for dumping out eds #11577
Changes from 29 commits
50d00dd
3e2771a
f3acc0f
821c3a8
9092bc4
69c3406
b0adffe
2a1e441
2d434b0
385c4d6
2a86785
725c5e2
4011428
5d17439
06ca891
5fa118a
f7833ed
b731ac4
b8b5438
139650c
148e66f
34a6604
285f31f
cf459e5
37876f5
c2f46f9
adfffa4
db4e23a
3723189
6d31bcc
3a39461
14938c8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -30,9 +30,11 @@ message ConfigDump { | |
// | ||
// * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v3.BootstrapConfigDump>` | ||
// * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v3.ClustersConfigDump>` | ||
// * *endpoints*: :ref:`EndpointsConfigDump <envoy_api_msg_admin.v3.EndpointsConfigDump>` | ||
// * *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>` | ||
// | ||
// EDS Configuration will only be dumped by using parameter `?include_eds` | ||
// | ||
// You can filter output with the resource and mask query parameters. | ||
// See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`, | ||
|
@@ -348,29 +350,28 @@ message SecretsConfigDump { | |
repeated DynamicSecret dynamic_warming_secrets = 3; | ||
} | ||
|
||
// [#not-implemented-hide:] | ||
// Envoy's EDS implementation *will* fill this message with all currently known endpoints. Endpoint | ||
// Envoy's admin 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 { | ||
message StaticEndpointConfig { | ||
// The endpoint config. | ||
google.protobuf.Any endpoint_config = 1; | ||
|
||
// The timestamp when the Endpoint was last updated. | ||
// [#not-implemented-hide:] 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 | ||
// [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If this is not implemented, probably the second sentence can be removed? |
||
// :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. | ||
// [#not-implemented-hide:] The timestamp when the Endpoint was last updated. | ||
google.protobuf.Timestamp last_updated = 3; | ||
} | ||
|
||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I think you should add support for these fields (version, last update), by adding additional tracking state to cluster manager. I think it's fine to do that as a next PR though, the existing PR is a good size for review.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about endpoint_stale_after?
I think this value is used once and then dropped when EDS is initialized. Should I add additional tracking state to it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting; I think the useful thing to track there would be how much time is remaining from when the config dump happens until the endpoint becomes stale. If it's really difficult to do, it's fine to leave as a TODO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I would like to add these support in next PR. For TTL, I'll try to add it, however, if it is difficult to achieve for now, maybe I'll leave it as a TODO and will try to solve it if there's still some time after I finish other milestones?