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