• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2020 The gRPC Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Local copy of Envoy xDS proto file, used for testing only.
16
17syntax = "proto3";
18
19package envoy.config.core.v3;
20
21// [#protodoc-title: Configuration sources]
22
23// Aggregated Discovery Service (ADS) options. This is currently empty, but when
24// set in :ref:`ConfigSource <envoy_api_msg_config.core.v3.ConfigSource>` can be used to
25// specify that ADS is to be used.
26message AggregatedConfigSource {
27}
28
29// [#not-implemented-hide:]
30// Self-referencing config source options. This is currently empty, but when
31// set in :ref:`ConfigSource <envoy_api_msg_config.core.v3.ConfigSource>` can be used to
32// specify that other data can be obtained from the same server.
33message SelfConfigSource {
34}
35
36// Configuration for :ref:`listeners <config_listeners>`, :ref:`clusters
37// <config_cluster_manager>`, :ref:`routes
38// <envoy_api_msg_config.route.v3.RouteConfiguration>`, :ref:`endpoints
39// <arch_overview_service_discovery>` etc. may either be sourced from the
40// filesystem or from an xDS API source. Filesystem configs are watched with
41// inotify for updates.
42// [#next-free-field: 7]
43message ConfigSource {
44  oneof config_source_specifier {
45    // Path on the filesystem to source and watch for configuration updates.
46    // When sourcing configuration for :ref:`secret <envoy_api_msg_extensions.transport_sockets.tls.v3.Secret>`,
47    // the certificate and key files are also watched for updates.
48    //
49    // .. note::
50    //
51    //  The path to the source must exist at config load time.
52    //
53    // .. note::
54    //
55    //   Envoy will only watch the file path for *moves.* This is because in general only moves
56    //   are atomic. The same method of swapping files as is demonstrated in the
57    //   :ref:`runtime documentation <config_runtime_symbolic_link_swap>` can be used here also.
58    string path = 1;
59
60    // When set, ADS will be used to fetch resources. The ADS API configuration
61    // source in the bootstrap configuration is used.
62    AggregatedConfigSource ads = 3;
63
64    // [#not-implemented-hide:]
65    // When set, the client will access the resources from the same server it got the
66    // ConfigSource from, although not necessarily from the same stream. This is similar to the
67    // :ref:`ads<envoy_api_field.ConfigSource.ads>` field, except that the client may use a
68    // different stream to the same server. As a result, this field can be used for things
69    // like LRS that cannot be sent on an ADS stream. It can also be used to link from (e.g.)
70    // LDS to RDS on the same server without requiring the management server to know its name
71    // or required credentials.
72    // [#next-major-version: In xDS v3, consider replacing the ads field with this one, since
73    // this field can implicitly mean to use the same stream in the case where the ConfigSource
74    // is provided via ADS and the specified data can also be obtained via ADS.]
75    SelfConfigSource self = 5;
76  }
77}
78