/
config_discovery.proto
64 lines (52 loc) · 3.1 KB
/
config_discovery.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
syntax = "proto3";
package envoy.service.extension.v3;
import "envoy/service/discovery/v3/discovery.proto";
import "google/api/annotations.proto";
import "envoy/annotations/resource.proto";
import "udpa/annotations/status.proto";
option java_package = "io.envoyproxy.envoy.service.extension.v3";
option java_outer_classname = "ConfigDiscoveryProto";
option java_multiple_files = true;
option go_package = "github.com/envoyproxy/go-control-plane/envoy/service/extension/v3;extensionv3";
option (udpa.annotations.file_status).package_version_status = ACTIVE;
// [#protodoc-title: Extension config discovery service (ECDS)]
// A service that supports dynamic configuration updates for a specific filter.
// Currently, ECDS is supported for network filters, HTTP filters and Listener filters.
// Please check :ref:`Extension Config Discovery Service (ECDS) API <config_overview_extension_discovery>`.
// The overall extension config discovery service works as follows:
//
// 1. A filter (:ref:`Downstream Network <envoy_v3_api_field_config.listener.v3.Filter.config_discovery>`,
// :ref:`Upstream Network <envoy_v3_api_field_config.cluster.v3.Filter.config_discovery>`,
// :ref:`Listener <envoy_v3_api_field_config.listener.v3.ListenerFilter.config_discovery>`
// or :ref:`HTTP <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpFilter.config_discovery>`)
// contains a :ref:`config_discovery <envoy_v3_api_msg_config.core.v3.ExtensionConfigSource>` configuration. This configuration
// includes a :ref:`config_source <envoy_v3_api_field_config.core.v3.ExtensionConfigSource.config_source>`,
// from which the filter configuration will be fetched.
// 2. The client then registers for a resource using the filter name as the resource_name.
// 3. The xDS server sends back the filter's configuration.
// 4. The client stores the configuration that will be used in the next instantiation of the filter chain,
// i.e., for the next requests. Whenever an updated filter configuration arrives, it will be taken into
// account in the following instantiation of the filter chain.
//
// Note: Filters that are configured using ECDS are warmed. For more details see
// :ref:`ExtensionConfigSource <envoy_v3_api_msg_config.core.v3.ExtensionConfigSource>`.
// Return extension configurations.
service ExtensionConfigDiscoveryService {
option (envoy.annotations.resource).type = "envoy.config.core.v3.TypedExtensionConfig";
rpc StreamExtensionConfigs(stream discovery.v3.DiscoveryRequest)
returns (stream discovery.v3.DiscoveryResponse) {
}
rpc DeltaExtensionConfigs(stream discovery.v3.DeltaDiscoveryRequest)
returns (stream discovery.v3.DeltaDiscoveryResponse) {
}
rpc FetchExtensionConfigs(discovery.v3.DiscoveryRequest)
returns (discovery.v3.DiscoveryResponse) {
option (google.api.http).post = "/v3/discovery:extension_configs";
option (google.api.http).body = "*";
}
}
// [#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue
// with importing services: https://github.com/google/protobuf/issues/4221 and
// protoxform to upgrade the file.
message EcdsDummy {
}