config_dump.proto 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. syntax = "proto3";
  2. package envoy.admin.v3;
  3. import "envoy/config/bootstrap/v3/bootstrap.proto";
  4. import "google/protobuf/any.proto";
  5. import "google/protobuf/timestamp.proto";
  6. import "udpa/annotations/status.proto";
  7. import "udpa/annotations/versioning.proto";
  8. option java_package = "io.envoyproxy.envoy.admin.v3";
  9. option java_outer_classname = "ConfigDumpProto";
  10. option java_multiple_files = true;
  11. option go_package = "github.com/envoyproxy/go-control-plane/envoy/admin/v3;adminv3";
  12. option (udpa.annotations.file_status).package_version_status = ACTIVE;
  13. // [#protodoc-title: ConfigDump]
  14. // Resource status from the view of a xDS client, which tells the synchronization
  15. // status between the xDS client and the xDS server.
  16. enum ClientResourceStatus {
  17. // Resource status is not available/unknown.
  18. UNKNOWN = 0;
  19. // Client requested this resource but hasn't received any update from management
  20. // server. The client will not fail requests, but will queue them until update
  21. // arrives or the client times out waiting for the resource.
  22. REQUESTED = 1;
  23. // This resource has been requested by the client but has either not been
  24. // delivered by the server or was previously delivered by the server and then
  25. // subsequently removed from resources provided by the server. For more
  26. // information, please refer to the :ref:`"Knowing When a Requested Resource
  27. // Does Not Exist" <xds_protocol_resource_not_existed>` section.
  28. DOES_NOT_EXIST = 2;
  29. // Client received this resource and replied with ACK.
  30. ACKED = 3;
  31. // Client received this resource and replied with NACK.
  32. NACKED = 4;
  33. }
  34. // The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
  35. // message to maintain and serve arbitrary configuration information from any component in Envoy.
  36. message ConfigDump {
  37. option (udpa.annotations.versioning).previous_message_type = "envoy.admin.v2alpha.ConfigDump";
  38. // This list is serialized and dumped in its entirety at the
  39. // :ref:`/config_dump <operations_admin_interface_config_dump>` endpoint.
  40. //
  41. // The following configurations are currently supported and will be dumped in the order given
  42. // below:
  43. //
  44. // * *bootstrap*: :ref:`BootstrapConfigDump <envoy_v3_api_msg_admin.v3.BootstrapConfigDump>`
  45. // * *clusters*: :ref:`ClustersConfigDump <envoy_v3_api_msg_admin.v3.ClustersConfigDump>`
  46. // * *endpoints*: :ref:`EndpointsConfigDump <envoy_v3_api_msg_admin.v3.EndpointsConfigDump>`
  47. // * *listeners*: :ref:`ListenersConfigDump <envoy_v3_api_msg_admin.v3.ListenersConfigDump>`
  48. // * *scoped_routes*: :ref:`ScopedRoutesConfigDump <envoy_v3_api_msg_admin.v3.ScopedRoutesConfigDump>`
  49. // * *routes*: :ref:`RoutesConfigDump <envoy_v3_api_msg_admin.v3.RoutesConfigDump>`
  50. // * *secrets*: :ref:`SecretsConfigDump <envoy_v3_api_msg_admin.v3.SecretsConfigDump>`
  51. //
  52. // EDS Configuration will only be dumped by using parameter `?include_eds`
  53. //
  54. // You can filter output with the resource and mask query parameters.
  55. // See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
  56. // :ref:`/config_dump?mask={} <operations_admin_interface_config_dump_by_mask>`,
  57. // or :ref:`/config_dump?resource={},mask={}
  58. // <operations_admin_interface_config_dump_by_resource_and_mask>` for more information.
  59. repeated google.protobuf.Any configs = 1;
  60. }
  61. message UpdateFailureState {
  62. option (udpa.annotations.versioning).previous_message_type =
  63. "envoy.admin.v2alpha.UpdateFailureState";
  64. // What the component configuration would have been if the update had succeeded.
  65. // This field may not be populated by xDS clients due to storage overhead.
  66. google.protobuf.Any failed_configuration = 1;
  67. // Time of the latest failed update attempt.
  68. google.protobuf.Timestamp last_update_attempt = 2;
  69. // Details about the last failed update attempt.
  70. string details = 3;
  71. // This is the version of the rejected resource.
  72. // [#not-implemented-hide:]
  73. string version_info = 4;
  74. }
  75. // This message describes the bootstrap configuration that Envoy was started with. This includes
  76. // any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
  77. // the static portions of an Envoy configuration by reusing the output as the bootstrap
  78. // configuration for another Envoy.
  79. message BootstrapConfigDump {
  80. option (udpa.annotations.versioning).previous_message_type =
  81. "envoy.admin.v2alpha.BootstrapConfigDump";
  82. config.bootstrap.v3.Bootstrap bootstrap = 1;
  83. // The timestamp when the BootstrapConfig was last updated.
  84. google.protobuf.Timestamp last_updated = 2;
  85. }
  86. // Envoy's listener manager fills this message with all currently known listeners. Listener
  87. // configuration information can be used to recreate an Envoy configuration by populating all
  88. // listeners as static listeners or by returning them in a LDS response.
  89. message ListenersConfigDump {
  90. option (udpa.annotations.versioning).previous_message_type =
  91. "envoy.admin.v2alpha.ListenersConfigDump";
  92. // Describes a statically loaded listener.
  93. message StaticListener {
  94. option (udpa.annotations.versioning).previous_message_type =
  95. "envoy.admin.v2alpha.ListenersConfigDump.StaticListener";
  96. // The listener config.
  97. google.protobuf.Any listener = 1;
  98. // The timestamp when the Listener was last successfully updated.
  99. google.protobuf.Timestamp last_updated = 2;
  100. }
  101. message DynamicListenerState {
  102. option (udpa.annotations.versioning).previous_message_type =
  103. "envoy.admin.v2alpha.ListenersConfigDump.DynamicListenerState";
  104. // This is the per-resource version information. This version is currently taken from the
  105. // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
  106. // that the listener was loaded. In the future, discrete per-listener versions may be supported
  107. // by the API.
  108. string version_info = 1;
  109. // The listener config.
  110. google.protobuf.Any listener = 2;
  111. // The timestamp when the Listener was last successfully updated.
  112. google.protobuf.Timestamp last_updated = 3;
  113. }
  114. // Describes a dynamically loaded listener via the LDS API.
  115. // [#next-free-field: 7]
  116. message DynamicListener {
  117. option (udpa.annotations.versioning).previous_message_type =
  118. "envoy.admin.v2alpha.ListenersConfigDump.DynamicListener";
  119. // The name or unique id of this listener, pulled from the DynamicListenerState config.
  120. string name = 1;
  121. // The listener state for any active listener by this name.
  122. // These are listeners that are available to service data plane traffic.
  123. DynamicListenerState active_state = 2;
  124. // The listener state for any warming listener by this name.
  125. // These are listeners that are currently undergoing warming in preparation to service data
  126. // plane traffic. Note that if attempting to recreate an Envoy configuration from a
  127. // configuration dump, the warming listeners should generally be discarded.
  128. DynamicListenerState warming_state = 3;
  129. // The listener state for any draining listener by this name.
  130. // These are listeners that are currently undergoing draining in preparation to stop servicing
  131. // data plane traffic. Note that if attempting to recreate an Envoy configuration from a
  132. // configuration dump, the draining listeners should generally be discarded.
  133. DynamicListenerState draining_state = 4;
  134. // Set if the last update failed, cleared after the next successful update.
  135. // The *error_state* field contains the rejected version of this particular
  136. // resource along with the reason and timestamp. For successfully updated or
  137. // acknowledged resource, this field should be empty.
  138. UpdateFailureState error_state = 5;
  139. // The client status of this resource.
  140. // [#not-implemented-hide:]
  141. ClientResourceStatus client_status = 6;
  142. }
  143. // This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
  144. // last processed LDS discovery response. If there are only static bootstrap listeners, this field
  145. // will be "".
  146. string version_info = 1;
  147. // The statically loaded listener configs.
  148. repeated StaticListener static_listeners = 2;
  149. // State for any warming, active, or draining listeners.
  150. repeated DynamicListener dynamic_listeners = 3;
  151. }
  152. // Envoy's cluster manager fills this message with all currently known clusters. Cluster
  153. // configuration information can be used to recreate an Envoy configuration by populating all
  154. // clusters as static clusters or by returning them in a CDS response.
  155. message ClustersConfigDump {
  156. option (udpa.annotations.versioning).previous_message_type =
  157. "envoy.admin.v2alpha.ClustersConfigDump";
  158. // Describes a statically loaded cluster.
  159. message StaticCluster {
  160. option (udpa.annotations.versioning).previous_message_type =
  161. "envoy.admin.v2alpha.ClustersConfigDump.StaticCluster";
  162. // The cluster config.
  163. google.protobuf.Any cluster = 1;
  164. // The timestamp when the Cluster was last updated.
  165. google.protobuf.Timestamp last_updated = 2;
  166. }
  167. // Describes a dynamically loaded cluster via the CDS API.
  168. // [#next-free-field: 6]
  169. message DynamicCluster {
  170. option (udpa.annotations.versioning).previous_message_type =
  171. "envoy.admin.v2alpha.ClustersConfigDump.DynamicCluster";
  172. // This is the per-resource version information. This version is currently taken from the
  173. // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time
  174. // that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
  175. // the API.
  176. string version_info = 1;
  177. // The cluster config.
  178. google.protobuf.Any cluster = 2;
  179. // The timestamp when the Cluster was last updated.
  180. google.protobuf.Timestamp last_updated = 3;
  181. // Set if the last update failed, cleared after the next successful update.
  182. // The *error_state* field contains the rejected version of this particular
  183. // resource along with the reason and timestamp. For successfully updated or
  184. // acknowledged resource, this field should be empty.
  185. // [#not-implemented-hide:]
  186. UpdateFailureState error_state = 4;
  187. // The client status of this resource.
  188. // [#not-implemented-hide:]
  189. ClientResourceStatus client_status = 5;
  190. }
  191. // This is the :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` in the
  192. // last processed CDS discovery response. If there are only static bootstrap clusters, this field
  193. // will be "".
  194. string version_info = 1;
  195. // The statically loaded cluster configs.
  196. repeated StaticCluster static_clusters = 2;
  197. // The dynamically loaded active clusters. These are clusters that are available to service
  198. // data plane traffic.
  199. repeated DynamicCluster dynamic_active_clusters = 3;
  200. // The dynamically loaded warming clusters. These are clusters that are currently undergoing
  201. // warming in preparation to service data plane traffic. Note that if attempting to recreate an
  202. // Envoy configuration from a configuration dump, the warming clusters should generally be
  203. // discarded.
  204. repeated DynamicCluster dynamic_warming_clusters = 4;
  205. }
  206. // Envoy's RDS implementation fills this message with all currently loaded routes, as described by
  207. // their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration
  208. // or defined inline while configuring listeners are separated from those configured dynamically via RDS.
  209. // Route configuration information can be used to recreate an Envoy configuration by populating all routes
  210. // as static routes or by returning them in RDS responses.
  211. message RoutesConfigDump {
  212. option (udpa.annotations.versioning).previous_message_type =
  213. "envoy.admin.v2alpha.RoutesConfigDump";
  214. message StaticRouteConfig {
  215. option (udpa.annotations.versioning).previous_message_type =
  216. "envoy.admin.v2alpha.RoutesConfigDump.StaticRouteConfig";
  217. // The route config.
  218. google.protobuf.Any route_config = 1;
  219. // The timestamp when the Route was last updated.
  220. google.protobuf.Timestamp last_updated = 2;
  221. }
  222. // [#next-free-field: 6]
  223. message DynamicRouteConfig {
  224. option (udpa.annotations.versioning).previous_message_type =
  225. "envoy.admin.v2alpha.RoutesConfigDump.DynamicRouteConfig";
  226. // This is the per-resource version information. This version is currently taken from the
  227. // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
  228. // the route configuration was loaded.
  229. string version_info = 1;
  230. // The route config.
  231. google.protobuf.Any route_config = 2;
  232. // The timestamp when the Route was last updated.
  233. google.protobuf.Timestamp last_updated = 3;
  234. // Set if the last update failed, cleared after the next successful update.
  235. // The *error_state* field contains the rejected version of this particular
  236. // resource along with the reason and timestamp. For successfully updated or
  237. // acknowledged resource, this field should be empty.
  238. // [#not-implemented-hide:]
  239. UpdateFailureState error_state = 4;
  240. // The client status of this resource.
  241. // [#not-implemented-hide:]
  242. ClientResourceStatus client_status = 5;
  243. }
  244. // The statically loaded route configs.
  245. repeated StaticRouteConfig static_route_configs = 2;
  246. // The dynamically loaded route configs.
  247. repeated DynamicRouteConfig dynamic_route_configs = 3;
  248. }
  249. // Envoy's scoped RDS implementation fills this message with all currently loaded route
  250. // configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both
  251. // the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the
  252. // dynamically obtained scopes via the SRDS API.
  253. message ScopedRoutesConfigDump {
  254. option (udpa.annotations.versioning).previous_message_type =
  255. "envoy.admin.v2alpha.ScopedRoutesConfigDump";
  256. message InlineScopedRouteConfigs {
  257. option (udpa.annotations.versioning).previous_message_type =
  258. "envoy.admin.v2alpha.ScopedRoutesConfigDump.InlineScopedRouteConfigs";
  259. // The name assigned to the scoped route configurations.
  260. string name = 1;
  261. // The scoped route configurations.
  262. repeated google.protobuf.Any scoped_route_configs = 2;
  263. // The timestamp when the scoped route config set was last updated.
  264. google.protobuf.Timestamp last_updated = 3;
  265. }
  266. // [#next-free-field: 7]
  267. message DynamicScopedRouteConfigs {
  268. option (udpa.annotations.versioning).previous_message_type =
  269. "envoy.admin.v2alpha.ScopedRoutesConfigDump.DynamicScopedRouteConfigs";
  270. // The name assigned to the scoped route configurations.
  271. string name = 1;
  272. // This is the per-resource version information. This version is currently taken from the
  273. // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
  274. // the scoped routes configuration was loaded.
  275. string version_info = 2;
  276. // The scoped route configurations.
  277. repeated google.protobuf.Any scoped_route_configs = 3;
  278. // The timestamp when the scoped route config set was last updated.
  279. google.protobuf.Timestamp last_updated = 4;
  280. // Set if the last update failed, cleared after the next successful update.
  281. // The *error_state* field contains the rejected version of this particular
  282. // resource along with the reason and timestamp. For successfully updated or
  283. // acknowledged resource, this field should be empty.
  284. // [#not-implemented-hide:]
  285. UpdateFailureState error_state = 5;
  286. // The client status of this resource.
  287. // [#not-implemented-hide:]
  288. ClientResourceStatus client_status = 6;
  289. }
  290. // The statically loaded scoped route configs.
  291. repeated InlineScopedRouteConfigs inline_scoped_route_configs = 1;
  292. // The dynamically loaded scoped route configs.
  293. repeated DynamicScopedRouteConfigs dynamic_scoped_route_configs = 2;
  294. }
  295. // Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
  296. message SecretsConfigDump {
  297. option (udpa.annotations.versioning).previous_message_type =
  298. "envoy.admin.v2alpha.SecretsConfigDump";
  299. // DynamicSecret contains secret information fetched via SDS.
  300. // [#next-free-field: 7]
  301. message DynamicSecret {
  302. option (udpa.annotations.versioning).previous_message_type =
  303. "envoy.admin.v2alpha.SecretsConfigDump.DynamicSecret";
  304. // The name assigned to the secret.
  305. string name = 1;
  306. // This is the per-resource version information.
  307. string version_info = 2;
  308. // The timestamp when the secret was last updated.
  309. google.protobuf.Timestamp last_updated = 3;
  310. // The actual secret information.
  311. // Security sensitive information is redacted (replaced with "[redacted]") for
  312. // private keys and passwords in TLS certificates.
  313. google.protobuf.Any secret = 4;
  314. // Set if the last update failed, cleared after the next successful update.
  315. // The *error_state* field contains the rejected version of this particular
  316. // resource along with the reason and timestamp. For successfully updated or
  317. // acknowledged resource, this field should be empty.
  318. // [#not-implemented-hide:]
  319. UpdateFailureState error_state = 5;
  320. // The client status of this resource.
  321. // [#not-implemented-hide:]
  322. ClientResourceStatus client_status = 6;
  323. }
  324. // StaticSecret specifies statically loaded secret in bootstrap.
  325. message StaticSecret {
  326. option (udpa.annotations.versioning).previous_message_type =
  327. "envoy.admin.v2alpha.SecretsConfigDump.StaticSecret";
  328. // The name assigned to the secret.
  329. string name = 1;
  330. // The timestamp when the secret was last updated.
  331. google.protobuf.Timestamp last_updated = 2;
  332. // The actual secret information.
  333. // Security sensitive information is redacted (replaced with "[redacted]") for
  334. // private keys and passwords in TLS certificates.
  335. google.protobuf.Any secret = 3;
  336. }
  337. // The statically loaded secrets.
  338. repeated StaticSecret static_secrets = 1;
  339. // The dynamically loaded active secrets. These are secrets that are available to service
  340. // clusters or listeners.
  341. repeated DynamicSecret dynamic_active_secrets = 2;
  342. // The dynamically loaded warming secrets. These are secrets that are currently undergoing
  343. // warming in preparation to service clusters or listeners.
  344. repeated DynamicSecret dynamic_warming_secrets = 3;
  345. }
  346. // Envoy's admin fill this message with all currently known endpoints. Endpoint
  347. // configuration information can be used to recreate an Envoy configuration by populating all
  348. // endpoints as static endpoints or by returning them in an EDS response.
  349. message EndpointsConfigDump {
  350. message StaticEndpointConfig {
  351. // The endpoint config.
  352. google.protobuf.Any endpoint_config = 1;
  353. // [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
  354. google.protobuf.Timestamp last_updated = 2;
  355. }
  356. // [#next-free-field: 6]
  357. message DynamicEndpointConfig {
  358. // [#not-implemented-hide:] This is the per-resource version information. This version is currently taken from the
  359. // :ref:`version_info <envoy_v3_api_field_service.discovery.v3.DiscoveryResponse.version_info>` field at the time that
  360. // the endpoint configuration was loaded.
  361. string version_info = 1;
  362. // The endpoint config.
  363. google.protobuf.Any endpoint_config = 2;
  364. // [#not-implemented-hide:] The timestamp when the Endpoint was last updated.
  365. google.protobuf.Timestamp last_updated = 3;
  366. // Set if the last update failed, cleared after the next successful update.
  367. // The *error_state* field contains the rejected version of this particular
  368. // resource along with the reason and timestamp. For successfully updated or
  369. // acknowledged resource, this field should be empty.
  370. // [#not-implemented-hide:]
  371. UpdateFailureState error_state = 4;
  372. // The client status of this resource.
  373. // [#not-implemented-hide:]
  374. ClientResourceStatus client_status = 5;
  375. }
  376. // The statically loaded endpoint configs.
  377. repeated StaticEndpointConfig static_endpoint_configs = 2;
  378. // The dynamically loaded endpoint configs.
  379. repeated DynamicEndpointConfig dynamic_endpoint_configs = 3;
  380. }