A Route rule can forward (default) traffic. The forwarding target
can be one of several versions of a service (see glossary in
beginning of document). Weights associated with the service version
determine the proportion of traffic it receives.
Destination uniquely identifies the instances of a service
to which the request/connection should be forwarded to.
Yes
weight
uint32
The proportion of traffic to be forwarded to the service
version. (0-100). Sum of weights across destinations SHOULD BE == 100.
If there is only one destination in a rule, the weight value is assumed to
be 100.
No
Destination
Field
Type
Description
Required
host
string
The name of a service from the service registry. Service
names are looked up from the platform’s service registry (e.g.,
Kubernetes services, Consul services, etc.) and from the hosts
declared by ServiceEntry. Traffic
forwarded to destinations that are not found in either of the two, will be dropped.
Note for Kubernetes users: When short names are used (e.g. “reviews”
instead of “reviews.default.svc.cluster.local”), Istio will interpret
the short name based on the namespace of the rule, not the service. A
rule in the “default” namespace containing a host “reviews will be
interpreted as “reviews.default.svc.cluster.local”, irrespective of
the actual namespace associated with the reviews service. To avoid
potential misconfiguration, it is recommended to always use fully
qualified domain names over short names.
Yes
subset
string
The name of a subset within the service. Applicable only to services
within the mesh. The subset must be defined in a corresponding
DestinationRule.
The default token bucket configuration to use for rate limiting requests that are processed by
this filter.
Local rate limiter will first check the conditions, if a specific condition matches, then the token
bucket within that condition will be applied to the incoming request. All the other requests
that don’t match the conditions will be rate limited by the default token bucket.
If the default token bucket is not specified, then the requests that don’t match the conditions
will not be rate limited.
At least one of token_bucket or conditions should have value.
Match conditions to be satisfied for the rate limit rule to be activated.
All conditions inside a single match block have AND semantic.
If the match is not specified, then all the incoming requests will be considered matched.
Yes
domain
string
The rate limit domain to use when calling the rate limit service.
The timeout in milliseconds for the rate limit service RPC. If not
set, this defaults to 20ms.
No
denyOnFail
bool
The filter’s behavior in case the rate limiting service does
not respond back. When it is set to true, Envoy will not allow traffic in case of
communication failure between rate limiting service and the proxy.
No
rateLimitService
string
The cluster name of the external rate limit service provider.
The fill interval that tokens are added to the bucket. During each fill interval
tokens_per_fill are added to the bucket. The bucket will never contain more than
max_tokens tokens.
Yes
LocalRateLimit.Condition
Condition defines a rate limit policy for a more specific condition
Match conditions to be satisfied for the rate limit rule to be activated.
All conditions inside a single match block have AND semantic.
If the match is not specified, then all the incoming requests will be considered matched.
Descriptor defines the mapping between the property in the request and the descriptor key in the rate
limit server configuration
Normally the property is the same as the descriptor key, but adding a mapping layer allows more flexibility
Field
Type
Description
Required
property
string
The property extracted from the requests
Yes
descriptorKey
string
The corresponding descriptor key in the rate limit server configuration
Yes
google.protobuf.UInt32Value
Wrapper message for uint32.
The JSON representation for UInt32Value is JSON number.