envoy.api.v2.coreenvoy/api/v2/core/base.proto

Package : envoy.api.v2.core

Top

envoy/api/v2/core/base.proto

Table of Contents

AsyncDataSource

Async data source which support async data fetch.

Field Type Label Description
local DataSource Local async data source.
remote RemoteDataSource Remote async data source.

ControlPlane

Identifies a specific ControlPlane instance that Envoy is connected to.

Field Type Label Description
identifier string An opaque control plane identifier that uniquely identifies an instance
of control plane. This can be used to identify which control plane instance,
the Envoy is connected to.

DataSource

Data source consisting of either a file or an inline value.

Field Type Label Description
filename string Local filesystem data source.
inline_bytes bytes Bytes inlined in the configuration.
inline_string string String inlined in the configuration.

HeaderMap

Wrapper for a set of headers.

Field Type Label Description
headers []HeaderValue repeated

HeaderValue

Header name/value pair.

Field Type Label Description
key string Header name.
value string Header value.

The same format specifier (config_access_log_format) as used for HTTP access logging (config_access_log) applies here, however unknown header values are replaced with the empty string instead of -. |

HeaderValueOption

Header name/value pair plus option to control append behavior.

Field Type Label Description
header HeaderValue Explicitly specified header
header_secret_ref core.solo.io.ResourceRef Reference to header contained in a secret
append google.protobuf.BoolValue Should the value be appended? If true (default), the value is appended to
existing values.

Locality

Identifies location of where either Envoy runs or where upstream hosts run.

Field Type Label Description
region string Region this zone (envoy_api_field_core.Locality.zone) belongs to.
zone string Defines the local service zone where Envoy is running. Though optional, it
should be set if discovery service routing is used and the discovery
service exposes zone data (envoy_api_field_endpoint.LocalityLbEndpoints.locality),
either in this message or via :option:--service-zone. The meaning of zone
is context dependent, e.g. `Availability Zone (AZ)
<https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html>`_
on AWS, Zone &lt;https://cloud.google.com/compute/docs/regions-zones/&gt;_ on
GCP, etc.
sub_zone string When used for locality of upstream hosts, this field further splits zone
into smaller chunks of sub-zones so they can be load balanced
independently.

Metadata

Metadata provides additional inputs to filters based on matched listeners, filter chains, routes and endpoints. It is structured as a map, usually from filter name (in reverse DNS format) to metadata specific to the filter. Metadata key-values for a filter are merged as connection and request handling occurs, with later values for the same key overriding earlier values.

An example use of metadata is providing additional values to http_connection_manager in the envoy.http_connection_manager.access_log namespace.

Another example use of metadata is to per service config info in cluster metadata, which may get consumed by multiple filters.

For load balancing, Metadata provides a means to subset cluster endpoints. Endpoints have a Metadata object associated and routes contain a Metadata object to match against. There are some well defined metadata used today for this purpose:

Field Type Label Description
filter_metadata []Metadata.FilterMetadataEntry repeated Key is the reverse DNS filter name, e.g. com.acme.widget. The envoy.*
namespace is reserved for Envoy's built-in filters.

Metadata.FilterMetadataEntry

Field Type Label Description
key string
value google.protobuf.Struct

Node

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.

Field Type Label Description
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: statsd (arch_overview_statistics), `CDS
(config_cluster_manager_cds), and 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:
statsd (arch_overview_statistics), `health check cluster
verification (envoy_api_field_core.HealthCheck.HttpHealthCheck.service_name)`,
runtime override directory (envoy_api_msg_config.bootstrap.v2.Runtime),
`user agent addition
(envoy_api_field_config.filter.network.http_connection_manager.v2.HttpConnectionManager.add_user_agent)`,
HTTP global rate limiting (config_http_filters_rate_limit),
CDS (config_cluster_manager_cds), and `HTTP tracing
(arch_overview_tracing)`, either in this message or via
:option:--service-cluster.
metadata google.protobuf.Struct Opaque metadata extending the node identifier. Envoy will pass this
directly to the management server.
locality Locality Locality specifying where the Envoy instance is running.
build_version string This is motivated by informing a management server during canary which
version of Envoy is being tested in a heterogeneous fleet. This will be set
by Envoy in management server RPCs.

RemoteDataSource

The message specifies how to fetch data from remote and how to verify it.

Field Type Label Description
http_uri HttpUri The HTTP URI to fetch the remote data.
sha256 string SHA256 string for verifying data.

RuntimeFeatureFlag

Runtime derived bool with a default when not specified.

Field Type Label Description
default_value google.protobuf.BoolValue Default value if runtime value is not available.
runtime_key string Runtime key to get value for comparison. This value is used if defined. The boolean value must
be represented via its
canonical JSON encoding &lt;https://developers.google.com/protocol-buffers/docs/proto3#json&gt;_.

RuntimeFractionalPercent

Runtime derived FractionalPercent with defaults for when the numerator or denominator is not specified via a runtime key.

Field Type Label Description
default_value envoy.type.FractionalPercent Default value if the runtime value's for the numerator/denominator keys are not available.
runtime_key string Runtime key for a YAML representation of a FractionalPercent.

RuntimeUInt32

Runtime derived uint32 with a default when not specified.

Field Type Label Description
default_value uint32 Default value if runtime value is not available.
runtime_key string Runtime key to get value for comparison. This value is used if defined.

SocketOption

Generic socket option message. This would be used to set socket options that might not exist in upstream kernels or precompiled Envoy binaries.

Field Type Label Description
description string An optional name to give this socket option for debugging, etc.
Uniqueness is not required and no special meaning is assumed.
level int64 Corresponding to the level value passed to setsockopt, such as IPPROTO_TCP
name int64 The numeric name as passed to setsockopt
int_value int64 Because many sockopts take an int value.
buf_value bytes Otherwise it's a byte buffer.
state SocketOption.SocketState The state in which the option will be applied. When used in BindConfig
STATE_PREBIND is currently the only valid value.

TransportSocket

Configuration for transport socket in listeners (config_listeners) and clusters (envoy_api_msg_Cluster). If the configuration is empty, a default transport socket implementation and configuration will be chosen based on the platform and existence of tls_context.

Field Type Label Description
name string The name of the transport socket to instantiate. The name must match a supported transport
socket implementation.
config google.protobuf.Struct
typed_config google.protobuf.Any

RequestMethod

HTTP request method.

Name Number Description
METHOD_UNSPECIFIED 0
GET 1
HEAD 2
POST 3
PUT 4
DELETE 5
CONNECT 6
OPTIONS 7
TRACE 8
PATCH 9

RoutingPriority

Envoy supports upstream priority routing (arch_overview_http_routing_priority) both at the route and the virtual cluster level. The current priority implementation uses different connection pool and circuit breaking settings for each priority level. This means that even for HTTP/2 requests, two physical connections will be used to an upstream host. In the future Envoy will likely support true HTTP/2 priority over a single upstream connection.

Name Number Description
DEFAULT 0
HIGH 1

SocketOption.SocketState

Name Number Description
STATE_PREBIND 0 Socket options are applied after socket creation but before binding the socket to a port
STATE_BOUND 1 Socket options are applied after binding the socket to a port but before calling listen()
STATE_LISTENING 2 Socket options are applied after calling listen()

TrafficDirection

Identifies the direction of the traffic relative to the local Envoy.

Name Number Description
UNSPECIFIED 0 Default option is unspecified.
INBOUND 1 The transport is used for incoming traffic.
OUTBOUND 2 The transport is used for outgoing traffic.