summaryrefslogtreecommitdiff
path: root/src/rpc/envoy.config.bootstrap.v2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpc/envoy.config.bootstrap.v2.rs')
-rw-r--r--src/rpc/envoy.config.bootstrap.v2.rs357
1 files changed, 357 insertions, 0 deletions
diff --git a/src/rpc/envoy.config.bootstrap.v2.rs b/src/rpc/envoy.config.bootstrap.v2.rs
new file mode 100644
index 00000000..c541ccbf
--- /dev/null
+++ b/src/rpc/envoy.config.bootstrap.v2.rs
@@ -0,0 +1,357 @@
+// @generated
+// This file is @generated by prost-build.
+// \[#protodoc-title: Bootstrap\]
+// This proto is supplied via the :option:`-c` CLI flag and acts as the root
+// of the Envoy v2 configuration. See the :ref:`v2 configuration overview
+// <config_overview_bootstrap>` for more detail.
+
+/// Bootstrap :ref:`configuration overview <config_overview_bootstrap>`.
+/// \[#next-free-field: 21\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Bootstrap {
+ /// Node identity to present to the management server and for instance
+ /// identification purposes (e.g. in generated headers).
+ #[prost(message, optional, tag="1")]
+ pub node: ::core::option::Option<super::super::super::api::v2::core::Node>,
+ /// Statically specified resources.
+ #[prost(message, optional, tag="2")]
+ pub static_resources: ::core::option::Option<bootstrap::StaticResources>,
+ /// xDS configuration sources.
+ #[prost(message, optional, tag="3")]
+ pub dynamic_resources: ::core::option::Option<bootstrap::DynamicResources>,
+ /// Configuration for the cluster manager which owns all upstream clusters
+ /// within the server.
+ #[prost(message, optional, tag="4")]
+ pub cluster_manager: ::core::option::Option<ClusterManager>,
+ /// Health discovery service config option.
+ /// (:ref:`core.ApiConfigSource <envoy_api_msg_core.ApiConfigSource>`)
+ #[prost(message, optional, tag="14")]
+ pub hds_config: ::core::option::Option<super::super::super::api::v2::core::ApiConfigSource>,
+ /// Optional file system path to search for startup flag files.
+ #[prost(string, tag="5")]
+ pub flags_path: ::prost::alloc::string::String,
+ /// Optional set of stats sinks.
+ #[prost(message, repeated, tag="6")]
+ pub stats_sinks: ::prost::alloc::vec::Vec<super::super::metrics::v2::StatsSink>,
+ /// Configuration for internal processing of stats.
+ #[prost(message, optional, tag="13")]
+ pub stats_config: ::core::option::Option<super::super::metrics::v2::StatsConfig>,
+ /// Optional duration between flushes to configured stats sinks. For
+ /// performance reasons Envoy latches counters and only flushes counters and
+ /// gauges at a periodic interval. If not specified the default is 5000ms (5
+ /// seconds).
+ /// Duration must be at least 1ms and at most 5 min.
+ #[prost(message, optional, tag="7")]
+ pub stats_flush_interval: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
+ /// Optional watchdog configuration.
+ #[prost(message, optional, tag="8")]
+ pub watchdog: ::core::option::Option<Watchdog>,
+ /// Configuration for an external tracing provider.
+ ///
+ /// .. attention::
+ /// This field has been deprecated in favor of :ref:`HttpConnectionManager.Tracing.provider
+ /// <envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.Tracing.provider>`.
+ #[prost(message, optional, tag="9")]
+ pub tracing: ::core::option::Option<super::super::trace::v2::Tracing>,
+ /// Configuration for the runtime configuration provider (deprecated). If not
+ /// specified, a “null” provider will be used which will result in all defaults
+ /// being used.
+ #[deprecated]
+ #[prost(message, optional, tag="11")]
+ pub runtime: ::core::option::Option<Runtime>,
+ /// Configuration for the runtime configuration provider. If not
+ /// specified, a “null” provider will be used which will result in all defaults
+ /// being used.
+ #[prost(message, optional, tag="17")]
+ pub layered_runtime: ::core::option::Option<LayeredRuntime>,
+ /// Configuration for the local administration HTTP server.
+ #[prost(message, optional, tag="12")]
+ pub admin: ::core::option::Option<Admin>,
+ /// Optional overload manager configuration.
+ #[prost(message, optional, tag="15")]
+ pub overload_manager: ::core::option::Option<super::super::overload::v2alpha::OverloadManager>,
+ /// Enable :ref:`stats for event dispatcher <operations_performance>`, defaults to false.
+ /// Note that this records a value for each iteration of the event loop on every thread. This
+ /// should normally be minimal overhead, but when using
+ /// :ref:`statsd <envoy_api_msg_config.metrics.v2.StatsdSink>`, it will send each observed value
+ /// over the wire individually because the statsd protocol doesn't have any way to represent a
+ /// histogram summary. Be aware that this can be a very large volume of data.
+ #[prost(bool, tag="16")]
+ pub enable_dispatcher_stats: bool,
+ /// Optional string which will be used in lieu of x-envoy in prefixing headers.
+ ///
+ /// For example, if this string is present and set to X-Foo, then x-envoy-retry-on will be
+ /// transformed into x-foo-retry-on etc.
+ ///
+ /// Note this applies to the headers Envoy will generate, the headers Envoy will sanitize, and the
+ /// headers Envoy will trust for core code and core extensions only. Be VERY careful making
+ /// changes to this string, especially in multi-layer Envoy deployments or deployments using
+ /// extensions which are not upstream.
+ #[prost(string, tag="18")]
+ pub header_prefix: ::prost::alloc::string::String,
+ /// Optional proxy version which will be used to set the value of :ref:`server.version statistic
+ /// <server_statistics>` if specified. Envoy will not process this value, it will be sent as is to
+ /// :ref:`stats sinks <envoy_api_msg_config.metrics.v2.StatsSink>`.
+ #[prost(message, optional, tag="19")]
+ pub stats_server_version_override: ::core::option::Option<super::super::super::super::google::protobuf::UInt64Value>,
+ /// Always use TCP queries instead of UDP queries for DNS lookups.
+ /// This may be overridden on a per-cluster basis in cds_config,
+ /// when :ref:`dns_resolvers <envoy_api_field_Cluster.dns_resolvers>` and
+ /// :ref:`use_tcp_for_dns_lookups <envoy_api_field_Cluster.use_tcp_for_dns_lookups>` are
+ /// specified.
+ /// Setting this value causes failure if the
+ /// ``envoy.restart_features.use_apple_api_for_dns_lookups`` runtime value is true during
+ /// server startup. Apple' API only uses UDP for DNS resolution.
+ #[prost(bool, tag="20")]
+ pub use_tcp_for_dns_lookups: bool,
+}
+/// Nested message and enum types in `Bootstrap`.
+pub mod bootstrap {
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct StaticResources {
+ /// Static :ref:`Listeners <envoy_api_msg_Listener>`. These listeners are
+ /// available regardless of LDS configuration.
+ #[prost(message, repeated, tag="1")]
+ pub listeners: ::prost::alloc::vec::Vec<super::super::super::super::api::v2::Listener>,
+ /// If a network based configuration source is specified for :ref:`cds_config
+ /// <envoy_api_field_config.bootstrap.v2.Bootstrap.DynamicResources.cds_config>`, it's necessary
+ /// to have some initial cluster definitions available to allow Envoy to know
+ /// how to speak to the management server. These cluster definitions may not
+ /// use :ref:`EDS <arch_overview_dynamic_config_eds>` (i.e. they should be static
+ /// IP or DNS-based).
+ #[prost(message, repeated, tag="2")]
+ pub clusters: ::prost::alloc::vec::Vec<super::super::super::super::api::v2::Cluster>,
+ /// These static secrets can be used by :ref:`SdsSecretConfig
+ /// <envoy_api_msg_auth.SdsSecretConfig>`
+ #[prost(message, repeated, tag="3")]
+ pub secrets: ::prost::alloc::vec::Vec<super::super::super::super::api::v2::auth::Secret>,
+ }
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DynamicResources {
+ /// All :ref:`Listeners <envoy_api_msg_Listener>` are provided by a single
+ /// :ref:`LDS <arch_overview_dynamic_config_lds>` configuration source.
+ #[prost(message, optional, tag="1")]
+ pub lds_config: ::core::option::Option<super::super::super::super::api::v2::core::ConfigSource>,
+ /// All post-bootstrap :ref:`Cluster <envoy_api_msg_Cluster>` definitions are
+ /// provided by a single :ref:`CDS <arch_overview_dynamic_config_cds>`
+ /// configuration source.
+ #[prost(message, optional, tag="2")]
+ pub cds_config: ::core::option::Option<super::super::super::super::api::v2::core::ConfigSource>,
+ /// A single :ref:`ADS <config_overview_ads>` source may be optionally
+ /// specified. This must have :ref:`api_type
+ /// <envoy_api_field_core.ApiConfigSource.api_type>` :ref:`GRPC
+ /// <envoy_api_enum_value_core.ApiConfigSource.ApiType.GRPC>`. Only
+ /// :ref:`ConfigSources <envoy_api_msg_core.ConfigSource>` that have
+ /// the :ref:`ads <envoy_api_field_core.ConfigSource.ads>` field set will be
+ /// streamed on the ADS channel.
+ #[prost(message, optional, tag="3")]
+ pub ads_config: ::core::option::Option<super::super::super::super::api::v2::core::ApiConfigSource>,
+ }
+}
+/// Administration interface :ref:`operations documentation
+/// <operations_admin_interface>`.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Admin {
+ /// The path to write the access log for the administration server. If no
+ /// access log is desired specify ‘/dev/null’. This is only required if
+ /// :ref:`address <envoy_api_field_config.bootstrap.v2.Admin.address>` is set.
+ #[prost(string, tag="1")]
+ pub access_log_path: ::prost::alloc::string::String,
+ /// The cpu profiler output path for the administration server. If no profile
+ /// path is specified, the default is ‘/var/log/envoy/envoy.prof’.
+ #[prost(string, tag="2")]
+ pub profile_path: ::prost::alloc::string::String,
+ /// The TCP address that the administration server will listen on.
+ /// If not specified, Envoy will not start an administration server.
+ #[prost(message, optional, tag="3")]
+ pub address: ::core::option::Option<super::super::super::api::v2::core::Address>,
+ /// Additional socket options that may not be present in Envoy source code or
+ /// precompiled binaries.
+ #[prost(message, repeated, tag="4")]
+ pub socket_options: ::prost::alloc::vec::Vec<super::super::super::api::v2::core::SocketOption>,
+}
+/// Cluster manager :ref:`architecture overview <arch_overview_cluster_manager>`.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct ClusterManager {
+ /// Name of the local cluster (i.e., the cluster that owns the Envoy running
+ /// this configuration). In order to enable :ref:`zone aware routing
+ /// <arch_overview_load_balancing_zone_aware_routing>` this option must be set.
+ /// If *local_cluster_name* is defined then :ref:`clusters
+ /// <envoy_api_msg_Cluster>` must be defined in the :ref:`Bootstrap
+ /// static cluster resources
+ /// <envoy_api_field_config.bootstrap.v2.Bootstrap.StaticResources.clusters>`. This is unrelated to
+ /// the :option:`--service-cluster` option which does not `affect zone aware
+ /// routing <<https://github.com/envoyproxy/envoy/issues/774>`_.>
+ #[prost(string, tag="1")]
+ pub local_cluster_name: ::prost::alloc::string::String,
+ /// Optional global configuration for outlier detection.
+ #[prost(message, optional, tag="2")]
+ pub outlier_detection: ::core::option::Option<cluster_manager::OutlierDetection>,
+ /// Optional configuration used to bind newly established upstream connections.
+ /// This may be overridden on a per-cluster basis by upstream_bind_config in the cds_config.
+ #[prost(message, optional, tag="3")]
+ pub upstream_bind_config: ::core::option::Option<super::super::super::api::v2::core::BindConfig>,
+ /// A management server endpoint to stream load stats to via
+ /// *StreamLoadStats*. This must have :ref:`api_type
+ /// <envoy_api_field_core.ApiConfigSource.api_type>` :ref:`GRPC
+ /// <envoy_api_enum_value_core.ApiConfigSource.ApiType.GRPC>`.
+ #[prost(message, optional, tag="4")]
+ pub load_stats_config: ::core::option::Option<super::super::super::api::v2::core::ApiConfigSource>,
+}
+/// Nested message and enum types in `ClusterManager`.
+pub mod cluster_manager {
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct OutlierDetection {
+ /// Specifies the path to the outlier event log.
+ #[prost(string, tag="1")]
+ pub event_log_path: ::prost::alloc::string::String,
+ /// \[#not-implemented-hide:\]
+ /// The gRPC service for the outlier detection event service.
+ /// If empty, outlier detection events won't be sent to a remote endpoint.
+ #[prost(message, optional, tag="2")]
+ pub event_service: ::core::option::Option<super::super::super::super::api::v2::core::EventServiceConfig>,
+ }
+}
+/// Envoy process watchdog configuration. When configured, this monitors for
+/// nonresponsive threads and kills the process after the configured thresholds.
+/// See the :ref:`watchdog documentation <operations_performance_watchdog>` for more information.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, Copy, PartialEq, ::prost::Message)]
+pub struct Watchdog {
+ /// The duration after which Envoy counts a nonresponsive thread in the
+ /// *watchdog_miss* statistic. If not specified the default is 200ms.
+ #[prost(message, optional, tag="1")]
+ pub miss_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
+ /// The duration after which Envoy counts a nonresponsive thread in the
+ /// *watchdog_mega_miss* statistic. If not specified the default is
+ /// 1000ms.
+ #[prost(message, optional, tag="2")]
+ pub megamiss_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
+ /// If a watched thread has been nonresponsive for this duration, assume a
+ /// programming error and kill the entire Envoy process. Set to 0 to disable
+ /// kill behavior. If not specified the default is 0 (disabled).
+ #[prost(message, optional, tag="3")]
+ pub kill_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
+ /// If at least two watched threads have been nonresponsive for at least this
+ /// duration assume a true deadlock and kill the entire Envoy process. Set to 0
+ /// to disable this behavior. If not specified the default is 0 (disabled).
+ #[prost(message, optional, tag="4")]
+ pub multikill_timeout: ::core::option::Option<super::super::super::super::google::protobuf::Duration>,
+}
+/// Runtime :ref:`configuration overview <config_runtime>` (deprecated).
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct Runtime {
+ /// The implementation assumes that the file system tree is accessed via a
+ /// symbolic link. An atomic link swap is used when a new tree should be
+ /// switched to. This parameter specifies the path to the symbolic link. Envoy
+ /// will watch the location for changes and reload the file system tree when
+ /// they happen. If this parameter is not set, there will be no disk based
+ /// runtime.
+ #[prost(string, tag="1")]
+ pub symlink_root: ::prost::alloc::string::String,
+ /// Specifies the subdirectory to load within the root directory. This is
+ /// useful if multiple systems share the same delivery mechanism. Envoy
+ /// configuration elements can be contained in a dedicated subdirectory.
+ #[prost(string, tag="2")]
+ pub subdirectory: ::prost::alloc::string::String,
+ /// Specifies an optional subdirectory to load within the root directory. If
+ /// specified and the directory exists, configuration values within this
+ /// directory will override those found in the primary subdirectory. This is
+ /// useful when Envoy is deployed across many different types of servers.
+ /// Sometimes it is useful to have a per service cluster directory for runtime
+ /// configuration. See below for exactly how the override directory is used.
+ #[prost(string, tag="3")]
+ pub override_subdirectory: ::prost::alloc::string::String,
+ /// Static base runtime. This will be :ref:`overridden
+ /// <config_runtime_layering>` by other runtime layers, e.g.
+ /// disk or admin. This follows the :ref:`runtime protobuf JSON representation
+ /// encoding <config_runtime_proto_json>`.
+ #[prost(message, optional, tag="4")]
+ pub base: ::core::option::Option<super::super::super::super::google::protobuf::Struct>,
+}
+/// \[#next-free-field: 6\]
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct RuntimeLayer {
+ /// Descriptive name for the runtime layer. This is only used for the runtime
+ /// :http:get:`/runtime` output.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ #[prost(oneof="runtime_layer::LayerSpecifier", tags="2, 3, 4, 5")]
+ pub layer_specifier: ::core::option::Option<runtime_layer::LayerSpecifier>,
+}
+/// Nested message and enum types in `RuntimeLayer`.
+pub mod runtime_layer {
+ /// :ref:`Disk runtime <config_runtime_local_disk>` layer.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct DiskLayer {
+ /// The implementation assumes that the file system tree is accessed via a
+ /// symbolic link. An atomic link swap is used when a new tree should be
+ /// switched to. This parameter specifies the path to the symbolic link.
+ /// Envoy will watch the location for changes and reload the file system tree
+ /// when they happen. See documentation on runtime :ref:`atomicity
+ /// <config_runtime_atomicity>` for further details on how reloads are
+ /// treated.
+ #[prost(string, tag="1")]
+ pub symlink_root: ::prost::alloc::string::String,
+ /// Specifies the subdirectory to load within the root directory. This is
+ /// useful if multiple systems share the same delivery mechanism. Envoy
+ /// configuration elements can be contained in a dedicated subdirectory.
+ #[prost(string, tag="3")]
+ pub subdirectory: ::prost::alloc::string::String,
+ /// :ref:`Append <config_runtime_local_disk_service_cluster_subdirs>` the
+ /// service cluster to the path under symlink root.
+ #[prost(bool, tag="2")]
+ pub append_service_cluster: bool,
+ }
+ /// :ref:`Admin console runtime <config_runtime_admin>` layer.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, Copy, PartialEq, ::prost::Message)]
+ pub struct AdminLayer {
+ }
+ /// :ref:`Runtime Discovery Service (RTDS) <config_runtime_rtds>` layer.
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+ pub struct RtdsLayer {
+ /// Resource to subscribe to at *rtds_config* for the RTDS layer.
+ #[prost(string, tag="1")]
+ pub name: ::prost::alloc::string::String,
+ /// RTDS configuration source.
+ #[prost(message, optional, tag="2")]
+ pub rtds_config: ::core::option::Option<super::super::super::super::api::v2::core::ConfigSource>,
+ }
+ #[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Oneof)]
+ pub enum LayerSpecifier {
+ /// :ref:`Static runtime <config_runtime_bootstrap>` layer.
+ /// This follows the :ref:`runtime protobuf JSON representation encoding
+ /// <config_runtime_proto_json>`. Unlike static xDS resources, this static
+ /// layer is overridable by later layers in the runtime virtual filesystem.
+ #[prost(message, tag="2")]
+ StaticLayer(super::super::super::super::super::google::protobuf::Struct),
+ #[prost(message, tag="3")]
+ DiskLayer(DiskLayer),
+ #[prost(message, tag="4")]
+ AdminLayer(AdminLayer),
+ #[prost(message, tag="5")]
+ RtdsLayer(RtdsLayer),
+ }
+}
+/// Runtime :ref:`configuration overview <config_runtime>`.
+#[allow(clippy::derive_partial_eq_without_eq)]
+#[derive(Clone, PartialEq, ::prost::Message)]
+pub struct LayeredRuntime {
+ /// The :ref:`layers <config_runtime_layering>` of the runtime. This is ordered
+ /// such that later layers in the list overlay earlier entries.
+ #[prost(message, repeated, tag="1")]
+ pub layers: ::prost::alloc::vec::Vec<RuntimeLayer>,
+}
+// @@protoc_insertion_point(module)