pub struct Bootstrap {Show 39 fields
pub node: Option<Node>,
pub node_context_params: Vec<String>,
pub static_resources: Option<StaticResources>,
pub dynamic_resources: Option<DynamicResources>,
pub cluster_manager: Option<ClusterManager>,
pub hds_config: Option<ApiConfigSource>,
pub flags_path: String,
pub stats_sinks: Vec<StatsSink>,
pub deferred_stat_options: Option<DeferredStatOptions>,
pub stats_config: Option<StatsConfig>,
pub stats_flush_interval: Option<Duration>,
pub watchdog: Option<Watchdog>,
pub watchdogs: Option<Watchdogs>,
pub tracing: Option<Tracing>,
pub layered_runtime: Option<LayeredRuntime>,
pub admin: Option<Admin>,
pub overload_manager: Option<OverloadManager>,
pub enable_dispatcher_stats: bool,
pub header_prefix: String,
pub stats_server_version_override: Option<UInt64Value>,
pub use_tcp_for_dns_lookups: bool,
pub dns_resolution_config: Option<DnsResolutionConfig>,
pub typed_dns_resolver_config: Option<TypedExtensionConfig>,
pub bootstrap_extensions: Vec<TypedExtensionConfig>,
pub fatal_actions: Vec<FatalAction>,
pub config_sources: Vec<ConfigSource>,
pub default_config_source: Option<ConfigSource>,
pub default_socket_interface: String,
pub certificate_provider_instances: HashMap<String, TypedExtensionConfig>,
pub inline_headers: Vec<CustomInlineHeader>,
pub perf_tracing_file_path: String,
pub default_regex_engine: Option<TypedExtensionConfig>,
pub xds_delegate_extension: Option<TypedExtensionConfig>,
pub xds_config_tracker_extension: Option<TypedExtensionConfig>,
pub listener_manager: Option<TypedExtensionConfig>,
pub application_log_config: Option<ApplicationLogConfig>,
pub grpc_async_client_manager_config: Option<GrpcAsyncClientManagerConfig>,
pub memory_allocator_manager: Option<MemoryAllocatorManager>,
pub stats_flush: Option<StatsFlush>,
}
Expand description
Bootstrap :ref:configuration overview <config_overview_bootstrap>
.
[#next-free-field: 42]
Fields§
§node: Option<Node>
Node identity to present to the management server and for instance identification purposes (e.g. in generated headers).
node_context_params: Vec<String>
A list of :ref:Node <envoy_v3_api_msg_config.core.v3.Node>
field names
that will be included in the context parameters of the effective
xdstp:// URL that is sent in a discovery request when resource
locators are used for LDS/CDS. Any non-string field will have its JSON
encoding set as the context parameter value, with the exception of
metadata, which will be flattened (see example below). The supported field
names are:
- “cluster”
- “id”
- “locality.region”
- “locality.sub_zone”
- “locality.zone”
- “metadata”
- “user_agent_build_version.metadata”
- “user_agent_build_version.version”
- “user_agent_name”
- “user_agent_version”
The node context parameters act as a base layer dictionary for the context parameters (i.e. more specific resource specific context parameters will override). Field names will be prefixed with “udpa.node.” when included in context parameters.
For example, if node_context_params is \["user_agent_name", "metadata"\]
,
the implied context parameters might be::
node.user_agent_name: “envoy” node.metadata.foo: “{"bar": "baz"}” node.metadata.some: “42” node.metadata.thing: “"thing"”
[#not-implemented-hide:]
static_resources: Option<StaticResources>
Statically specified resources.
dynamic_resources: Option<DynamicResources>
xDS configuration sources.
cluster_manager: Option<ClusterManager>
Configuration for the cluster manager which owns all upstream clusters within the server.
hds_config: Option<ApiConfigSource>
Health discovery service config option.
(:ref:core.ApiConfigSource <envoy_v3_api_msg_config.core.v3.ApiConfigSource>
)
flags_path: String
Optional file system path to search for startup flag files.
stats_sinks: Vec<StatsSink>
Optional set of stats sinks.
deferred_stat_options: Option<DeferredStatOptions>
Options to control behaviors of deferred creation compatible stats.
stats_config: Option<StatsConfig>
Configuration for internal processing of stats.
stats_flush_interval: Option<Duration>
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). Only one of stats_flush_interval
or stats_flush_on_admin
can be set.
Duration must be at least 1ms and at most 5 min.
watchdog: Option<Watchdog>
Optional watchdog configuration.
This is for a single watchdog configuration for the entire system.
Deprecated in favor of watchdogs
which has finer granularity.
watchdogs: Option<Watchdogs>
Optional watchdogs configuration. This is used for specifying different watchdogs for the different subsystems. [#extension-category: envoy.guarddog_actions]
tracing: Option<Tracing>
Configuration for an external tracing provider.
.. attention::
This field has been deprecated in favor of :ref:HttpConnectionManager.Tracing.provider <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.Tracing.provider>
.
layered_runtime: Option<LayeredRuntime>
Configuration for the runtime configuration provider. If not specified, a “null” provider will be used which will result in all defaults being used.
admin: Option<Admin>
Configuration for the local administration HTTP server.
overload_manager: Option<OverloadManager>
Optional overload manager configuration.
enable_dispatcher_stats: bool
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_v3_api_msg_config.metrics.v3.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.
header_prefix: String
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.
stats_server_version_override: Option<UInt64Value>
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_v3_api_msg_config.metrics.v3.StatsSink>
.
use_tcp_for_dns_lookups: bool
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_v3_api_field_config.cluster.v3.Cluster.dns_resolvers>
and
:ref:use_tcp_for_dns_lookups <envoy_v3_api_field_config.cluster.v3.Cluster.use_tcp_for_dns_lookups>
are
specified.
This field is deprecated in favor of dns_resolution_config
which aggregates all of the DNS resolver configuration in a single message.
dns_resolution_config: Option<DnsResolutionConfig>
DNS resolution configuration which includes the underlying dns resolver addresses and options.
This may be overridden on a per-cluster basis in cds_config, when
:ref:dns_resolution_config <envoy_v3_api_field_config.cluster.v3.Cluster.dns_resolution_config>
is specified.
This field is deprecated in favor of
:ref:typed_dns_resolver_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.typed_dns_resolver_config>
.
typed_dns_resolver_config: Option<TypedExtensionConfig>
DNS resolver type configuration extension. This extension can be used to configure c-ares, apple,
or any other DNS resolver types and the related parameters.
For example, an object of
:ref:CaresDnsResolverConfig <envoy_v3_api_msg_extensions.network.dns_resolver.cares.v3.CaresDnsResolverConfig>
can be packed into this typed_dns_resolver_config
. This configuration replaces the
:ref:dns_resolution_config <envoy_v3_api_field_config.bootstrap.v3.Bootstrap.dns_resolution_config>
configuration.
During the transition period when both dns_resolution_config
and typed_dns_resolver_config
exists,
when typed_dns_resolver_config
is in place, Envoy will use it and ignore dns_resolution_config
.
When typed_dns_resolver_config
is missing, the default behavior is in place.
[#extension-category: envoy.network.dns_resolver]
bootstrap_extensions: Vec<TypedExtensionConfig>
Specifies optional bootstrap extensions to be instantiated at startup time. Each item contains extension specific configuration. [#extension-category: envoy.bootstrap]
fatal_actions: Vec<FatalAction>
Specifies optional extensions instantiated at startup time and invoked during crash time on the request that caused the crash.
config_sources: Vec<ConfigSource>
Configuration sources that will participate in xdstp:// URL authority resolution. The algorithm is as follows:
- The authority field is taken from the xdstp:// URL, call
this
resource_authority
. resource_authority
is compared against the authorities in any peerConfigSource
. The peerConfigSource
is the configuration source message which would have been used unconditionally for resolution with opaque resource names. If there is a match with an authority, the peerConfigSource
message is used.resource_authority
is compared sequentially with the authorities in each configuration source inconfig_sources
. The firstConfigSource
to match wins.- As a fallback, if no configuration source matches, then
default_config_source
is used. - If
default_config_source
is not specified, resolution fails. [#not-implemented-hide:]
default_config_source: Option<ConfigSource>
Default configuration source for xdstp:// URLs if all other resolution fails. [#not-implemented-hide:]
default_socket_interface: String
Optional overriding of default socket interface. The value must be the name of one of the socket interface factories initialized through a bootstrap extension
certificate_provider_instances: HashMap<String, TypedExtensionConfig>
Global map of CertificateProvider instances. These instances are referred to by name in the
:ref:CommonTlsContext.CertificateProviderInstance.instance_name <envoy_v3_api_field_extensions.transport_sockets.tls.v3.CommonTlsContext.CertificateProviderInstance.instance_name>
field.
[#not-implemented-hide:]
inline_headers: Vec<CustomInlineHeader>
Specifies a set of headers that need to be registered as inline header. This configuration allows users to customize the inline headers on-demand at Envoy startup without modifying Envoy’s source code.
Note that the ‘set-cookie’ header cannot be registered as inline header.
perf_tracing_file_path: String
Optional path to a file with performance tracing data created by “Perfetto” SDK in binary ProtoBuf format. The default value is “envoy.pftrace”.
default_regex_engine: Option<TypedExtensionConfig>
Optional overriding of default regex engine. If the value is not specified, Google RE2 will be used by default. [#extension-category: envoy.regex_engines]
xds_delegate_extension: Option<TypedExtensionConfig>
Optional XdsResourcesDelegate configuration, which allows plugging custom logic into both fetch and load events during xDS processing. If a value is not specified, no XdsResourcesDelegate will be used. TODO(abeyad): Add public-facing documentation. [#not-implemented-hide:]
xds_config_tracker_extension: Option<TypedExtensionConfig>
Optional XdsConfigTracker configuration, which allows tracking xDS responses in external components, e.g., external tracer or monitor. It provides the process point when receive, ingest, or fail to process xDS resources and messages. If a value is not specified, no XdsConfigTracker will be used.
.. note::
There are no in-repo extensions currently, and the :repo:`XdsConfigTracker <envoy/config/xds_config_tracker.h>`
interface should be implemented before using.
See :repo:`xds_config_tracker_integration_test <test/integration/xds_config_tracker_integration_test.cc>`
for an example usage of the interface.
listener_manager: Option<TypedExtensionConfig>
[#not-implemented-hide:] This controls the type of listener manager configured for Envoy. Currently Envoy only supports ListenerManager for this field and Envoy Mobile supports ApiListenerManager.
application_log_config: Option<ApplicationLogConfig>
Optional application log configuration.
grpc_async_client_manager_config: Option<GrpcAsyncClientManagerConfig>
Optional gRPC async manager config.
memory_allocator_manager: Option<MemoryAllocatorManager>
Optional configuration for memory allocation manager.
Memory releasing is only supported for tcmalloc allocator <<https://github.com/google/tcmalloc>
_.>
stats_flush: Option<StatsFlush>
Trait Implementations§
Source§impl Message for Bootstrap
impl Message for Bootstrap
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl Name for Bootstrap
impl Name for Bootstrap
Source§const NAME: &'static str = "Bootstrap"
const NAME: &'static str = "Bootstrap"
Message
.
This name is the same as it appears in the source .proto file, e.g. FooBar
.Source§const PACKAGE: &'static str = "envoy.config.bootstrap.v3"
const PACKAGE: &'static str = "envoy.config.bootstrap.v3"
.
, e.g. google.protobuf
.Source§fn full_name() -> String
fn full_name() -> String
Message
.
It’s prefixed with the package name and names of any parent messages,
e.g. google.rpc.BadRequest.FieldViolation
.
By default, this is the package name followed by the message name.
Fully-qualified names must be unique within a domain of Type URLs.impl StructuralPartialEq for Bootstrap
Auto Trait Implementations§
impl Freeze for Bootstrap
impl RefUnwindSafe for Bootstrap
impl Send for Bootstrap
impl Sync for Bootstrap
impl Unpin for Bootstrap
impl UnwindSafe for Bootstrap
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request