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