mirror of https://github.com/istio/istio.io.git
cleanup generated proto docs
This commit is contained in:
parent
292e7658d1
commit
20fd6b39b8
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: Attribute Vocabulary
|
||||
title: Mixer - Attribute Vocabulary
|
||||
overview: Describes the base attribute vocabulary used for policy and control.
|
||||
|
||||
order: 10
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Destination Policies
|
||||
overview: Generated documentation for the Istio's Configuration Schemas
|
||||
title: Rules - Destination Policies
|
||||
overview: Generated documentation for the Istio's traffic management rules.
|
||||
|
||||
order: 1000
|
||||
|
||||
|
|
@ -12,18 +12,155 @@ type: markdown
|
|||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [CircuitBreaker](#istio.proxy.v1.config.CircuitBreaker)
|
||||
(message)
|
||||
* [CircuitBreaker.SimpleCircuitBreakerPolicy](#istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy)
|
||||
(message)
|
||||
* [DestinationPolicy](#istio.proxy.v1.config.DestinationPolicy)
|
||||
(message)
|
||||
* [DestinationVersionPolicy](#istio.proxy.v1.config.DestinationVersionPolicy)
|
||||
(message)
|
||||
* [LoadBalancing](#istio.proxy.v1.config.LoadBalancing)
|
||||
(message)
|
||||
* [LoadBalancing.SimpleLBPolicy](#istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy)
|
||||
(enum)
|
||||
* [CircuitBreaker](#istio.proxy.v1.config.CircuitBreaker)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy"></a>
|
||||
### DestinationPolicy
|
||||
DestinationPolicy defines client/caller-side policies that determine how
|
||||
to handle traffic bound to a particular destination service. The policy
|
||||
specifies configuration for load balancing and circuit breakers. For
|
||||
example, a simple load balancing policy for the reviews service would
|
||||
look as follows:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- loadBalancing: RANDOM
|
||||
simpleCb:
|
||||
maxConnections: 1000
|
||||
|
||||
|
||||
Policies are applicable per individual service versions. ONLY
|
||||
ONE policy can be defined per service version. Policy CANNOT be empty.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td>string</td>
|
||||
<td>REQUIRED. Service name for which the service version is defined. The value MUST BE a fully-qualified domain name, e.g. <em>my-service.default.svc.cluster.local</em>.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy.policy"></a>
|
||||
<tr>
|
||||
<td><code>policy[]</code></td>
|
||||
<td>repeated <a href="#istio.proxy.v1.config.DestinationVersionPolicy">DestinationVersionPolicy</a></td>
|
||||
<td>REQUIRED. List of policies, one per service version.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy"></a>
|
||||
#### DestinationVersionPolicy
|
||||
A destination policy can be restricted to a particular version of a
|
||||
service or applied to all versions. The tags field in the
|
||||
DestinationVersionPolicy allow restricting the scope of a
|
||||
DestinationPolicy. For example, the following load balancing policy
|
||||
applies to version v1 of the reviews service running in the prod
|
||||
environment:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- tags:
|
||||
env: prod
|
||||
version: v1
|
||||
loadBalancing: RANDOM
|
||||
|
||||
|
||||
If tags are omitted, the policy applies for all versions of the
|
||||
service. Policy CANNOT BE empty.
|
||||
*Note:* Destination policies will be applied only if the corresponding
|
||||
tagged instances are explicity routed to. In other words, for every
|
||||
destination policy defined, atleast one route rule must refer to the
|
||||
service version indicated in the destination policy.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.tags"></a>
|
||||
<tr>
|
||||
<td><code>tags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Optional set of tags that identify a particular version of the destination service. If omitted, the policy will apply to all versions of the service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.loadBalancing"></a>
|
||||
<tr>
|
||||
<td><code>loadBalancing</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.LoadBalancing">LoadBalancing</a></td>
|
||||
<td>Load balancing policy.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.circuitBreaker"></a>
|
||||
<tr>
|
||||
<td><code>circuitBreaker</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.CircuitBreaker">CircuitBreaker</a></td>
|
||||
<td>Circuit breaker policy.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.LoadBalancing"></a>
|
||||
### LoadBalancing
|
||||
Load balancing policy to use when forwarding traffic. These policies
|
||||
directly correlate to [load balancer
|
||||
types](https://lyft.github.io/envoy/docs/intro/archOverview/loadBalancing.html)
|
||||
supported by Envoy. Example,
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- loadBalancing: RANDOM
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy">SimpleLBPolicy</a></td>
|
||||
<td>Load balancing policy name (as defined in SimpleLBPolicy below)</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy"></a>
|
||||
#### SimpleLBPolicy
|
||||
Load balancing algorithms supported by Envoy proxy.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.ROUNDROBIN"></a>
|
||||
<tr>
|
||||
<td>ROUNDROBIN</td>
|
||||
<td>Simple round robin policy.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.LEASTCONN"></a>
|
||||
<tr>
|
||||
<td>LEASTCONN</td>
|
||||
<td>The least request load balancer uses an O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.RANDOM"></a>
|
||||
<tr>
|
||||
<td>RANDOM</td>
|
||||
<td>The random load balancer selects a random healthy host. The random load balancer generally performs better than round robin if no health checking policy is configured.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker"></a>
|
||||
### CircuitBreaker
|
||||
|
|
@ -50,7 +187,7 @@ for more details.
|
|||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.CircuitBreaker.SimpleCircuitBreakerPolicy"></a>
|
||||
### SimpleCircuitBreakerPolicy
|
||||
#### SimpleCircuitBreakerPolicy
|
||||
Parameters to tune Envoy's circuit breaker configuration. A simple
|
||||
circuit breaker can be set based on a number of criteria such as
|
||||
connection and request limits. For example, the following destination
|
||||
|
|
@ -143,145 +280,3 @@ consecutive times with 5XX error code will be ejected for 15 minutes.
|
|||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy"></a>
|
||||
### DestinationPolicy
|
||||
DestinationPolicy defines client/caller-side policies that determine how
|
||||
to handle traffic bound to a particular destination service. The policy
|
||||
specifies configuration for load balancing and circuit breakers. For
|
||||
example, a simple load balancing policy for the reviews service would
|
||||
look as follows:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- loadBalancing: RANDOM
|
||||
simpleCb:
|
||||
maxConnections: 1000
|
||||
|
||||
|
||||
Policies are applicable per individual service versions. ONLY
|
||||
ONE policy can be defined per service version. Policy CANNOT be empty.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td>string</td>
|
||||
<td>REQUIRED. Service name for which the service version is defined. The value MUST BE a fully-qualified domain name, e.g. <em>my-service.default.svc.cluster.local</em>.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationPolicy.policy"></a>
|
||||
<tr>
|
||||
<td><code>policy[]</code></td>
|
||||
<td>repeated <a href="#istio.proxy.v1.config.DestinationVersionPolicy">DestinationVersionPolicy</a></td>
|
||||
<td>REQUIRED. List of policies, one per service version.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy"></a>
|
||||
### DestinationVersionPolicy
|
||||
A destination policy can be restricted to a particular version of a
|
||||
service or applied to all versions. The tags field in the
|
||||
DestinationVersionPolicy allow restricting the scope of a
|
||||
DestinationPolicy. For example, the following load balancing policy
|
||||
applies to version v1 of the reviews service running in the prod
|
||||
environment:
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- tags:
|
||||
env: prod
|
||||
version: v1
|
||||
loadBalancing: RANDOM
|
||||
|
||||
|
||||
If tags are omitted, the policy applies for all versions of the
|
||||
service. Policy CANNOT BE empty.
|
||||
*Note:* Destination policies will be applied only if the corresponding
|
||||
tagged instances are explicity routed to. In other words, for every
|
||||
destination policy defined, atleast one route rule must refer to the
|
||||
service version indicated in the destination policy.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.tags"></a>
|
||||
<tr>
|
||||
<td><code>tags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Optional set of tags that identify a particular version of the destination service. If omitted, the policy will apply to all versions of the service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.loadBalancing"></a>
|
||||
<tr>
|
||||
<td><code>loadBalancing</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.LoadBalancing">LoadBalancing</a></td>
|
||||
<td>Load balancing policy.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationVersionPolicy.circuitBreaker"></a>
|
||||
<tr>
|
||||
<td><code>circuitBreaker</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.CircuitBreaker">CircuitBreaker</a></td>
|
||||
<td>Circuit breaker policy.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.LoadBalancing"></a>
|
||||
### LoadBalancing
|
||||
Load balancing policy to use when forwarding traffic. These policies
|
||||
directly correlate to [load balancer
|
||||
types](https://lyft.github.io/envoy/docs/intro/archOverview/loadBalancing.html)
|
||||
supported by Envoy. Example,
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
policy:
|
||||
- loadBalancing: RANDOM
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.name"></a>
|
||||
<tr>
|
||||
<td><code>name</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy">SimpleLBPolicy</a></td>
|
||||
<td>Load balancing policy name (as defined in SimpleLBPolicy below)</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy"></a>
|
||||
### SimpleLBPolicy
|
||||
Load balancing algorithms supported by Envoy proxy.
|
||||
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Value</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.ROUNDROBIN"></a>
|
||||
<tr>
|
||||
<td>ROUNDROBIN</td>
|
||||
<td>Simple round robin policy.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.LEASTCONN"></a>
|
||||
<tr>
|
||||
<td>LEASTCONN</td>
|
||||
<td>The least request load balancer uses an O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.LoadBalancing.SimpleLBPolicy.RANDOM"></a>
|
||||
<tr>
|
||||
<td>RANDOM</td>
|
||||
<td>The random load balancer selects a random healthy host. The random load balancer generally performs better than round robin if no health checking policy is configured.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -1,136 +0,0 @@
|
|||
---
|
||||
title: Fault Injection
|
||||
overview: Generated documentation for the Istio's Configuration Schemas
|
||||
|
||||
order: 1010
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
---
|
||||
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [HTTPFaultInjection](#istio.proxy.v1.config.HTTPFaultInjection)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Abort](#istio.proxy.v1.config.HTTPFaultInjection.Abort)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Delay](#istio.proxy.v1.config.HTTPFaultInjection.Delay)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection"></a>
|
||||
### HTTPFaultInjection
|
||||
HTTPFaultInjection can be used to specify one or more faults to inject
|
||||
while forwarding http requests to the destination specified in the route
|
||||
rule. Fault specification is part of a route rule. Faults include
|
||||
aborting the Http request from downstream service, and/or delaying
|
||||
proxying of requests. A fault rule MUST HAVE delay or abort or both.
|
||||
|
||||
*Note:* Delay and abort faults are independent of one another, even if
|
||||
both are specified simultaneously.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.delay"></a>
|
||||
<tr>
|
||||
<td><code>delay</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Delay">Delay</a></td>
|
||||
<td>Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.abort"></a>
|
||||
<tr>
|
||||
<td><code>abort</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Abort">Abort</a></td>
|
||||
<td>Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort"></a>
|
||||
### Abort
|
||||
Abort specification is used to prematurely abort a request with a
|
||||
pre-specified error code. The following example will return an HTTP
|
||||
400 error code for 10% of the requests to the "ratings" service "v1".
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
abort:
|
||||
percent: 10
|
||||
httpStatus: 400
|
||||
|
||||
|
||||
The HttpStatus_ field is used to indicate the HTTP status code to
|
||||
return to the caller. The optional Percent_ field, a value between 0
|
||||
and 100, is used to only abort a certain percentage of requests. If
|
||||
not specified, all requests are aborted.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests to be aborted with the error code provided (0-100).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.httpStatus"></a>
|
||||
<tr>
|
||||
<td><code>httpStatus</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. HTTP status code to use to abort the Http request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay"></a>
|
||||
### Delay
|
||||
Delay specification is used to inject latency into the request
|
||||
forwarding path. The following example will introduce a 5 second delay
|
||||
in 10% of the requests to the "v1" version of the "reviews"
|
||||
service.
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: API and Configuration Schemas
|
||||
title: Configuration & API
|
||||
overview: Detailed information on API parameters and configuration options.
|
||||
|
||||
order: 21
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
---
|
||||
title: Manager
|
||||
overview: Generated documentation for the Istio's Configuration Schemas
|
||||
title: Service Mesh Configuration
|
||||
overview: Generated documentation for the Service Mesh global configuration.
|
||||
|
||||
order: 1020
|
||||
order: 5
|
||||
|
||||
layout: docs
|
||||
type: markdown
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Mixer Configuration Schema
|
||||
overview: Generated documentation for Mixer's Configuration Schema
|
||||
title: Mixer - Configuration Schema
|
||||
overview: Generated documentation for Mixer's configuration schema
|
||||
|
||||
order: 40
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Mixer Service
|
||||
overview: Generated documentation for Mixer's API Surface
|
||||
title: Mixer - Southbound API
|
||||
overview: Generated documentation for Mixer's API that is used by Envoy.
|
||||
|
||||
order: 20
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Routing Rules
|
||||
overview: Generated documentation for the Istio's Configuration Schemas
|
||||
title: Rules - Routing
|
||||
overview: Generated documentation for the Istio's traffic management rules
|
||||
|
||||
order: 990
|
||||
|
||||
|
|
@ -12,457 +12,26 @@ type: markdown
|
|||
<a name="rpcIstio.proxy.v1.configIndex"></a>
|
||||
### Index
|
||||
|
||||
* [RouteRule](#istio.proxy.v1.config.RouteRule)
|
||||
(message)
|
||||
* [MatchCondition](#istio.proxy.v1.config.MatchCondition)
|
||||
(message)
|
||||
* [DestinationWeight](#istio.proxy.v1.config.DestinationWeight)
|
||||
(message)
|
||||
* [HTTPFaultInjection](#istio.proxy.v1.config.HTTPFaultInjection)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Abort](#istio.proxy.v1.config.HTTPFaultInjection.Abort)
|
||||
(message)
|
||||
* [HTTPFaultInjection.Delay](#istio.proxy.v1.config.HTTPFaultInjection.Delay)
|
||||
(message)
|
||||
* [HTTPRedirect](#istio.proxy.v1.config.HTTPRedirect)
|
||||
(message)
|
||||
* [HTTPRetry](#istio.proxy.v1.config.HTTPRetry)
|
||||
(message)
|
||||
* [HTTPRetry.SimpleRetryPolicy](#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy)
|
||||
(message)
|
||||
* [HTTPRewrite](#istio.proxy.v1.config.HTTPRewrite)
|
||||
(message)
|
||||
* [HTTPTimeout](#istio.proxy.v1.config.HTTPTimeout)
|
||||
(message)
|
||||
* [HTTPTimeout.SimpleTimeoutPolicy](#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy)
|
||||
* [HTTPRetry](#istio.proxy.v1.config.HTTPRetry)
|
||||
(message)
|
||||
* [MatchCondition](#istio.proxy.v1.config.MatchCondition)
|
||||
* [HTTPFaultInjection](#istio.proxy.v1.config.HTTPFaultInjection)
|
||||
(message)
|
||||
* [RouteRule](#istio.proxy.v1.config.RouteRule)
|
||||
(message)
|
||||
* [StringMatch](#istio.proxy.v1.config.StringMatch)
|
||||
(message)
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationWeight"></a>
|
||||
### DestinationWeight
|
||||
Each routing rule is associated with one or more service versions (see
|
||||
glossary in beginning of document). Weights associated with the version
|
||||
determine the proportion of traffic it receives. For example, the
|
||||
following rule will route 25% of traffic for the "reviews" service to
|
||||
instances with the "v2" tag and the remaining traffic (i.e., 75%) to
|
||||
"v1".
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v2
|
||||
weight: 25
|
||||
- tags:
|
||||
version: v1
|
||||
weight: 75
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td>string</td>
|
||||
<td>Destination uniquely identifies the destination service. If not specified, the value is inherited from the parent route rule. Value must be in fully qualified domain name format (e.g., "my-service.default.svc.cluster.local").</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.tags"></a>
|
||||
<tr>
|
||||
<td><code>tags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Service version identifier for the destination service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.weight"></a>
|
||||
<tr>
|
||||
<td><code>weight</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. 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 destination in a rule, the weight value is assumed to be 100.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection"></a>
|
||||
### HTTPFaultInjection
|
||||
HTTPFaultInjection can be used to specify one or more faults to inject
|
||||
while forwarding http requests to the destination specified in the route
|
||||
rule. Fault specification is part of a route rule. Faults include
|
||||
aborting the Http request from downstream service, and/or delaying
|
||||
proxying of requests. A fault rule MUST HAVE delay or abort or both.
|
||||
|
||||
*Note:* Delay and abort faults are independent of one another, even if
|
||||
both are specified simultaneously.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.delay"></a>
|
||||
<tr>
|
||||
<td><code>delay</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Delay">Delay</a></td>
|
||||
<td>Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.abort"></a>
|
||||
<tr>
|
||||
<td><code>abort</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Abort">Abort</a></td>
|
||||
<td>Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort"></a>
|
||||
### Abort
|
||||
Abort specification is used to prematurely abort a request with a
|
||||
pre-specified error code. The following example will return an HTTP
|
||||
400 error code for 10% of the requests to the "ratings" service "v1".
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
abort:
|
||||
percent: 10
|
||||
httpStatus: 400
|
||||
|
||||
|
||||
The HttpStatus_ field is used to indicate the HTTP status code to
|
||||
return to the caller. The optional Percent_ field, a value between 0
|
||||
and 100, is used to only abort a certain percentage of requests. If
|
||||
not specified, all requests are aborted.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests to be aborted with the error code provided (0-100).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.httpStatus"></a>
|
||||
<tr>
|
||||
<td><code>httpStatus</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. HTTP status code to use to abort the Http request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay"></a>
|
||||
### Delay
|
||||
Delay specification is used to inject latency into the request
|
||||
forwarding path. The following example will introduce a 5 second delay
|
||||
in 10% of the requests to the "v1" version of the "reviews"
|
||||
service.
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect"></a>
|
||||
### HTTPRedirect
|
||||
HTTPRedirect can be used to send a 302 redirect response to the caller,
|
||||
where the Authority/Host and the URI in the response can be swapped with
|
||||
the specified values. For example, the following route rule redirects
|
||||
requests for /v1/getProductRatings API on the ratings service to
|
||||
/v1/bookRatings provided by the bookratings service.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
httpHeaders:
|
||||
uri:
|
||||
exact: /v1/getProductRatings
|
||||
redirect:
|
||||
uri: /v1/bookRatings
|
||||
authority: bookratings.default.svc.cluster.local
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Path portion of the URL with this value. Note that the entire path will be replaced, irrespective of the request URI being matched as an exact path or prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Authority/Host portion of the URL with this value</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry"></a>
|
||||
### HTTPRetry
|
||||
Describes the retry policy to use when a HTTP request fails. For
|
||||
example, the following rule sets the maximum number of retries to 3 when
|
||||
calling ratings:v1 service, with a 2s timeout per retry attempt.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpReqRetries:
|
||||
simpleRetry:
|
||||
attempts: 3
|
||||
perTryTimeout: 2s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.simpleRetry"></a>
|
||||
<tr>
|
||||
<td><code>simpleRetry</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy">SimpleRetryPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy"></a>
|
||||
### SimpleRetryPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.attempts"></a>
|
||||
<tr>
|
||||
<td><code>attempts</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the httpReqTimeout.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.perTryTimeout"></a>
|
||||
<tr>
|
||||
<td><code>perTryTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite"></a>
|
||||
### HTTPRewrite
|
||||
HTTPRewrite can be used to rewrite specific parts of a HTTP request
|
||||
before forwarding the request to the destination. Rewrite primitive can
|
||||
be used only with the DestinationWeights. The following example
|
||||
demonstrates how to rewrite the URL prefix for api call (/ratings) to
|
||||
ratings service before making the actual API call.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
httpHeaders:
|
||||
uri:
|
||||
prefix: /ratings
|
||||
rewrite:
|
||||
uri: /v1/bookRatings
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Path (or the prefix) portion of the URI with this value. If the original URI was matched based on prefix, the value provided in this field will replace the corresponding matched prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Authority/Host header with this value.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout"></a>
|
||||
### HTTPTimeout
|
||||
Describes HTTP request timeout. For example, the following rule sets a
|
||||
10 second timeout for calls to the ratings:v1 service
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpReqTimeout:
|
||||
simpleTimeout:
|
||||
timeout: 10s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.simpleTimeout"></a>
|
||||
<tr>
|
||||
<td><code>simpleTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy">SimpleTimeoutPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy"></a>
|
||||
### SimpleTimeoutPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy.timeout"></a>
|
||||
<tr>
|
||||
<td><code>timeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Timeout for a HTTP request. Includes retries as well. Default 15s. format: 1h/1m/1s/1ms. MUST BE >=1ms. It is possible to control timeout per request by supplying the timeout value via x-envoy-upstream-rq-timeout-ms HTTP header.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MatchCondition"></a>
|
||||
### MatchCondition
|
||||
Match condition specifies a set of criterion to be met in order for the
|
||||
route rule to be applied to the connection or HTTP request. The
|
||||
condition provides distinct set of conditions for each protocol with the
|
||||
intention that conditions apply only to the service ports that match the
|
||||
protocol. For example, the following route rule restricts the rule to
|
||||
match only requests originating from "reviews:v2", accessing ratings
|
||||
service where the URL path starts with /ratings/v2/ and the request
|
||||
contains a "cookie" with value "user=jason",
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
source: reviews.default.svc.cluster.local
|
||||
sourceTags:
|
||||
version: v2
|
||||
httpHeaders:
|
||||
cookie:
|
||||
regex: "^(.*?;)?(user=jason)(;.*)?$"
|
||||
uri:
|
||||
prefix: "/ratings/v2/"
|
||||
|
||||
|
||||
MatchCondition CANNOT BE empty. Atleast one of source, sourceTags or
|
||||
httpHeaders must be specified.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.source"></a>
|
||||
<tr>
|
||||
<td><code>source</code></td>
|
||||
<td>string</td>
|
||||
<td>Identifies the service initiating a connection or a request by its name. If specified, name MUST BE a fully qualified domain name such as foo.bar.com</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.sourceTags"></a>
|
||||
<tr>
|
||||
<td><code>sourceTags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>One or more tags that uniquely identify the source service version. In Kubernetes, tags correspond to the labels associated with pods.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.httpHeaders"></a>
|
||||
<tr>
|
||||
<td><code>httpHeaders</code></td>
|
||||
<td>repeated map<string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>></td>
|
||||
<td><p>Set of HTTP match conditions based on HTTP/1.1, HTTP/2, GRPC request metadata, such as <em>uri</em>, <em>scheme</em>, <em>authority</em>. The header keys must be lowercase and use hyphen as the separator, e.g. <em>x-request-id</em>.</p><p><em>Note 1:</em> The keys <em>uri</em>, <em>scheme</em>, <em>method</em>, and <em>authority</em> correspond to URI, protocol scheme (e.g., HTTP, HTTPS), HTTP method (e.g., GET, POST), and the HTTP Host header respectively.</p><p><em>Note 2:</em> <em>uri</em> can be used to perform URL matches. For URL matches (Uri_), only prefix and exact (see StringMatch) matches are supported. For other HTTP headers, exact, prefix and ECMA style regular expression matches are supported.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.RouteRule"></a>
|
||||
### RouteRule
|
||||
|
||||
<a name="rpcIstio.proxy.v1.configIstio.proxy.v1.config.RouteRuleDescriptionSubsectionSubsectionSubsection"></a>
|
||||
#### Glossary & concepts
|
||||
*Service* is a unit of an application with a unique name that other services
|
||||
use to refer to the functionality being called. Service instances are
|
||||
pods/VMs/containers that implement the service.
|
||||
|
||||
*Service versions* - In a continuous deployment scenario, for a given service,
|
||||
there can be multiple sets of instances running potentially different
|
||||
variants of the application binary. These variants are not necessarily
|
||||
different API versions. They could be iterative changes to the same service,
|
||||
deployed in different environments (prod, staging, dev, etc.). Common
|
||||
scenarios where this occurs include A/B testing, canary rollouts, etc. The
|
||||
choice of a particular version can be decided based on various criterion
|
||||
(headers, url, etc.) and/or by weights assigned to each version. Each
|
||||
service has a default version consisting of all its instances.
|
||||
|
||||
*Source* - downstream client (browser or another service) calling the
|
||||
Envoy proxy/sidecar (typically to reach another service).
|
||||
|
||||
*Destination* - The remote upstream service to which the Envoy proxy/sidecar is
|
||||
talking to, on behalf of the source service. There can be one or more
|
||||
service versions for a given service (see the discussion on versions above).
|
||||
Envoy would choose the version based on various routing rules.
|
||||
|
||||
*Access model* - Applications address only the destination service
|
||||
without knowledge of individual service versions. The actual choice of
|
||||
the version is determined by Envoy, enabling the application code to
|
||||
decouple itself from the evolution of dependent services.
|
||||
|
||||
|
||||
|
||||
Route rule provides a custom routing policy based on the source and
|
||||
destination service versions and connection/request metadata. The rule
|
||||
must provide a set of conditions for each protocol (TCP, UDP, HTTP) that
|
||||
|
|
@ -545,8 +114,61 @@ For example, a simple rule to send 100% of incoming traffic for a
|
|||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.MatchCondition"></a>
|
||||
### MatchCondition
|
||||
Match condition specifies a set of criterion to be met in order for the
|
||||
route rule to be applied to the connection or HTTP request. The
|
||||
condition provides distinct set of conditions for each protocol with the
|
||||
intention that conditions apply only to the service ports that match the
|
||||
protocol. For example, the following route rule restricts the rule to
|
||||
match only requests originating from "reviews:v2", accessing ratings
|
||||
service where the URL path starts with /ratings/v2/ and the request
|
||||
contains a "cookie" with value "user=jason",
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
source: reviews.default.svc.cluster.local
|
||||
sourceTags:
|
||||
version: v2
|
||||
httpHeaders:
|
||||
cookie:
|
||||
regex: "^(.*?;)?(user=jason)(;.*)?$"
|
||||
uri:
|
||||
prefix: "/ratings/v2/"
|
||||
|
||||
|
||||
MatchCondition CANNOT BE empty. Atleast one of source, sourceTags or
|
||||
httpHeaders must be specified.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.source"></a>
|
||||
<tr>
|
||||
<td><code>source</code></td>
|
||||
<td>string</td>
|
||||
<td>Identifies the service initiating a connection or a request by its name. If specified, name MUST BE a fully qualified domain name such as foo.bar.com</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.sourceTags"></a>
|
||||
<tr>
|
||||
<td><code>sourceTags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>One or more tags that uniquely identify the source service version. In Kubernetes, tags correspond to the labels associated with pods.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.MatchCondition.httpHeaders"></a>
|
||||
<tr>
|
||||
<td><code>httpHeaders</code></td>
|
||||
<td>repeated map<string, <a href="#istio.proxy.v1.config.StringMatch">StringMatch</a>></td>
|
||||
<td><p>Set of HTTP match conditions based on HTTP/1.1, HTTP/2, GRPC request metadata, such as <em>uri</em>, <em>scheme</em>, <em>authority</em>. The header keys must be lowercase and use hyphen as the separator, e.g. <em>x-request-id</em>.</p><p><em>Note 1:</em> The keys <em>uri</em>, <em>scheme</em>, <em>method</em>, and <em>authority</em> correspond to URI, protocol scheme (e.g., HTTP, HTTPS), HTTP method (e.g., GET, POST), and the HTTP Host header respectively.</p><p><em>Note 2:</em> <em>uri</em> can be used to perform URL matches. For URL matches (Uri_), only prefix and exact (see StringMatch) matches are supported. For other HTTP headers, exact, prefix and ECMA style regular expression matches are supported.</p></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.StringMatch"></a>
|
||||
### StringMatch
|
||||
#### StringMatch
|
||||
Describes how to match a given string in HTTP headers. Match is case-sensitive.
|
||||
|
||||
<table>
|
||||
|
|
@ -574,3 +196,341 @@ Describes how to match a given string in HTTP headers. Match is case-sensitive.
|
|||
<td>ECMAscript style regex-based match</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.DestinationWeight"></a>
|
||||
### DestinationWeight
|
||||
Each routing rule is associated with one or more service versions (see
|
||||
glossary in beginning of document). Weights associated with the version
|
||||
determine the proportion of traffic it receives. For example, the
|
||||
following rule will route 25% of traffic for the "reviews" service to
|
||||
instances with the "v2" tag and the remaining traffic (i.e., 75%) to
|
||||
"v1".
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v2
|
||||
weight: 25
|
||||
- tags:
|
||||
version: v1
|
||||
weight: 75
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.destination"></a>
|
||||
<tr>
|
||||
<td><code>destination</code></td>
|
||||
<td>string</td>
|
||||
<td>Destination uniquely identifies the destination service. If not specified, the value is inherited from the parent route rule. Value must be in fully qualified domain name format (e.g., "my-service.default.svc.cluster.local").</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.tags"></a>
|
||||
<tr>
|
||||
<td><code>tags</code></td>
|
||||
<td>repeated map<string, string></td>
|
||||
<td>Service version identifier for the destination service.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.DestinationWeight.weight"></a>
|
||||
<tr>
|
||||
<td><code>weight</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. 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 destination in a rule, the weight value is assumed to be 100.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect"></a>
|
||||
### HTTPRedirect
|
||||
HTTPRedirect can be used to send a 302 redirect response to the caller,
|
||||
where the Authority/Host and the URI in the response can be swapped with
|
||||
the specified values. For example, the following route rule redirects
|
||||
requests for /v1/getProductRatings API on the ratings service to
|
||||
/v1/bookRatings provided by the bookratings service.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
httpHeaders:
|
||||
uri:
|
||||
exact: /v1/getProductRatings
|
||||
redirect:
|
||||
uri: /v1/bookRatings
|
||||
authority: bookratings.default.svc.cluster.local
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Path portion of the URL with this value. Note that the entire path will be replaced, irrespective of the request URI being matched as an exact path or prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRedirect.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>On a redirect, overwrite the Authority/Host portion of the URL with this value</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite"></a>
|
||||
### HTTPRewrite
|
||||
HTTPRewrite can be used to rewrite specific parts of a HTTP request
|
||||
before forwarding the request to the destination. Rewrite primitive can
|
||||
be used only with the DestinationWeights. The following example
|
||||
demonstrates how to rewrite the URL prefix for api call (/ratings) to
|
||||
ratings service before making the actual API call.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
match:
|
||||
httpHeaders:
|
||||
uri:
|
||||
prefix: /ratings
|
||||
rewrite:
|
||||
uri: /v1/bookRatings
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.uri"></a>
|
||||
<tr>
|
||||
<td><code>uri</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Path (or the prefix) portion of the URI with this value. If the original URI was matched based on prefix, the value provided in this field will replace the corresponding matched prefix.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRewrite.authority"></a>
|
||||
<tr>
|
||||
<td><code>authority</code></td>
|
||||
<td>string</td>
|
||||
<td>rewrite the Authority/Host header with this value.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout"></a>
|
||||
### HTTPTimeout
|
||||
Describes HTTP request timeout. For example, the following rule sets a
|
||||
10 second timeout for calls to the ratings:v1 service
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpReqTimeout:
|
||||
simpleTimeout:
|
||||
timeout: 10s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.simpleTimeout"></a>
|
||||
<tr>
|
||||
<td><code>simpleTimeout</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy">SimpleTimeoutPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy"></a>
|
||||
#### SimpleTimeoutPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPTimeout.SimpleTimeoutPolicy.timeout"></a>
|
||||
<tr>
|
||||
<td><code>timeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Timeout for a HTTP request. Includes retries as well. Default 15s. format: 1h/1m/1s/1ms. MUST BE >=1ms. It is possible to control timeout per request by supplying the timeout value via x-envoy-upstream-rq-timeout-ms HTTP header.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry"></a>
|
||||
### HTTPRetry
|
||||
Describes the retry policy to use when a HTTP request fails. For
|
||||
example, the following rule sets the maximum number of retries to 3 when
|
||||
calling ratings:v1 service, with a 2s timeout per retry attempt.
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpReqRetries:
|
||||
simpleRetry:
|
||||
attempts: 3
|
||||
perTryTimeout: 2s
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.simpleRetry"></a>
|
||||
<tr>
|
||||
<td><code>simpleRetry</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy">SimpleRetryPolicy</a></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy"></a>
|
||||
#### SimpleRetryPolicy
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.attempts"></a>
|
||||
<tr>
|
||||
<td><code>attempts</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. Number of retries for a given request. The interval between retries will be determined automatically (25ms+). Actual number of retries attempted depends on the httpReqTimeout.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPRetry.SimpleRetryPolicy.perTryTimeout"></a>
|
||||
<tr>
|
||||
<td><code>perTryTimeout</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>Timeout per retry attempt for a given request. format: 1h/1m/1s/1ms. MUST BE >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection"></a>
|
||||
### HTTPFaultInjection
|
||||
HTTPFaultInjection can be used to specify one or more faults to inject
|
||||
while forwarding http requests to the destination specified in the route
|
||||
rule. Fault specification is part of a route rule. Faults include
|
||||
aborting the Http request from downstream service, and/or delaying
|
||||
proxying of requests. A fault rule MUST HAVE delay or abort or both.
|
||||
|
||||
*Note:* Delay and abort faults are independent of one another, even if
|
||||
both are specified simultaneously.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.delay"></a>
|
||||
<tr>
|
||||
<td><code>delay</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Delay">Delay</a></td>
|
||||
<td>Delay requests before forwarding, emulating various failures such as network issues, overloaded upstream service, etc.</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.abort"></a>
|
||||
<tr>
|
||||
<td><code>abort</code></td>
|
||||
<td><a href="#istio.proxy.v1.config.HTTPFaultInjection.Abort">Abort</a></td>
|
||||
<td>Abort Http request attempts and return error codes back to downstream service, giving the impression that the upstream service is faulty.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort"></a>
|
||||
#### Abort
|
||||
Abort specification is used to prematurely abort a request with a
|
||||
pre-specified error code. The following example will return an HTTP
|
||||
400 error code for 10% of the requests to the "ratings" service "v1".
|
||||
|
||||
|
||||
destination: ratings.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
abort:
|
||||
percent: 10
|
||||
httpStatus: 400
|
||||
|
||||
|
||||
The HttpStatus_ field is used to indicate the HTTP status code to
|
||||
return to the caller. The optional Percent_ field, a value between 0
|
||||
and 100, is used to only abort a certain percentage of requests. If
|
||||
not specified, all requests are aborted.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests to be aborted with the error code provided (0-100).</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Abort.httpStatus"></a>
|
||||
<tr>
|
||||
<td><code>httpStatus</code></td>
|
||||
<td>int32</td>
|
||||
<td>REQUIRED. HTTP status code to use to abort the Http request.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay"></a>
|
||||
#### Delay
|
||||
Delay specification is used to inject latency into the request
|
||||
forwarding path. The following example will introduce a 5 second delay
|
||||
in 10% of the requests to the "v1" version of the "reviews"
|
||||
service.
|
||||
|
||||
|
||||
destination: reviews.default.svc.cluster.local
|
||||
route:
|
||||
- tags:
|
||||
version: v1
|
||||
httpFault:
|
||||
delay:
|
||||
percent: 10
|
||||
fixedDelay: 5s
|
||||
|
||||
|
||||
The FixedDelay_ field is used to indicate the amount of delay in
|
||||
seconds. An optional Percent_ field, a value between 0 and 100, can
|
||||
be used to only delay a certain percentage of requests. If left
|
||||
unspecified, all request will be delayed.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Field</th>
|
||||
<th>Type</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.percent"></a>
|
||||
<tr>
|
||||
<td><code>percent</code></td>
|
||||
<td>float</td>
|
||||
<td>percentage of requests on which the delay will be injected (0-100)</td>
|
||||
</tr>
|
||||
<a name="istio.proxy.v1.config.HTTPFaultInjection.Delay.fixedDelay"></a>
|
||||
<tr>
|
||||
<td><code>fixedDelay</code></td>
|
||||
<td><a href="https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#duration">Duration</a></td>
|
||||
<td>REQUIRED. Add a fixed delay before forwarding the request. Format: 1h/1m/1s/1ms. MUST be >=1ms.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
title: Commands
|
||||
overview: Describes usage and options of the Istio CLI.
|
||||
title: CLI
|
||||
overview: Describes usage and options of the Istio CLI and other utilities.
|
||||
order: 30
|
||||
layout: docs
|
||||
type: markdown
|
||||
|
|
|
|||
Loading…
Reference in New Issue