package envoy.api.v2

Mouse Melon logoGet desktop application:
View/edit binary Protocol Buffers messages

service ClusterDiscoveryService

cds.proto:25

Return list of all clusters this proxy will load balance to.

service EndpointDiscoveryService

eds.proto:25

service ListenerDiscoveryService

lds.proto:29

The Envoy instance initiates an RPC at startup to discover a list of listeners. Updates are delivered via streaming from the LDS server and consist of a complete update of all listeners. Existing connections will be allowed to drain from listeners that are no longer present.

service RouteDiscoveryService

rds.proto:29

The resource_names field in DiscoveryRequest specifies a route configuration. This allows an Envoy configuration with multiple HTTP listeners (and associated HTTP connection manager filters) to use different route configurations. Each listener will bind its HTTP connection manager filter to a route table via this identifier.

service ScopedRoutesDiscoveryService

srds.proto:32

The Scoped Routes Discovery Service (SRDS) API distributes :ref:`ScopedRouteConfiguration<envoy_api_msg.ScopedRouteConfiguration>` resources. Each ScopedRouteConfiguration resource represents a "routing scope" containing a mapping that allows the HTTP connection manager to dynamically assign a routing table (specified via a :ref:`RouteConfiguration<envoy_api_msg_RouteConfiguration>` message) to each HTTP request.

service VirtualHostDiscoveryService

rds.proto:54

Virtual Host Discovery Service (VHDS) is used to dynamically update the list of virtual hosts for a given RouteConfiguration. If VHDS is configured a virtual host list update will be triggered during the processing of an HTTP request if a route for the request cannot be resolved. The :ref:`resource_names_subscribe <envoy_api_field_DeltaDiscoveryRequest.resource_names_subscribe>` field contains a list of virtual host names or aliases to track. The contents of an alias would be the contents of a *host* or *authority* header used to make an http request. An xDS server will match an alias to a virtual host based on the content of :ref:`domains' <envoy_api_field_route.VirtualHost.domains>` field. The *resource_names_unsubscribe* field contains a list of virtual host names that have been :ref:`unsubscribed <xds_protocol_unsubscribe>` from the routing table associated with the RouteConfiguration.

message CdsDummy

cds.proto:42

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file.

(message has no fields)

message Cluster

cluster.proto:38

Configuration for a single upstream cluster. [#next-free-field: 48]

Used in: config.bootstrap.v2.Bootstrap.StaticResources

enum Cluster.ClusterProtocolSelection

cluster.proto:132

Used in: Cluster

message Cluster.CommonLbConfig

cluster.proto:365

Common configuration for all load balancer implementations. [#next-free-field: 8]

Used in: Cluster

message Cluster.CommonLbConfig.ConsistentHashingLbConfig

cluster.proto:395

Common Configuration for all consistent hashing load balancers (MaglevLb, RingHashLb, etc.)

Used in: CommonLbConfig

message Cluster.CommonLbConfig.LocalityWeightedLbConfig

cluster.proto:391

Configuration for :ref:`locality weighted load balancing <arch_overview_load_balancing_locality_weighted_lb>`

Used in: CommonLbConfig

(message has no fields)

message Cluster.CommonLbConfig.ZoneAwareLbConfig

cluster.proto:368

Configuration for :ref:`zone aware routing <arch_overview_load_balancing_zone_aware_routing>`.

Used in: CommonLbConfig

message Cluster.CustomClusterType

cluster.proto:160

Extended cluster type.

Used in: Cluster

enum Cluster.DiscoveryType

cluster.proto:41

Refer to :ref:`service discovery type <arch_overview_service_discovery_types>` for an explanation on each type.

Used in: Cluster

enum Cluster.DnsLookupFamily

cluster.proto:126

When V4_ONLY is selected, the DNS resolver will only perform a lookup for addresses in the IPv4 family. If V6_ONLY is selected, the DNS resolver will only perform a lookup for addresses in the IPv6 family. If AUTO is specified, the DNS resolver will first perform a lookup for addresses in the IPv6 family and fallback to a lookup for addresses in the IPv4 family. For cluster types other than :ref:`STRICT_DNS<envoy_api_enum_value_Cluster.DiscoveryType.STRICT_DNS>` and :ref:`LOGICAL_DNS<envoy_api_enum_value_Cluster.DiscoveryType.LOGICAL_DNS>`, this setting is ignored.

Used in: Cluster, config.common.dynamic_forward_proxy.v2alpha.DnsCacheConfig

message Cluster.EdsClusterConfig

cluster.proto:170

Only valid when discovery type is EDS.

Used in: Cluster

enum Cluster.LbPolicy

cluster.proto:68

Refer to :ref:`load balancer type <arch_overview_load_balancing_types>` architecture overview section for information on each type.

Used in: Cluster

message Cluster.LbSubsetConfig

cluster.proto:183

Optionally divide the endpoints in this cluster into subsets defined by endpoint metadata and selected by route and weighted cluster metadata. [#next-free-field: 8]

Used in: Cluster

enum Cluster.LbSubsetConfig.LbSubsetFallbackPolicy

cluster.proto:189

If NO_FALLBACK is selected, a result equivalent to no healthy hosts is reported. If ANY_ENDPOINT is selected, any cluster endpoint may be returned (subject to policy, health checks, etc). If DEFAULT_SUBSET is selected, load balancing is performed over the endpoints matching the values from the default_subset field.

Used in: LbSubsetConfig

message Cluster.LbSubsetConfig.LbSubsetSelector

cluster.proto:196

Specifications for subsets.

Used in: LbSubsetConfig

enum Cluster.LbSubsetConfig.LbSubsetSelector.LbSubsetSelectorFallbackPolicy

cluster.proto:198

Allows to override top level fallback policy per selector.

Used in: LbSubsetSelector

message Cluster.LeastRequestLbConfig

cluster.proto:305

Specific configuration for the LeastRequest load balancing policy.

Used in: Cluster

message Cluster.OriginalDstLbConfig

cluster.proto:346

Specific configuration for the :ref:`Original Destination <arch_overview_load_balancing_types_original_destination>` load balancing policy.

Used in: Cluster

message Cluster.RefreshRate

cluster.proto:460

Used in: Cluster, config.common.dynamic_forward_proxy.v2alpha.DnsCacheConfig

message Cluster.RingHashLbConfig

cluster.proto:313

Specific configuration for the :ref:`RingHash<arch_overview_load_balancing_types_ring_hash>` load balancing policy.

Used in: Cluster

enum Cluster.RingHashLbConfig.HashFunction

cluster.proto:315

The hash function used to hash hosts onto the ketama ring.

Used in: RingHashLbConfig

message Cluster.TransportSocketMatch

cluster.proto:144

TransportSocketMatch specifies what transport socket config will be used when the match conditions are satisfied.

Used in: Cluster

message ClusterLoadAssignment

endpoint.proto:35

Each route from RDS will map to a single cluster or traffic split across clusters using weights expressed in the RDS WeightedCluster. With EDS, each cluster is treated independently from a LB perspective, with LB taking place between the Localities within a cluster and at a finer granularity between the hosts within a locality. The percentage of traffic for each endpoint is determined by both its load_balancing_weight, and the load_balancing_weight of its locality. First, a locality will be selected, then an endpoint within that locality will be chose based on its weight. [#next-free-field: 6]

Used in: Cluster

message ClusterLoadAssignment.Policy

endpoint.proto:38

Load balancing policy settings. [#next-free-field: 6]

Used in: ClusterLoadAssignment

message ClusterLoadAssignment.Policy.DropOverload

endpoint.proto:40

[#not-implemented-hide:]

Used in: Policy

message DeltaDiscoveryRequest

discovery.proto:142

DeltaDiscoveryRequest and DeltaDiscoveryResponse are used in a new gRPC endpoint for Delta xDS. With Delta xDS, the DeltaDiscoveryResponses do not need to include a full snapshot of the tracked resources. Instead, DeltaDiscoveryResponses are a diff to the state of a xDS client. In Delta XDS there are per-resource versions, which allow tracking state at the resource granularity. An xDS Delta session is always in the context of a gRPC bidirectional stream. This allows the xDS server to keep track of the state of xDS clients connected to it. In Delta xDS the nonce field is required and used to pair DeltaDiscoveryResponse to a DeltaDiscoveryRequest ACK or NACK. Optionally, a response message level system_version_info is present for debugging purposes only. DeltaDiscoveryRequest plays two independent roles. Any DeltaDiscoveryRequest can be either or both of: [1] informing the server of what resources the client has gained/lost interest in (using resource_names_subscribe and resource_names_unsubscribe), or [2] (N)ACKing an earlier resource update from the server (using response_nonce, with presence of error_detail making it a NACK). Additionally, the first message (for a given type_url) of a reconnected gRPC stream has a third role: informing the server of the resources (and their versions) that the client already possesses, using the initial_resource_versions field. As with state-of-the-world, when multiple resource types are multiplexed (ADS), all requests/acknowledgments/updates are logically walled off by type_url: a Cluster ACK exists in a completely separate world from a prior Route NACK. In particular, initial_resource_versions being sent at the "start" of every gRPC stream actually entails a message for each type_url, each with its own initial_resource_versions. [#next-free-field: 8]

Used as request type in: ClusterDiscoveryService.DeltaClusters, EndpointDiscoveryService.DeltaEndpoints, ListenerDiscoveryService.DeltaListeners, RouteDiscoveryService.DeltaRoutes, ScopedRoutesDiscoveryService.DeltaScopedRoutes, VirtualHostDiscoveryService.DeltaVirtualHosts, service.discovery.v2.AggregatedDiscoveryService.DeltaAggregatedResources, service.discovery.v2.RuntimeDiscoveryService.DeltaRuntime, service.discovery.v2.SecretDiscoveryService.DeltaSecrets

message DeltaDiscoveryResponse

discovery.proto:199

[#next-free-field: 7]

Used as response type in: ClusterDiscoveryService.DeltaClusters, EndpointDiscoveryService.DeltaEndpoints, ListenerDiscoveryService.DeltaListeners, RouteDiscoveryService.DeltaRoutes, ScopedRoutesDiscoveryService.DeltaScopedRoutes, VirtualHostDiscoveryService.DeltaVirtualHosts, service.discovery.v2.AggregatedDiscoveryService.DeltaAggregatedResources, service.discovery.v2.RuntimeDiscoveryService.DeltaRuntime, service.discovery.v2.SecretDiscoveryService.DeltaSecrets

message DiscoveryRequest

discovery.proto:25

A DiscoveryRequest requests a set of versioned resources of the same type for a given Envoy node on some API. [#next-free-field: 7]

Used as request type in: ClusterDiscoveryService.FetchClusters, ClusterDiscoveryService.StreamClusters, EndpointDiscoveryService.FetchEndpoints, EndpointDiscoveryService.StreamEndpoints, ListenerDiscoveryService.FetchListeners, ListenerDiscoveryService.StreamListeners, RouteDiscoveryService.FetchRoutes, RouteDiscoveryService.StreamRoutes, ScopedRoutesDiscoveryService.FetchScopedRoutes, ScopedRoutesDiscoveryService.StreamScopedRoutes, service.discovery.v2.AggregatedDiscoveryService.StreamAggregatedResources, service.discovery.v2.RuntimeDiscoveryService.FetchRuntime, service.discovery.v2.RuntimeDiscoveryService.StreamRuntime, service.discovery.v2.SecretDiscoveryService.FetchSecrets, service.discovery.v2.SecretDiscoveryService.StreamSecrets

message DiscoveryResponse

discovery.proto:67

[#next-free-field: 7]

Used as response type in: ClusterDiscoveryService.FetchClusters, ClusterDiscoveryService.StreamClusters, EndpointDiscoveryService.FetchEndpoints, EndpointDiscoveryService.StreamEndpoints, ListenerDiscoveryService.FetchListeners, ListenerDiscoveryService.StreamListeners, RouteDiscoveryService.FetchRoutes, RouteDiscoveryService.StreamRoutes, ScopedRoutesDiscoveryService.FetchScopedRoutes, ScopedRoutesDiscoveryService.StreamScopedRoutes, service.discovery.v2.AggregatedDiscoveryService.StreamAggregatedResources, service.discovery.v2.RuntimeDiscoveryService.FetchRuntime, service.discovery.v2.RuntimeDiscoveryService.StreamRuntime, service.discovery.v2.SecretDiscoveryService.FetchSecrets, service.discovery.v2.SecretDiscoveryService.StreamSecrets

message EdsDummy

eds.proto:44

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file.

(message has no fields)

message LdsDummy

lds.proto:46

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file.

(message has no fields)

message Listener

listener.proto:31

[#next-free-field: 23]

Used in: config.bootstrap.v2.Bootstrap.StaticResources

message Listener.ConnectionBalanceConfig

listener.proto:59

Configuration for listener connection balancing.

Used in: Listener

message Listener.ConnectionBalanceConfig.ExactBalance

listener.proto:66

A connection balancer implementation that does exact balancing. This means that a lock is held during balancing so that connection counts are nearly exactly balanced between worker threads. This is "nearly" exact in the sense that a connection might close in parallel thus making the counts incorrect, but this should be rectified on the next accept. This balancer sacrifices accept throughput for accuracy and should be used when there are a small number of connections that rarely cycle (e.g., service mesh gRPC egress).

Used in: ConnectionBalanceConfig

(message has no fields)

message Listener.DeprecatedV1

listener.proto:44

[#not-implemented-hide:]

Used in: Listener

enum Listener.DrainType

listener.proto:32

Used in: Listener

message LoadBalancingPolicy

cluster.proto:840

[#not-implemented-hide:] Extensible load balancing policy configuration. Every LB policy defined via this mechanism will be identified via a unique name using reverse DNS notation. If the policy needs configuration parameters, it must define a message for its own configuration, which will be stored in the config field. The name of the policy will tell clients which type of message they should expect to see in the config field. Note that there are cases where it is useful to be able to independently select LB policies for choosing a locality and for choosing an endpoint within that locality. For example, a given deployment may always use the same policy to choose the locality, but for choosing the endpoint within the locality, some clusters may use weighted-round-robin, while others may use some sort of session-based balancing. This can be accomplished via hierarchical LB policies, where the parent LB policy creates a child LB policy for each locality. For each request, the parent chooses the locality and then delegates to the child policy for that locality to choose the endpoint within the locality. To facilitate this, the config message for the top-level LB policy may include a field of type LoadBalancingPolicy that specifies the child policy.

Used in: Cluster

message LoadBalancingPolicy.Policy

cluster.proto:841

Used in: LoadBalancingPolicy

message RdsDummy

rds.proto:63

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file.

(message has no fields)

message Resource

discovery.proto:222

Used in: DeltaDiscoveryResponse

message RouteConfiguration

route.proto:27

[#next-free-field: 11]

Used in: config.filter.network.http_connection_manager.v2.HttpConnectionManager

message ScopedRouteConfiguration

scoped_route.proto:78

Specifies a routing scope, which associates a :ref:`Key<envoy_api_msg_ScopedRouteConfiguration.Key>` to a :ref:`envoy_api_msg_RouteConfiguration` (identified by its resource name). The HTTP connection manager builds up a table consisting of these Key to RouteConfiguration mappings, and looks up the RouteConfiguration to use per request according to the algorithm specified in the :ref:`scope_key_builder<envoy_api_field_config.filter.network.http_connection_manager.v2.ScopedRoutes.scope_key_builder>` assigned to the HttpConnectionManager. For example, with the following configurations (in YAML): HttpConnectionManager config: .. code:: ... scoped_routes: name: foo-scoped-routes scope_key_builder: fragments: - header_value_extractor: name: X-Route-Selector element_separator: "," element: separator: = key: vip ScopedRouteConfiguration resources (specified statically via :ref:`scoped_route_configurations_list<envoy_api_field_config.filter.network.http_connection_manager.v2.ScopedRoutes.scoped_route_configurations_list>` or obtained dynamically via SRDS): .. code:: (1) name: route-scope1 route_configuration_name: route-config1 key: fragments: - string_key: 172.10.10.20 (2) name: route-scope2 route_configuration_name: route-config2 key: fragments: - string_key: 172.20.20.30 A request from a client such as: .. code:: GET / HTTP/1.1 Host: foo.com X-Route-Selector: vip=172.10.10.20 would result in the routing table defined by the `route-config1` RouteConfiguration being assigned to the HTTP request/stream.

Used in: config.filter.network.http_connection_manager.v2.ScopedRouteConfigurationsList

message ScopedRouteConfiguration.Key

scoped_route.proto:84

Specifies a key which is matched against the output of the :ref:`scope_key_builder<envoy_api_field_config.filter.network.http_connection_manager.v2.ScopedRoutes.scope_key_builder>` specified in the HttpConnectionManager. The matching is done per HTTP request and is dependent on the order of the fragments contained in the Key.

Used in: ScopedRouteConfiguration

message ScopedRouteConfiguration.Key.Fragment

scoped_route.proto:85

Used in: Key

message SrdsDummy

srds.proto:49

[#not-implemented-hide:] Not configuration. Workaround c++ protobuf issue with importing services: https://github.com/google/protobuf/issues/4221 and protoxform to upgrade the file.

(message has no fields)

message UpstreamBindConfig

cluster.proto:860

An extensible structure containing the address Envoy should bind to when establishing upstream connections.

message UpstreamConnectionOptions

cluster.proto:865

Used in: Cluster

message Vhds

route.proto:111

Used in: RouteConfiguration