This is an automated email from the ASF dual-hosted git repository.

zhangjintao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git


The following commit(s) were added to refs/heads/master by this push:
     new 47906a53 docs: update ApisixRoute/v2 reference (#1423)
47906a53 is described below

commit 47906a533369dc76c3d2f7fcba10ce8030bd4ce6
Author: Navendu Pottekkat <[email protected]>
AuthorDate: Wed Nov 16 20:29:04 2022 +0530

    docs: update ApisixRoute/v2 reference (#1423)
---
 docs/en/latest/references/apisix_route_v2.md      | 153 +++++++++++-----------
 docs/en/latest/references/apisix_route_v2beta3.md | 130 +++++++++---------
 2 files changed, 150 insertions(+), 133 deletions(-)

diff --git a/docs/en/latest/references/apisix_route_v2.md 
b/docs/en/latest/references/apisix_route_v2.md
index 89cae10b..5ea3cd50 100644
--- a/docs/en/latest/references/apisix_route_v2.md
+++ b/docs/en/latest/references/apisix_route_v2.md
@@ -1,5 +1,10 @@
 ---
-title: ApisixRoute/v2 Reference
+title: ApisixRoute/v2
+keywords:
+  - APISIX ingress
+  - Apache APISIX
+  - ApisixRoute
+description: Reference for ApisixRoute/v2 custom Kubernetes resource.
 ---
 
 <!--
@@ -21,83 +26,85 @@ title: ApisixRoute/v2 Reference
 #
 -->
 
+See 
[concepts](https://apisix.apache.org/docs/ingress-controller/concepts/apisix_route)
 to learn more about how to use the ApisixRoute resource.
+
 ## Spec
 
-Meaning of each field in the spec of ApisixRoute are followed, the top level 
fields (`apiVersion`, `kind` and `metadata`) are same as other Kubernetes 
Resources.
+See the 
[definition](https://github.com/apache/apisix-ingress-controller/blob/master/samples/deploy/crd/v1/ApisixRoute.yaml)
 on GitHub.
+
+The table below describes each of the attributes in the spec. The fields 
`apiVersion`, `kind`, and `metadata` are similar to other Kubernetes resources 
and are excluded below.
+
+| Attribute                            | Type               | Description      
                                                                                
                                                                                
         |
+| ------------------------------------ | ------------------ | 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| http                                 | array              | HTTP Route 
rules.                                                                          
                                                                                
               |
+| http[].name                          | string (required)  | Route rule name. 
                                                                                
                                                                                
         |
+| http[].priority                      | integer            | Route priority. 
Used to determined which Route to use when multiple routes contain the same 
URI. Large number means higher priority.                                        
              |
+| http[].timeout                       | object             | Timeouts for 
connecting, sending, and receiving messages between Ingress and the service. 
This will overwrite the value configured in `ApisixUpstream` resource.          
                |
+| http[].timeout.connect               | string             | Connect timeout 
in the form "72h3m0.5s".                                                        
                                                                                
          |
+| http[].timeout.send                  | string             | Send timeout in 
the form "72h3m0.5s".                                                           
                                                                                
          |
+| http[].timeout.read                  | string             | Read timeout in 
the form "72h3m0.5s".                                                           
                                                                                
          |
+| http[].match                         | object             | Conditions to 
match a request with the Route.                                                 
                                                                                
            |
+| http[].match.paths                   | array              | List of URIs to 
match the Route with. The Route will be used if any one of the URIs is matched. 
                                                                                
          |
+| http[].match.hosts                   | array              | List of hosts to 
match the Route with. The Route will be used if any one of the hosts is 
matched.                                                                        
                 |
+| http[].match.methods                 | array              | List of HTTP 
methods (`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`, `CONNECT`, 
`TRACE`) to match the Route with. The Route will be used if any one of the 
methods is matched. |
+| http[].match.remoteAddrs             | array              | List of IP 
addresses (CIDR format) to match the Route with. The Route will be used if any 
one of the IP address is matched.                                               
                |
+| http[].match.exprs                   | array              | List of 
expressions to match the Route with. The Route will be used if any one of the 
expression is matched.                                                          
                    |
+| http[].match.exprs[].subject         | object             | Subject for the 
expression.                                                                     
                                                                                
          |
+| http[].match.exprs[].subject.scope   | string             | Scope of the 
subject. Can be one of `Header`, `Query`, `Cookie`, or `Path`.                  
                                                                                
             |
+| http[].match.exprs[].subject.name    | string             | Subject name. 
Can be empty when the scope is `Path`.                                          
                                                                                
            |
+| http[].match.exprs[].op              | string             | Operator for the 
expression. See [Expression operators](#expression-operators) for more details. 
                                                                                
         |
+| http[].match.exprs[].value           | string             | Value to compare 
the subject with. Can use either this or `http[].match.exprs[].set`.            
                                                                                
         |
+| http[].match.exprs[].set             | array              | Set to compare 
the subject with. Only used when the operator is `In` or `NotIn`. Can use 
either this or `http[].match.exprs[].value`.                                    
                 |
+| http[].websocket                     | boolean            | When set to 
`true` enables websocket proxy.                                                 
                                                                                
              |
+| http[].plugin_config_name            | string             | Existing Plugin 
Config name to use in the Route.                                                
                                                                                
          |
+| http[].backends                      | object             | List of backend 
services. If there are more than one, a weight based traffic split policy would 
be applied.                                                                     
          |
+| http[].backends[].serviceName        | string             | Name of the 
backend service. The service and the `ApisixRoute` resource should be created 
in the same namespace.                                                          
                |
+| http[].backends[].servicePort        | integer or string  | Port number or 
the name defined in the service object of the backend.                          
                                                                                
           |
+| http[].backends[].resolveGranularity | string             | See [Service 
resolution granularity](#service-resolution-granularity) for details.           
                                                                                
             |
+| http[].backends[].weight             | int                | Weight with 
which to split traffic to the backend. Defaults to `100` and is ignored when 
there is only one backend.                                                      
                 |
+| http[].backends[].subset             | string             | Subset for the 
target service. Should be pre-defined in the `ApisixUpstream` resource.         
                                                                                
           |
+| http[].plugins                       | array              | [APISIX 
Plugins](https://apisix.apache.org/docs/apisix/plugins/batch-requests/) to be 
executed if the Route is matched.                                               
                    |
+| http[].plugins[].name                | string             | Name of the 
Plugin. See [Plugin hub](https://apisix.apache.org/plugins/) for a list of 
available Plugins.                                                              
                   |
+| http[].plugins[].enable              | boolean            | When set to 
`true`, the Plugin is enabled on the Route.                                     
                                                                                
              |
+| http[].plugins[].config              | object             | Configuration of 
the Plugin. Should have the same fields as in [APISIX 
docs](https://apisix.apache.org/docs/apisix/plugins/batch-requests/).           
                                   |
+| http[].authentication                | object             | List of APISIX 
authentication Plugins.                                                         
                                                                                
           |
+| http[].authentication.enable         | boolean            | When set to 
`true`, the authentication Plugin is enabled on the Route.                      
                                                                                
              |
+| http[].authentication.type           | string             | Type of 
authentication. Set to one of `basicAuth` or `keyAuth`.                         
                                                                                
                  |
+| http[].authentication.keyAuth        | object             | Unique key for a 
[Consumer](https://apisix.apache.org/docs/apisix/terminology/consumer/).        
                                                                                
         |
+| http[].authentication.keyAuth.header | string             | Header to get 
the key from.                                                                   
                                                                                
            |
+| stream                               | array              | Stream route 
rules. Contains TCP or UDP rules.                                               
                                                                                
             |
+| stream[].protocol                    | string (required)  | The protocol of 
rule. Support `TCP` or `UDP`                                                    
                                                                                
          |
+| stream[].name                        | string (required)  | Name of the 
rule.                                                                           
                                                                                
              |
+| stream[].match                       | object (required)  | Conditions to 
match the request with the Route.                                               
                                                                                
            |
+| stream[].match.ingressPort           | integer (required) | Listening port 
in the Ingress proxy server. This port should be defined in the [APISIX 
configuration](https://github.com/apache/apisix/blob/master/conf/config-default.yaml#L101).
        |
+| stream[].backend                     | object             | Backend service 
(deprecated). Use `http[].backends` instead.                                    
                                                                                
          |
+| stream[].backend.serviceName         | string             | Name of the 
backend service (depricated). The service and the `ApisixRoute` resource should 
be created in the same namespace.                                               
              |
+| stream[].backend.servicePort         | integer or string  | Port number or 
the name defined in the service object of the backend (deprecated).             
                                                                                
           |
+| stream[].backend.resolveGranularity  | string             | See [Service 
resolution granularity](#service-resolution-granularity) for details 
(depricated).                                                                   
                        |
+| stream[].backend.subset              | string             | Subset for the 
target service (depricated). Should be pre-defined in the `ApisixUpstream` 
resource.                                                                       
                |
 
-| Field                                | Type               | Description      
                                                                                
                                                                                
                                                 |
-|--------------------------------------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| http                                 | array              | ApisixRoute's 
HTTP route rules.                                                               
                                                                                
                                                    |
-| http[].name                          | string (required)  | The route rule 
name.                                                                           
                                                                                
                                                   |
-| http[].priority                      | integer            | The route 
priority, it's used to determine which route will be hitted when multile routes 
contains the same URI. Large number means higher priority.                      
                                                        |
-| http[].timeout                       | object             | Sets the timeout 
for connecting to, and sending and receiving messages between the Ingress and 
Service. This will overwrite the timeout value configured in your 
ApisixUpstream.                                                  |
-| http[].timeout.connect               | string             | Time duration in 
the form "72h3m0.5s"                                                            
                                                                                
                                                 |
-| http[].timeout.send                  | string             | Time duration in 
the form "72h3m0.5s"                                                            
                                                                                
                                                 |
-| http[].timeout.read                  | string             | Time duration in 
the form "72h3m0.5s"                                                            
                                                                                
                                                 |
-| http[].match                         | object             | Route match 
conditions.                                                                     
                                                                                
                                                      |
-| http[].match.paths                   | array              | A series of URI 
that should be matched (oneof) to use this route rule.                          
                                                                                
                                                  |
-| http[].match.hosts                   | array              | A series of 
hosts that should be matched (oneof) to use this route rule.                    
                                                                                
                                                      |
-| http[].match.methods                 | array              | A series of HTTP 
methods(`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`, `CONNECT`, 
`TRACE`) that should be matched (oneof) to use this route rule.                 
                                                  |
-| http[].match.remoteAddrs             | array              | A series of IP 
address (CIDR format) that should be matched (oneof) to use this route rule.    
                                                                                
                                                   |
-| http[].match.exprs                   | array              | A series 
expressions that the results should be matched (oneof) to use this route rule.  
                                                                                
                                                         |
-| http[].match.exprs[].subject         | object             | Expression 
subject.                                                                        
                                                                                
                                                       |
-| http[].match.exprs[].subject.scope   | string             | Specify where to 
find the subject, values can be `Header`, `Query`, `Cookie` and `Path`.         
                                                                                
                                                 |
-| http[].match.exprs[].subject.name    | string             | Specify subject 
name, when scope is `Path`, this field can be absent.                           
                                                                                
                                                  |
-| http[].match.exprs[].op              | string             | Expression 
operator, see [Expression Operators](#expression-operators) for the detail of 
enumerations.                                                                   
                                                         |
-| http[].match.exprs[].value           | string             | Expected 
expression result, it's exclusive with `http[].match.exprs[].set`.              
                                                                                
                                                         |
-| http[].match.exprs[].set             | array              | Expected 
expression result set, only used when the operator is `In` or `NotIn`, it's 
exclusive with `http[].match.exprs[].value`.                                    
                                                             |
-| http[].websocket                     | boolean            | Whether enable 
websocket proxy.                                                                
                                                                                
                                                   |
-| http[].plugin_config_name            | string             | Using exist 
`PluginConfig` for `ApisixRoute`.                                               
                                                                                
                                                      |
-| http[].backends                      | object             | The backend 
services. When the number of backends more than one, weight based traffic split 
policy will be applied to shifting traffic between these backends.              
                                                      |
-| http[].backends[].serviceName        | string             | The backend 
service name, note the service and ApisixRoute should be created in the same 
namespace. Cross namespace referencing is not allowed.                          
                                                         |
-| http[].backends[].servicePort        | integer or string  | The backend 
service port, can be the port number or the name defined in the service object. 
                                                                                
                                                      |
-| http[].backends[].resolveGranularity | string             | See [Service 
Resolve Granularity](#service-resolve-granularity) for the details.             
                                                                                
                                                     |
-| http[].backends[].weight             | int                | The backend 
weight, which is critical when shifting traffic between multiple backends, 
default is `100`. Weight is ignored when there is only one backend.             
                                                           |
-| http[].backends[].subset             | string             | Subset specifies 
a subset for the target Service. The subset should be pre-definedin 
ApisixUpstream about this service.                                              
                                                             |
-| http[].plugins                       | array              | A series of 
APISIX plugins that will be executed once this route rule is matched            
                                                                                
                                                      |
-| http[].plugins[].name                | string             | The plugin name, 
see [docs](http://apisix.apache.org/docs/apisix/getting-started) for learning 
the available plugins.                                                          
                                                   |
-| http[].plugins[].enable              | boolean            | Whether the 
plugin would be used                                                            
                                                                                
                                                      |
-| http[].plugins[].config              | object             | The 
configuration of the plugin that must have the same fields as in APISIX.        
                                                                                
                                                              |
-| http[].authentication                | object             | A series of 
APISIX authentication plugins.                                                  
                                                                                
                                                      |
-| http[].authentication.enable         | boolean            | Whether the 
plugin would be used.                                                           
                                                                                
                                                      |
-| http[].authentication.type           | string             | Plugin type, one 
of "basicAuth" "keyAuth"                                                        
                                                                                
                                                 |
-| http[].authentication.keyAuth        | object             | Unique key for a 
Consumer.                                                                       
                                                                                
                                                 |
-| http[].authentication.keyAuth.header | string             | The header to 
get the key from.                                                               
                                                                                
                                                    |
-| stream                               | array              | ApisixRoutes' 
stream route rules, which contains TCP or UDP rules.                            
                                                                                
                                                    |
-| stream[].protocol                    | string (required)  | The protocol of 
rule. Support `TCP` or `UDP`                                                    
                                                                                
                                                  |
-| stream[].name                        | string (required)  | The Route rule 
name.                                                                           
                                                                                
                                                   |
-| stream[].match                       | object (required)  | The Route match 
conditions.                                                                     
                                                                                
                                                  |
-| stream[].match.ingressPort           | integer (required) | the Ingress 
proxy server listening port, note since APISIX doesn't support dynamic 
listening, this port should be defined in [apisix 
configuration](https://github.com/apache/apisix/blob/master/conf/config-default.yaml#L101).
  |
-| stream[].backend                     | object             | The backend 
service. Deprecated: use http[].backends instead.                               
                                                                                
                                                      |
-| stream[].backend.serviceName         | string             | The backend 
service name, note the service and ApisixRoute should be created in the same 
namespace. Cross namespace referencing is not allowed.                          
                                                         |
-| stream[].backend.servicePort         | integer or string  | The backend 
service port, can be the port number or the name defined in the service object. 
                                                                                
                                                      |
-| stream[].backend.resolveGranularity  | string             | See [Service 
Resolve Granularity](#service-resolve-granularity) for the details.             
                                                                                
                                                     |
-| stream[].backend.subset              | string             | Subset specifies 
a subset for the target Service. The subset should be pre-definedin 
ApisixUpstream about this service.                                              
                                                             |
-| stream[].plugins                     | array              | A series of 
APISIX plugins that will be executed once this route rule is matched            
                                                                                
                                                      |
-| stream[].plugins[].name              | string             | The plugin name, 
see [docs](http://apisix.apache.org/docs/apisix/getting-started) for learning 
the available plugins.                                                          
                                                   |
-| stream[].plugins[].enable            | boolean            | Whether the 
plugin would be used                                                            
                                                                                
                                                      |
-| stream[].plugins[].config            | object             | The 
configuration of the plugin that must have the same fields as in APISIX.        
                                                                                
                                                              |
+## Expression operators
 
-## Expression Operators
+The following operators can be used in match expressions:
 
-| Operator                     | Meaning                                       
                                         |
-|------------------------------|----------------------------------------------------------------------------------------|
-| Equal                        | The result of `subject` should be equal to 
the `value`                                 |
-| NotEqual                     | The result of `subject` should not be equal 
to `value`                                 |
-| GreaterThan                  | The result of `subject` should be a number 
and it must larger then `value`.            |
-| LessThan                     | The result of `subject` should be a number 
and it must less than `value`.              |
-| In                           | The result of `subject` should be inside the 
`set`.                                    |
-| NotIn                        | The result of `subject` should not be inside 
the `set`.                                |
-| RegexMatch                   | The result of `subject` should be matched by 
the `value` (a PCRE regex pattern).       |
-| RegexNotMatch                | The result of `subject` should not be matched 
by the `value` (a PCRE regex pattern).   |
-| RegexMatchCaseInsensitive    | Similar with `RegexMatch` but the match 
process is case insensitive                    |
-| RegexNotMatchCaseInsensitive | Similar with `RegexNotMatchCaseInsensitive` 
but the match process is case insensitive. |
+| Operator                     | Description                                   
                                  |
+| ---------------------------- | 
------------------------------------------------------------------------------- 
|
+| Equal                        | Result of the `subject` should be equal to 
the `value`.                         |
+| NotEqual                     | Result of the `subject` should not be equal 
to the `value`.                     |
+| GreaterThan                  | Result of the `subject` should be a number 
and must be larger than the `value`. |
+| LessThan                     | Result of the `subject` should be a number 
and must be less than the `value`.   |
+| In                           | Result of the `subject` should be a part of 
the `set`.                          |
+| NotIn                        | Result of the `subject` should be a part of 
the `set`.                          |
+| RegexMatch                   | Result of the `subject` should match the PCRE 
regex pattern of the `value`.     |
+| RegexNotMatch                | Result of the `subject` should not match the 
PCRE regex pattern of the `value`. |
+| RegexMatchCaseInsensitive    | Similar to `RegexMatch` but case insensitive. 
                                  |
+| RegexNotMatchCaseInsensitive | Similar to `RegexNotMatch` but case 
insensitive.                                |
 
-## Service Resolve Granularity
+## Service resolution granularity
 
-The service resolve granularity determines whether the [Serivce 
ClusterIP](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
 or its endpoints should be filled in the target upstream of APISIX.
+By default, the service referenced will be watched to update its endpoint list 
in APISIX. To just use the `ClusterIP` of the service, you can set the 
`resolveGranularity` attribute to `service` (defaults to `endpoint`):
 
-| Granularity | Meaning                                                        
                                                                                
                                |
-|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| endpoint    | Filled upstream nodes by Pods' IP. ApisixUpstream healthCheck 
is only effective on this case.                                                 
                                 |
-| service     | Filled upstream nodes by Service ClusterIP, in such a case, 
loadbalacing are implemented by 
[kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy).
 |
+| Granularity | Description                                                    
                                                                                
            |
+| ----------- | 
----------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| endpoint    | Upstream nodes are pods' IP adresses.                          
                                                                                
            |
+| service     | Upstream nodes are service cluster IP. Load balancing is 
implemented by 
[kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy).
 |
diff --git a/docs/en/latest/references/apisix_route_v2beta3.md 
b/docs/en/latest/references/apisix_route_v2beta3.md
index 9859f65c..36a9196a 100644
--- a/docs/en/latest/references/apisix_route_v2beta3.md
+++ b/docs/en/latest/references/apisix_route_v2beta3.md
@@ -1,7 +1,11 @@
 ---
-title: ApisixRoute/v2beta3 Reference
+title: ApisixRoute/v2beta3
+keywords:
+  - APISIX ingress
+  - Apache APISIX
+  - ApisixRoute
+description: Reference for ApisixRoute/v2beta3 custom Kubernetes resource.
 ---
-
 <!--
 #
 # Licensed to the Apache Software Foundation (ASF) under one or more
@@ -21,69 +25,75 @@ title: ApisixRoute/v2beta3 Reference
 #
 -->
 
+See 
[concepts](https://apisix.apache.org/docs/ingress-controller/concepts/apisix_route)
 to learn more about how to use the ApisixRoute resource.
+
 ## Spec
 
-Meaning of each field in the spec of ApisixRoute are followed, the top level 
fields (`apiVersion`, `kind` and `metadata`) are same as other Kubernetes 
Resources.
+See the 
[definition](https://github.com/apache/apisix-ingress-controller/blob/master/samples/deploy/crd/v1/ApisixRoute.yaml)
 on GitHub.
+
+The table below describes each of the attributes in the spec. The fields 
`apiVersion`, `kind`, and `metadata` are similar to other Kubernetes resources 
and are excluded below.
+
+| Attribute                            | Type               | Description      
                                                                                
                                                                                
           |
+|--------------------------------------|--------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| http                                 | array              | HTTP Route 
rules.                                                                          
                                                                                
                 |
+| http[].name                          | string (required)  | Route rule name. 
                                                                                
                                                                                
           |
+| http[].priority                      | integer            | Route priority. 
Used to determined which Route to use when multiple routes contain the same 
URI. Large number means higher priority.                                        
                |
+| http[].match                         | object             | Conditions to 
match a request with the Route.                                                 
                                                                                
              |
+| http[].match.paths                   | array              | List of URIs to 
match the Route with. The Route will be used if any one of the URIs is matched. 
                                                                                
            |
+| http[].match.hosts                   | array              | List of hosts to 
match the Route with. The Route will be used if any one of the hosts is 
matched.                                                                        
                   |
+| http[].match.methods                 | array              | List of HTTP 
methods (`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`, `CONNECT`, 
`TRACE`) to match the Route with. The Route will be used if any one of the 
methods is matched. |
+| http[].match.remoteAddrs             | array              | List of IP 
addresses (CIDR format) to match the Route with. The Route will be used if any 
one of the IP address is matched.                                               
                  |
+| http[].match.exprs                   | array              | List of 
expressions to match the Route with. The Route will be used if any one of the 
expression is matched.                                                          
                      |
+| http[].match.exprs[].subject         | object             | Subject for the 
expression.                                                                     
                                                                                
            |
+| http[].match.exprs[].subject.scope   | string             | Scope of the 
subject. Can be one of `Header`, `Query`, `Cookie`, or `Path`.                  
                                                                                
               |
+| http[].match.exprs[].subject.name    | string             | Subject name. 
Can be empty when the scope is `Path`.                                          
                                                                                
              |
+| http[].match.exprs[].op              | string             | Operator for the 
expression. See [Expression operators](#expression-operators) for more details. 
                                                                                
           |
+| http[].match.exprs[].value           | string             | Value to compare 
the subject with. Can use either this or `http[].match.exprs[].set`.            
                                                                                
           |
+| http[].match.exprs[].set             | array              | Set to compare 
the subject with. Only used when the operator is `In` or `NotIn`. Can use 
either this or `http[].match.exprs[].value`.                                    
                   |
+| http[].backends                      | object             | List of backend 
services. If there are more than one, a weight based traffic split policy would 
be applied.                                                                     
            |
+| http[].backends[].serviceName        | string             | Name of the 
backend service. The service and the `ApisixRoute` resource should be created 
in the same namespace.                                                          
                  |
+| http[].backends[].servicePort        | integer or string  | Port number or 
the name defined in the service object of the backend.                          
                                                                                
             |
+| http[].backends[].resolveGranularity | string             | See [Service 
resolution granularity](#service-resolution-granularity) for details.           
                                                                                
               |
+| http[].backends[].weight             | int                | Weight with 
which to split traffic to the backend. Defaults to `100` and is ignored when 
there is only one backend.                                                      
                   |
+| http[].backends[].subset             | string             | Subset for the 
target service. Should be pre-defined in the `ApisixUpstream` resource.         
                                                                                
             |
+| http[].plugins                       | array              | [APISIX 
Plugins](https://apisix.apache.org/docs/apisix/plugins/batch-requests/) to be 
executed if the Route is matched.                                               
                      |
+| http[].plugins[].name                | string             | Name of the 
Plugin. See [Plugin hub](https://apisix.apache.org/plugins/) for a list of 
available Plugins.                                                              
                     |
+| http[].plugins[].enable              | boolean            | When set to 
`true`, the Plugin is enabled on the Route.                                     
                                                                                
                |
+| http[].plugins[].config              | object             | Configuration of 
the Plugin. Should have the same fields as in [APISIX 
docs](https://apisix.apache.org/docs/apisix/plugins/batch-requests/).           
                                     |
+| http[].websocket                     | boolean            | When set to 
`true` enables websocket proxy.                                                 
                                                                                
                |
+| stream                               | array              | Stream route 
rules. Contains TCP or UDP rules.                                               
                                                                                
               |
+| stream[].protocol                    | string (required)  | The protocol of 
rule. Support `TCP` or `UDP`                                                    
                                                                                
            |
+| stream[].name                        | string (required)  | Name of the 
rule.                                                                           
                                                                                
                |
+| stream[].match                       | object (required)  | Conditions to 
match the request with the Route.                                               
                                                                                
              |
+| stream[].match.ingressPort           | integer (required) | Listening port 
in the Ingress proxy server. This port should be defined in the [APISIX 
configuration](https://github.com/apache/apisix/blob/master/conf/config-default.yaml#L101).
          |
+| stream[].backend                     | object             | Backend service 
(deprecated). Use `http[].backends` instead.                                    
                                                                                
            |
+| stream[].backend.serviceName         | string             | Name of the 
backend service (depricated). The service and the `ApisixRoute` resource should 
be created in the same namespace.                                               
                |
+| stream[].backend.servicePort         | integer or string  | Port number or 
the name defined in the service object of the backend (deprecated).             
                                                                                
             |
+| stream[].backend.resolveGranularity  | string             | See [Service 
resolution granularity](#service-resolution-granularity) for details 
(depricated).                                                                   
                          |
+| stream[].backend.subset              | string             | Subset for the 
target service (depricated). Should be pre-defined in the `ApisixUpstream` 
resource.                                                                       
                  |
 
-| Field                                | Type               | Description      
                                                                                
                                                                                
                                                |
-|--------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| http                                 | array              | ApisixRoute's 
HTTP route rules.                                                               
                                                                                
                                                   |
-| http[].name                          | string (required)  | The route rule 
name.                                                                           
                                                                                
                                                  |
-| http[].priority                      | integer            | The route 
priority, it's used to determine which route will be hitted when multile routes 
contains the same URI. Large number means higher priority.                      
                                                       |
-| http[].match                         | object             | Route match 
conditions.                                                                     
                                                                                
                                                     |
-| http[].match.paths                   | array              | A series of URI 
that should be matched (oneof) to use this route rule.                          
                                                                                
                                                 |
-| http[].match.hosts                   | array              | A series of 
hosts that should be matched (oneof) to use this route rule.                    
                                                                                
                                                     |
-| http[].match.methods                 | array              | A series of HTTP 
methods(`GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`, `CONNECT`, 
`TRACE`) that should be matched (oneof) to use this route rule.                 
                                                 |
-| http[].match.remoteAddrs             | array              | A series of IP 
address (CIDR format) that should be matched (oneof) to use this route rule.    
                                                                                
                                                  |
-| http[].match.exprs                   | array              | A series 
expressions that the results should be matched (oneof) to use this route rule.  
                                                                                
                                                        |
-| http[].match.exprs[].subject         | object             | Expression 
subject.                                                                        
                                                                                
                                                      |
-| http[].match.exprs[].subject.scope   | string             | Specify where to 
find the subject, values can be `Header`, `Query`, `Cookie` and `Path`.         
                                                                                
                                                |
-| http[].match.exprs[].subject.name    | string             | Specify subject 
name, when scope is `Path`, this field can be absent.                           
                                                                                
                                                 |
-| http[].match.exprs[].op              | string             | Expression 
operator, see [Expression Operators](#expression-operators) for the detail of 
enumerations.                                                                   
                                                        |
-| http[].match.exprs[].value           | string             | Expected 
expression result, it's exclusive with `http[].match.exprs[].set`.              
                                                                                
                                                        |
-| http[].match.exprs[].set             | array              | Expected 
expression result set, only used when the operator is `In` or `NotIn`, it's 
exclusive with `http[].match.exprs[].value`.                                    
                                                            |
-| http[].backends                      | object             | The backend 
services. When the number of backends more than one, weight based traffic split 
policy will be applied to shifting traffic between these backends.              
                                                     |
-| http[].backends[].serviceName        | string             | The backend 
service name, note the service and ApisixRoute should be created in the same 
namespace. Cross namespace referencing is not allowed.                          
                                                        |
-| http[].backends[].servicePort        | integer or string  | The backend 
service port, can be the port number or the name defined in the service object. 
                                                                                
                                                     |
-| http[].backends[].resolveGranularity | string             | See [Service 
Resolve Granularity](#service-resolve-granularity) for the details.             
                                                                                
                                                    |
-| http[].backends[].weight             | int                | The backend 
weight, which is critical when shifting traffic between multiple backends, 
default is `100`. Weight is ignored when there is only one backend.             
                                                          |
-| http[].backends[].subset             | string             | Subset specifies 
a subset for the target Service. The subset should be pre-definedin 
ApisixUpstream about this service.                                              
                                                            |
-| http[].plugins                       | array              | A series of 
APISIX plugins that will be executed once this route rule is matched            
                                                                                
                                                     |
-| http[].plugins[].name                | string             | The plugin name, 
see [docs](http://apisix.apache.org/docs/apisix/getting-started) for learning 
the available plugins.                                                          
                                                  |
-| http[].plugins[].enable              | boolean            | Whether the 
plugin would be used                                                            
                                                                                
                                                     |
-| http[].plugins[].config              | object             | The 
configuration of the plugin that must have the same fields as in APISIX.        
                                                                                
                                                             |
-| http[].websocket                     | boolean            | Whether enable 
websocket proxy.                                                                
                                                                                
                                                  |
-| stream                               | array              | ApisixRoutes' 
stream route rules, which contains TCP or UDP rules.                            
                                                                                
                                                   |
-| stream[].protocol                    | string (required)  | The protocol of 
rule. Support `TCP` or `UDP`                                                    
                                                                                
                                                 |
-| stream[].name                        | string (required)  | The Route rule 
name.                                                                           
                                                                                
                                                  |
-| stream[].match                       | object (required)  | The Route match 
conditions.                                                                     
                                                                                
                                                 |
-| stream[].match.ingressPort           | integer (required) | the Ingress 
proxy server listening port, note since APISIX doesn't support dynamic 
listening, this port should be defined in [apisix 
configuration](https://github.com/apache/apisix/blob/master/conf/config-default.yaml#L101).
 |
-| stream[].backend                     | object             | The backend 
service. Deprecated: use http[].backends instead.                               
                                                                                
                                                     |
-| stream[].backend.serviceName         | string             | The backend 
service name, note the service and ApisixRoute should be created in the same 
namespace. Cross namespace referencing is not allowed.                          
                                                        |
-| stream[].backend.servicePort         | integer or string  | The backend 
service port, can be the port number or the name defined in the service object. 
                                                                                
                                                     |
-| stream[].backend.resolveGranularity  | string             | See [Service 
Resolve Granularity](#service-resolve-granularity) for the details.             
                                                                                
                                                    |
-| stream[].backend.subset              | string             | Subset specifies 
a subset for the target Service. The subset should be pre-definedin 
ApisixUpstream about this service.                                              
                                                            |
+## Expression operators
 
-## Expression Operators
+The following operators can be used in match expressions:
 
-| Operator                     | Meaning                                       
                                         |
-|------------------------------|----------------------------------------------------------------------------------------|
-| Equal                        | The result of `subject` should be equal to 
the `value`                                 |
-| NotEqual                     | The result of `subject` should not be equal 
to `value`                                 |
-| GreaterThan                  | The result of `subject` should be a number 
and it must larger then `value`.            |
-| LessThan                     | The result of `subject` should be a number 
and it must less than `value`.              |
-| In                           | The result of `subject` should be inside the 
`set`.                                    |
-| NotIn                        | The result of `subject` should not be inside 
the `set`.                                |
-| RegexMatch                   | The result of `subject` should be matched by 
the `value` (a PCRE regex pattern).       |
-| RegexNotMatch                | The result of `subject` should not be matched 
by the `value` (a PCRE regex pattern).   |
-| RegexMatchCaseInsensitive    | Similar with `RegexMatch` but the match 
process is case insensitive                    |
-| RegexNotMatchCaseInsensitive | Similar with `RegexNotMatchCaseInsensitive` 
but the match process is case insensitive. |
+| Operator                     | Description                                   
                                  |
+| ---------------------------- | 
------------------------------------------------------------------------------- 
|
+| Equal                        | Result of the `subject` should be equal to 
the `value`.                         |
+| NotEqual                     | Result of the `subject` should not be equal 
to the `value`.                     |
+| GreaterThan                  | Result of the `subject` should be a number 
and must be larger than the `value`. |
+| LessThan                     | Result of the `subject` should be a number 
and must be less than the `value`.   |
+| In                           | Result of the `subject` should be a part of 
the `set`.                          |
+| NotIn                        | Result of the `subject` should be a part of 
the `set`.                          |
+| RegexMatch                   | Result of the `subject` should match the PCRE 
regex pattern of the `value`.     |
+| RegexNotMatch                | Result of the `subject` should not match the 
PCRE regex pattern of the `value`. |
+| RegexMatchCaseInsensitive    | Similar to `RegexMatch` but case insensitive. 
                                  |
+| RegexNotMatchCaseInsensitive | Similar to `RegexNotMatch` but case 
insensitive.                                |
 
-## Service Resolve Granularity
+## Service resolution granularity
 
-The service resolve granularity determines whether the [Serivce 
ClusterIP](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
 or its endpoints should be filled in the target upstream of APISIX.
+By default, the service referenced will be watched to update its endpoint list 
in APISIX. To just use the `ClusterIP` of the service, you can set the 
`resolveGranularity` attribute to `service` (defaults to `endpoint`):
 
-| Granularity  | Meaning                                                       
                                                                                
                                 |
-|--------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| endpoint     | Filled upstream nodes by Pods' IP. ApisixUpstream healthCheck 
is only effective on this case.                                                 
                                 |
-| service      | Filled upstream nodes by Service ClusterIP, in such a case, 
loadbalacing are implemented by 
[kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy).
 |
+| Granularity | Description                                                    
                                                                                
            |
+| ----------- | 
----------------------------------------------------------------------------------------------------------------------------------------------------------
 |
+| endpoint    | Upstream nodes are pods' IP adresses.                          
                                                                                
            |
+| service     | Upstream nodes are service cluster IP. Load balancing is 
implemented by 
[kube-proxy](https://kubernetes.io/docs/concepts/overview/components/#kube-proxy).
 |

Reply via email to