config_dump.proto 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. syntax = "proto3";
  2. package envoy.admin.v2alpha;
  3. import "envoy/config/bootstrap/v2/bootstrap.proto";
  4. import "google/protobuf/any.proto";
  5. import "google/protobuf/timestamp.proto";
  6. import "udpa/annotations/status.proto";
  7. option java_package = "io.envoyproxy.envoy.admin.v2alpha";
  8. option java_outer_classname = "ConfigDumpProto";
  9. option java_multiple_files = true;
  10. option go_package = "github.com/envoyproxy/go-control-plane/envoy/admin/v2alpha";
  11. option (udpa.annotations.file_status).package_version_status = FROZEN;
  12. // [#protodoc-title: ConfigDump]
  13. // The :ref:`/config_dump <operations_admin_interface_config_dump>` admin endpoint uses this wrapper
  14. // message to maintain and serve arbitrary configuration information from any component in Envoy.
  15. message ConfigDump {
  16. // This list is serialized and dumped in its entirety at the
  17. // :ref:`/config_dump <operations_admin_interface_config_dump>` endpoint.
  18. //
  19. // The following configurations are currently supported and will be dumped in the order given
  20. // below:
  21. //
  22. // * *bootstrap*: :ref:`BootstrapConfigDump <envoy_api_msg_admin.v2alpha.BootstrapConfigDump>`
  23. // * *clusters*: :ref:`ClustersConfigDump <envoy_api_msg_admin.v2alpha.ClustersConfigDump>`
  24. // * *listeners*: :ref:`ListenersConfigDump <envoy_api_msg_admin.v2alpha.ListenersConfigDump>`
  25. // * *routes*: :ref:`RoutesConfigDump <envoy_api_msg_admin.v2alpha.RoutesConfigDump>`
  26. //
  27. // You can filter output with the resource and mask query parameters.
  28. // See :ref:`/config_dump?resource={} <operations_admin_interface_config_dump_by_resource>`,
  29. // :ref:`/config_dump?mask={} <operations_admin_interface_config_dump_by_mask>`,
  30. // or :ref:`/config_dump?resource={},mask={}
  31. // <operations_admin_interface_config_dump_by_resource_and_mask>` for more information.
  32. repeated google.protobuf.Any configs = 1;
  33. }
  34. message UpdateFailureState {
  35. // What the component configuration would have been if the update had succeeded.
  36. google.protobuf.Any failed_configuration = 1;
  37. // Time of the latest failed update attempt.
  38. google.protobuf.Timestamp last_update_attempt = 2;
  39. // Details about the last failed update attempt.
  40. string details = 3;
  41. }
  42. // This message describes the bootstrap configuration that Envoy was started with. This includes
  43. // any CLI overrides that were merged. Bootstrap configuration information can be used to recreate
  44. // the static portions of an Envoy configuration by reusing the output as the bootstrap
  45. // configuration for another Envoy.
  46. message BootstrapConfigDump {
  47. config.bootstrap.v2.Bootstrap bootstrap = 1;
  48. // The timestamp when the BootstrapConfig was last updated.
  49. google.protobuf.Timestamp last_updated = 2;
  50. }
  51. // Envoy's listener manager fills this message with all currently known listeners. Listener
  52. // configuration information can be used to recreate an Envoy configuration by populating all
  53. // listeners as static listeners or by returning them in a LDS response.
  54. message ListenersConfigDump {
  55. // Describes a statically loaded listener.
  56. message StaticListener {
  57. // The listener config.
  58. google.protobuf.Any listener = 1;
  59. // The timestamp when the Listener was last successfully updated.
  60. google.protobuf.Timestamp last_updated = 2;
  61. }
  62. message DynamicListenerState {
  63. // This is the per-resource version information. This version is currently taken from the
  64. // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
  65. // that the listener was loaded. In the future, discrete per-listener versions may be supported
  66. // by the API.
  67. string version_info = 1;
  68. // The listener config.
  69. google.protobuf.Any listener = 2;
  70. // The timestamp when the Listener was last successfully updated.
  71. google.protobuf.Timestamp last_updated = 3;
  72. }
  73. // Describes a dynamically loaded listener via the LDS API.
  74. // [#next-free-field: 6]
  75. message DynamicListener {
  76. // The name or unique id of this listener, pulled from the DynamicListenerState config.
  77. string name = 1;
  78. // The listener state for any active listener by this name.
  79. // These are listeners that are available to service data plane traffic.
  80. DynamicListenerState active_state = 2;
  81. // The listener state for any warming listener by this name.
  82. // These are listeners that are currently undergoing warming in preparation to service data
  83. // plane traffic. Note that if attempting to recreate an Envoy configuration from a
  84. // configuration dump, the warming listeners should generally be discarded.
  85. DynamicListenerState warming_state = 3;
  86. // The listener state for any draining listener by this name.
  87. // These are listeners that are currently undergoing draining in preparation to stop servicing
  88. // data plane traffic. Note that if attempting to recreate an Envoy configuration from a
  89. // configuration dump, the draining listeners should generally be discarded.
  90. DynamicListenerState draining_state = 4;
  91. // Set if the last update failed, cleared after the next successful update.
  92. UpdateFailureState error_state = 5;
  93. }
  94. // This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
  95. // last processed LDS discovery response. If there are only static bootstrap listeners, this field
  96. // will be "".
  97. string version_info = 1;
  98. // The statically loaded listener configs.
  99. repeated StaticListener static_listeners = 2;
  100. // State for any warming, active, or draining listeners.
  101. repeated DynamicListener dynamic_listeners = 3;
  102. }
  103. // Envoy's cluster manager fills this message with all currently known clusters. Cluster
  104. // configuration information can be used to recreate an Envoy configuration by populating all
  105. // clusters as static clusters or by returning them in a CDS response.
  106. message ClustersConfigDump {
  107. // Describes a statically loaded cluster.
  108. message StaticCluster {
  109. // The cluster config.
  110. google.protobuf.Any cluster = 1;
  111. // The timestamp when the Cluster was last updated.
  112. google.protobuf.Timestamp last_updated = 2;
  113. }
  114. // Describes a dynamically loaded cluster via the CDS API.
  115. message DynamicCluster {
  116. // This is the per-resource version information. This version is currently taken from the
  117. // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time
  118. // that the cluster was loaded. In the future, discrete per-cluster versions may be supported by
  119. // the API.
  120. string version_info = 1;
  121. // The cluster config.
  122. google.protobuf.Any cluster = 2;
  123. // The timestamp when the Cluster was last updated.
  124. google.protobuf.Timestamp last_updated = 3;
  125. }
  126. // This is the :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` in the
  127. // last processed CDS discovery response. If there are only static bootstrap clusters, this field
  128. // will be "".
  129. string version_info = 1;
  130. // The statically loaded cluster configs.
  131. repeated StaticCluster static_clusters = 2;
  132. // The dynamically loaded active clusters. These are clusters that are available to service
  133. // data plane traffic.
  134. repeated DynamicCluster dynamic_active_clusters = 3;
  135. // The dynamically loaded warming clusters. These are clusters that are currently undergoing
  136. // warming in preparation to service data plane traffic. Note that if attempting to recreate an
  137. // Envoy configuration from a configuration dump, the warming clusters should generally be
  138. // discarded.
  139. repeated DynamicCluster dynamic_warming_clusters = 4;
  140. }
  141. // Envoy's RDS implementation fills this message with all currently loaded routes, as described by
  142. // their RouteConfiguration objects. Static routes that are either defined in the bootstrap configuration
  143. // or defined inline while configuring listeners are separated from those configured dynamically via RDS.
  144. // Route configuration information can be used to recreate an Envoy configuration by populating all routes
  145. // as static routes or by returning them in RDS responses.
  146. message RoutesConfigDump {
  147. message StaticRouteConfig {
  148. // The route config.
  149. google.protobuf.Any route_config = 1;
  150. // The timestamp when the Route was last updated.
  151. google.protobuf.Timestamp last_updated = 2;
  152. }
  153. message DynamicRouteConfig {
  154. // This is the per-resource version information. This version is currently taken from the
  155. // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
  156. // the route configuration was loaded.
  157. string version_info = 1;
  158. // The route config.
  159. google.protobuf.Any route_config = 2;
  160. // The timestamp when the Route was last updated.
  161. google.protobuf.Timestamp last_updated = 3;
  162. }
  163. // The statically loaded route configs.
  164. repeated StaticRouteConfig static_route_configs = 2;
  165. // The dynamically loaded route configs.
  166. repeated DynamicRouteConfig dynamic_route_configs = 3;
  167. }
  168. // Envoy's scoped RDS implementation fills this message with all currently loaded route
  169. // configuration scopes (defined via ScopedRouteConfigurationsSet protos). This message lists both
  170. // the scopes defined inline with the higher order object (i.e., the HttpConnectionManager) and the
  171. // dynamically obtained scopes via the SRDS API.
  172. message ScopedRoutesConfigDump {
  173. message InlineScopedRouteConfigs {
  174. // The name assigned to the scoped route configurations.
  175. string name = 1;
  176. // The scoped route configurations.
  177. repeated google.protobuf.Any scoped_route_configs = 2;
  178. // The timestamp when the scoped route config set was last updated.
  179. google.protobuf.Timestamp last_updated = 3;
  180. }
  181. message DynamicScopedRouteConfigs {
  182. // The name assigned to the scoped route configurations.
  183. string name = 1;
  184. // This is the per-resource version information. This version is currently taken from the
  185. // :ref:`version_info <envoy_api_field_DiscoveryResponse.version_info>` field at the time that
  186. // the scoped routes configuration was loaded.
  187. string version_info = 2;
  188. // The scoped route configurations.
  189. repeated google.protobuf.Any scoped_route_configs = 3;
  190. // The timestamp when the scoped route config set was last updated.
  191. google.protobuf.Timestamp last_updated = 4;
  192. }
  193. // The statically loaded scoped route configs.
  194. repeated InlineScopedRouteConfigs inline_scoped_route_configs = 1;
  195. // The dynamically loaded scoped route configs.
  196. repeated DynamicScopedRouteConfigs dynamic_scoped_route_configs = 2;
  197. }
  198. // Envoys SDS implementation fills this message with all secrets fetched dynamically via SDS.
  199. message SecretsConfigDump {
  200. // DynamicSecret contains secret information fetched via SDS.
  201. message DynamicSecret {
  202. // The name assigned to the secret.
  203. string name = 1;
  204. // This is the per-resource version information.
  205. string version_info = 2;
  206. // The timestamp when the secret was last updated.
  207. google.protobuf.Timestamp last_updated = 3;
  208. // The actual secret information.
  209. // Security sensitive information is redacted (replaced with "[redacted]") for
  210. // private keys and passwords in TLS certificates.
  211. google.protobuf.Any secret = 4;
  212. }
  213. // StaticSecret specifies statically loaded secret in bootstrap.
  214. message StaticSecret {
  215. // The name assigned to the secret.
  216. string name = 1;
  217. // The timestamp when the secret was last updated.
  218. google.protobuf.Timestamp last_updated = 2;
  219. // The actual secret information.
  220. // Security sensitive information is redacted (replaced with "[redacted]") for
  221. // private keys and passwords in TLS certificates.
  222. google.protobuf.Any secret = 3;
  223. }
  224. // The statically loaded secrets.
  225. repeated StaticSecret static_secrets = 1;
  226. // The dynamically loaded active secrets. These are secrets that are available to service
  227. // clusters or listeners.
  228. repeated DynamicSecret dynamic_active_secrets = 2;
  229. // The dynamically loaded warming secrets. These are secrets that are currently undergoing
  230. // warming in preparation to service clusters or listeners.
  231. repeated DynamicSecret dynamic_warming_secrets = 3;
  232. }