Struct Bootstrap

Source
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>
👎Deprecated

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>
👎Deprecated

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
👎Deprecated

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>
👎Deprecated

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:

  1. The authority field is taken from the xdstp:// URL, call this resource_authority.
  2. resource_authority is compared against the authorities in any peer ConfigSource. The peer ConfigSource 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 peer ConfigSource message is used.
  3. resource_authority is compared sequentially with the authorities in each configuration source in config_sources. The first ConfigSource to match wins.
  4. As a fallback, if no configuration source matches, then default_config_source is used.
  5. 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 Clone for Bootstrap

Source§

fn clone(&self) -> Bootstrap

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Bootstrap

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Bootstrap

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Message for Bootstrap

Source§

fn encoded_len(&self) -> usize

Returns the encoded length of the message without a length delimiter.
Source§

fn clear(&mut self)

Clears the message, resetting all fields to their default.
Source§

fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message to a buffer. Read more
Source§

fn encode_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message to a newly allocated buffer.
Source§

fn encode_length_delimited( &self, buf: &mut impl BufMut, ) -> Result<(), EncodeError>
where Self: Sized,

Encodes the message with a length-delimiter to a buffer. Read more
Source§

fn encode_length_delimited_to_vec(&self) -> Vec<u8>
where Self: Sized,

Encodes the message with a length-delimiter to a newly allocated buffer.
Source§

fn decode(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes an instance of the message from a buffer. Read more
Source§

fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>
where Self: Default,

Decodes a length-delimited instance of the message from the buffer.
Source§

fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes an instance of the message from a buffer, and merges it into self. Read more
Source§

fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>
where Self: Sized,

Decodes a length-delimited instance of the message from buffer, and merges it into self.
Source§

impl Name for Bootstrap

Source§

const NAME: &'static str = "Bootstrap"

Simple name for this 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"

Package name this message type is contained in. They are domain-like and delimited by ., e.g. google.protobuf.
Source§

fn full_name() -> String

Fully-qualified unique name for this 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.
Source§

fn type_url() -> String

Type URL for this Message, which by default is the full name with a leading slash, but may also include a leading domain name, e.g. type.googleapis.com/google.profile.Person. This can be used when serializing into the google.protobuf.Any type.
Source§

impl PartialEq for Bootstrap

Source§

fn eq(&self, other: &Bootstrap) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for Bootstrap

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more