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