pub struct Node {
pub id: String,
pub cluster: String,
pub metadata: Option<Struct>,
pub dynamic_parameters: HashMap<String, ContextParams>,
pub locality: Option<Locality>,
pub user_agent_name: String,
pub extensions: Vec<Extension>,
pub client_features: Vec<String>,
pub listening_addresses: Vec<Address>,
pub user_agent_version_type: Option<UserAgentVersionType>,
}
Expand description
Identifies a specific Envoy instance. The node identifier is presented to the management server, which may use this identifier to distinguish per Envoy configuration for serving. [#next-free-field: 13]
Fields§
§id: String
An opaque node identifier for the Envoy node. This also provides the local
service node name. It should be set if any of the following features are
used: :ref:statsd <arch_overview_statistics>
, :ref:CDS <config_cluster_manager_cds>
, and :ref:HTTP tracing <arch_overview_tracing>
, either in this message or via
:option:--service-node
.
cluster: String
Defines the local service cluster name where Envoy is running. Though
optional, it should be set if any of the following features are used:
:ref:statsd <arch_overview_statistics>
, :ref:health check cluster verification <envoy_v3_api_field_config.core.v3.HealthCheck.HttpHealthCheck.service_name_matcher>
,
:ref:runtime override directory <envoy_v3_api_msg_config.bootstrap.v3.Runtime>
,
:ref:user agent addition <envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.add_user_agent>
,
:ref:HTTP global rate limiting <config_http_filters_rate_limit>
,
:ref:CDS <config_cluster_manager_cds>
, and :ref:HTTP tracing <arch_overview_tracing>
, either in this message or via
:option:--service-cluster
.
metadata: Option<Struct>
Opaque metadata extending the node identifier. Envoy will pass this directly to the management server.
dynamic_parameters: HashMap<String, ContextParams>
Map from xDS resource type URL to dynamic context parameters. These may vary at runtime (unlike other fields in this message). For example, the xDS client may have a shard identifier that changes during the lifetime of the xDS client. In Envoy, this would be achieved by updating the dynamic context on the Server::Instance’s LocalInfo context provider. The shard ID dynamic parameter then appears in this field during future discovery requests.
locality: Option<Locality>
Locality specifying where the Envoy instance is running.
user_agent_name: String
Free-form string that identifies the entity requesting config. E.g. “envoy” or “grpc”
extensions: Vec<Extension>
List of extensions and their versions supported by the node.
client_features: Vec<String>
Client feature support list. These are well known features described
in the Envoy API repository for a given major version of an API. Client features
use reverse DNS naming scheme, for example com.acme.feature
.
See :ref:the list of features <client_features>
that xDS client may
support.
listening_addresses: Vec<Address>
Known listening ports on the node as a generic hint to the management server
for filtering :ref:listeners <config_listeners>
to be returned. For example,
if there is a listener bound to port 80, the list can optionally contain the
SocketAddress (0.0.0.0,80)
. The field is optional and just a hint.
user_agent_version_type: Option<UserAgentVersionType>
Trait Implementations§
Source§impl Message for Node
impl Message for Node
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 Node
impl Name for Node
Source§const NAME: &'static str = "Node"
const NAME: &'static str = "Node"
Message
.
This name is the same as it appears in the source .proto file, e.g. FooBar
.Source§const PACKAGE: &'static str = "envoy.config.core.v3"
const PACKAGE: &'static str = "envoy.config.core.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 Node
Auto Trait Implementations§
impl Freeze for Node
impl RefUnwindSafe for Node
impl Send for Node
impl Sync for Node
impl Unpin for Node
impl UnwindSafe for Node
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