Documentation ¶
Index ¶
- Variables
- type Address
- type Address_EnvoyInternalAddress
- type Address_Pipe
- type Address_SocketAddress
- type BuildVersion
- type EnvoyInternalAddress
- type EnvoyInternalAddress_ServerListenerName
- type Extension
- type Locality
- type Metadata
- type Node
- type Node_UserAgentBuildVersion
- type Node_UserAgentVersion
- type Pipe
- type RequestMethod
- type SemanticVersion
- type SocketAddress
- type SocketAddress_NamedPort
- type SocketAddress_PortValue
- type SocketAddress_Protocol
Constants ¶
This section is empty.
Variables ¶
var ( SocketAddress_Protocol_name = map[int32]string{ 0: "TCP", 1: "UDP", } SocketAddress_Protocol_value = map[string]int32{ "TCP": 0, "UDP": 1, } )
Enum value maps for SocketAddress_Protocol.
var ( RequestMethod_name = map[int32]string{ 0: "METHOD_UNSPECIFIED", 1: "GET", 2: "HEAD", 3: "POST", 4: "PUT", 5: "DELETE", 6: "CONNECT", 7: "OPTIONS", 8: "TRACE", 9: "PATCH", } RequestMethod_value = map[string]int32{ "METHOD_UNSPECIFIED": 0, "GET": 1, "HEAD": 2, "POST": 3, "PUT": 4, "DELETE": 5, "CONNECT": 6, "OPTIONS": 7, "TRACE": 8, "PATCH": 9, } )
Enum value maps for RequestMethod.
Functions ¶
This section is empty.
Types ¶
type Address ¶
type Address struct { // Types that are assignable to Address: // *Address_SocketAddress // *Address_Pipe // *Address_EnvoyInternalAddress Address isAddress_Address `protobuf_oneof:"address"` // contains filtered or unexported fields }
Addresses specify either a logical or physical address and port, which are used to tell Envoy where to bind/listen, connect to upstream and find management servers.
type Address_EnvoyInternalAddress ¶
type Address_EnvoyInternalAddress struct { // Specifies a user-space address handled by :ref:`internal listeners // <envoy_v3_api_field_config.listener.v3.Listener.internal_listener>`. EnvoyInternalAddress *EnvoyInternalAddress `protobuf:"bytes,3,opt,name=envoy_internal_address,json=envoyInternalAddress,proto3,oneof"` }
type Address_Pipe ¶
type Address_Pipe struct {
Pipe *Pipe `protobuf:"bytes,2,opt,name=pipe,proto3,oneof"`
}
type Address_SocketAddress ¶
type Address_SocketAddress struct {
SocketAddress *SocketAddress `protobuf:"bytes,1,opt,name=socket_address,json=socketAddress,proto3,oneof"`
}
type BuildVersion ¶
type BuildVersion struct { // SemVer version of extension. // Note..: Had to remove the v3. prefix Version *SemanticVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Free-form build information. // Envoy defines several well known keys in the source/common/version/version.h file Metadata *_struct.Struct `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` // contains filtered or unexported fields }
BuildVersion combines SemVer version of extension with free-form build information (i.e. 'alpha', 'private-build') as a set of strings.
type EnvoyInternalAddress ¶
type EnvoyInternalAddress struct { // Types that are assignable to AddressNameSpecifier: // *EnvoyInternalAddress_ServerListenerName AddressNameSpecifier isEnvoyInternalAddress_AddressNameSpecifier `protobuf_oneof:"address_name_specifier"` // Specifies an endpoint identifier to distinguish between multiple endpoints for the same internal listener in a // single upstream pool. Only used in the upstream addresses for tracking changes to individual endpoints. This, for // example, may be set to the final destination IP for the target internal listener. EndpointId string `protobuf:"bytes,2,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` // contains filtered or unexported fields }
The address represents an envoy internal listener. [#comment: TODO(asraa): When address available, remove workaround from test/server/server_fuzz_test.cc:30.]
type EnvoyInternalAddress_ServerListenerName ¶
type EnvoyInternalAddress_ServerListenerName struct { // Specifies the :ref:`name <envoy_v3_api_field_config.listener.v3.Listener.name>` of the // internal listener. ServerListenerName string `protobuf:"bytes,1,opt,name=server_listener_name,json=serverListenerName,proto3,oneof"` }
type Extension ¶
type Extension struct { // This is the name of the Envoy filter as specified in the Envoy // configuration, e.g. envoy.filters.http.router, com.acme.widget. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Category of the extension. // Extension category names use reverse DNS notation. For instance "envoy.filters.listener" // for Envoy's built-in listener filters or "com.acme.filters.http" for HTTP filters from // acme.com vendor. // [#comment:TODO(yanavlasov): Link to the doc with existing envoy category names.] Category string `protobuf:"bytes,2,opt,name=category,proto3" json:"category,omitempty"` // [#not-implemented-hide:] Type descriptor of extension configuration proto. // [#comment:TODO(yanavlasov): Link to the doc with existing configuration protos.] // [#comment:TODO(yanavlasov): Add tests when PR #9391 lands.] // // Deprecated: Do not use. TypeDescriptor string `protobuf:"bytes,3,opt,name=type_descriptor,json=typeDescriptor,proto3" json:"type_descriptor,omitempty"` // The version is a property of the extension and maintained independently // of other extensions and the Envoy API. // This field is not set when extension did not provide version information. Version *BuildVersion `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"` // Indicates that the extension is present but was disabled via dynamic configuration. Disabled bool `protobuf:"varint,5,opt,name=disabled,proto3" json:"disabled,omitempty"` // Type URLs of extension configuration protos. TypeUrls []string `protobuf:"bytes,6,rep,name=type_urls,json=typeUrls,proto3" json:"type_urls,omitempty"` // contains filtered or unexported fields }
Version and identification for an Envoy extension. [#next-free-field: 7]
type Locality ¶
type Locality struct { // Region this :ref:`zone <envoy_v3_api_field_config.core.v3.Locality.zone>` belongs to. Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` // 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 :ref:`zone data <envoy_v3_api_field_config.endpoint.v3.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 <https://cloud.google.com/compute/docs/regions-zones/>`_ on // GCP, etc. Zone string `protobuf:"bytes,2,opt,name=zone,proto3" json:"zone,omitempty"` // 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. SubZone string `protobuf:"bytes,3,opt,name=sub_zone,json=subZone,proto3" json:"sub_zone,omitempty"` // contains filtered or unexported fields }
Identifies location of where either Envoy runs or where upstream hosts run.
type Metadata ¶
type Metadata struct { // Key is the reverse DNS filter name, e.g. com.acme.widget. The “envoy.*“ // namespace is reserved for Envoy's built-in filters. // If both “filter_metadata“ and // :ref:`typed_filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.typed_filter_metadata>` // fields are present in the metadata with same keys, // only “typed_filter_metadata“ field will be parsed. FilterMetadata map[string]*_struct.Struct `` /* 191-byte string literal not displayed */ // Key is the reverse DNS filter name, e.g. com.acme.widget. The “envoy.*“ // namespace is reserved for Envoy's built-in filters. // The value is encoded as google.protobuf.Any. // If both :ref:`filter_metadata <envoy_v3_api_field_config.core.v3.Metadata.filter_metadata>` // and “typed_filter_metadata“ fields are present in the metadata with same keys, // only “typed_filter_metadata“ field will be parsed. TypedFilterMetadata map[string]*any2.Any `` /* 208-byte string literal not displayed */ // contains filtered or unexported fields }
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:
- “{"envoy.lb": {"canary": <bool> }}“ This indicates the canary status of an endpoint and is also used during header processing (x-envoy-upstream-canary) and for stats purposes.
[#next-major-version: move to type/metadata/v2]
type Node ¶
type Node struct { // 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`. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // 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`. Cluster string `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"` // Opaque metadata extending the node identifier. Envoy will pass this // directly to the management server. Metadata *_struct.Struct `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` // 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. DynamicParameters map[string]*v31.ContextParams `` /* 201-byte string literal not displayed */ // Locality specifying where the Envoy instance is running. Locality *Locality `protobuf:"bytes,4,opt,name=locality,proto3" json:"locality,omitempty"` // Free-form string that identifies the entity requesting config. // E.g. "envoy" or "grpc" UserAgentName string `protobuf:"bytes,6,opt,name=user_agent_name,json=userAgentName,proto3" json:"user_agent_name,omitempty"` // Types that are assignable to UserAgentVersionType: // *Node_UserAgentVersion // *Node_UserAgentBuildVersion UserAgentVersionType isNode_UserAgentVersionType `protobuf_oneof:"user_agent_version_type"` // List of extensions and their versions supported by the node. Extensions []*Extension `protobuf:"bytes,9,rep,name=extensions,proto3" json:"extensions,omitempty"` // 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. ClientFeatures []string `protobuf:"bytes,10,rep,name=client_features,json=clientFeatures,proto3" json:"client_features,omitempty"` // 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. // // Deprecated: Do not use. ListeningAddresses []*Address `protobuf:"bytes,11,rep,name=listening_addresses,json=listeningAddresses,proto3" json:"listening_addresses,omitempty"` // contains filtered or unexported fields }
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]
type Node_UserAgentBuildVersion ¶
type Node_UserAgentBuildVersion struct { // Structured version of the entity requesting config. UserAgentBuildVersion *BuildVersion `protobuf:"bytes,8,opt,name=user_agent_build_version,json=userAgentBuildVersion,proto3,oneof"` }
type Node_UserAgentVersion ¶
type Node_UserAgentVersion struct { // Free-form string that identifies the version of the entity requesting config. // E.g. "1.12.2" or "abcd1234", or "SpecialEnvoyBuild" UserAgentVersion string `protobuf:"bytes,7,opt,name=user_agent_version,json=userAgentVersion,proto3,oneof"` }
type Pipe ¶
type Pipe struct { // Unix Domain Socket path. On Linux, paths starting with '@' will use the // abstract namespace. The starting '@' is replaced by a null byte by Envoy. // Paths starting with '@' will result in an error in environments other than // Linux. Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // The mode for the Pipe. Not applicable for abstract sockets. Mode uint32 `protobuf:"varint,2,opt,name=mode,proto3" json:"mode,omitempty"` // contains filtered or unexported fields }
type RequestMethod ¶
type RequestMethod int32
HTTP request method.
const ( RequestMethod_METHOD_UNSPECIFIED RequestMethod = 0 RequestMethod_GET RequestMethod = 1 RequestMethod_HEAD RequestMethod = 2 RequestMethod_POST RequestMethod = 3 RequestMethod_PUT RequestMethod = 4 RequestMethod_DELETE RequestMethod = 5 RequestMethod_CONNECT RequestMethod = 6 RequestMethod_OPTIONS RequestMethod = 7 RequestMethod_TRACE RequestMethod = 8 RequestMethod_PATCH RequestMethod = 9 )
type SemanticVersion ¶
type SemanticVersion struct { MajorNumber uint32 `protobuf:"varint,1,opt,name=major_number,json=majorNumber,proto3" json:"major_number,omitempty"` MinorNumber uint32 `protobuf:"varint,2,opt,name=minor_number,json=minorNumber,proto3" json:"minor_number,omitempty"` Patch uint32 `protobuf:"varint,3,opt,name=patch,proto3" json:"patch,omitempty"` // contains filtered or unexported fields }
Envoy uses SemVer (https://semver.org/). Major/minor versions indicate expected behaviors and APIs, the patch version field is used only for security fixes and can be generally ignored.
type SocketAddress ¶
type SocketAddress struct { Protocol SocketAddress_Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=envoy.config.core.v3.SocketAddress_Protocol" json:"protocol,omitempty"` // The address for this socket. :ref:`Listeners <config_listeners>` will bind // to the address. An empty address is not allowed. Specify “0.0.0.0“ or “::“ // to bind to any address. [#comment:TODO(zuercher) reinstate when implemented: // It is possible to distinguish a Listener address via the prefix/suffix matching // in :ref:`FilterChainMatch <envoy_v3_api_msg_config.listener.v3.FilterChainMatch>`.] When used // within an upstream :ref:`BindConfig <envoy_v3_api_msg_config.core.v3.BindConfig>`, the address // controls the source address of outbound connections. For :ref:`clusters // <envoy_v3_api_msg_config.cluster.v3.Cluster>`, the cluster type determines whether the // address must be an IP (“STATIC“ or “EDS“ clusters) or a hostname resolved by DNS // (“STRICT_DNS“ or “LOGICAL_DNS“ clusters). Address resolution can be customized // via :ref:`resolver_name <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>`. Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` // Types that are assignable to PortSpecifier: // *SocketAddress_PortValue // *SocketAddress_NamedPort PortSpecifier isSocketAddress_PortSpecifier `protobuf_oneof:"port_specifier"` // The name of the custom resolver. This must have been registered with Envoy. If // this is empty, a context dependent default applies. If the address is a concrete // IP address, no resolution will occur. If address is a hostname this // should be set for resolution other than DNS. Specifying a custom resolver with // “STRICT_DNS“ or “LOGICAL_DNS“ will generate an error at runtime. ResolverName string `protobuf:"bytes,5,opt,name=resolver_name,json=resolverName,proto3" json:"resolver_name,omitempty"` // When binding to an IPv6 address above, this enables `IPv4 compatibility // <https://tools.ietf.org/html/rfc3493#page-11>`_. Binding to “::“ will // allow both IPv4 and IPv6 connections, with peer IPv4 addresses mapped into // IPv6 space as “::FFFF:<IPv4-address>“. Ipv4Compat bool `protobuf:"varint,6,opt,name=ipv4_compat,json=ipv4Compat,proto3" json:"ipv4_compat,omitempty"` // contains filtered or unexported fields }
type SocketAddress_NamedPort ¶
type SocketAddress_NamedPort struct { // This is only valid if :ref:`resolver_name // <envoy_v3_api_field_config.core.v3.SocketAddress.resolver_name>` is specified below and the // named resolver is capable of named port resolution. NamedPort string `protobuf:"bytes,4,opt,name=named_port,json=namedPort,proto3,oneof"` }
type SocketAddress_PortValue ¶
type SocketAddress_PortValue struct {
PortValue uint32 `protobuf:"varint,3,opt,name=port_value,json=portValue,proto3,oneof"`
}
type SocketAddress_Protocol ¶
type SocketAddress_Protocol int32
const ( SocketAddress_TCP SocketAddress_Protocol = 0 SocketAddress_UDP SocketAddress_Protocol = 1 )