juzhiyuan commented on code in PR #1423: URL: https://github.com/apache/apisix-ingress-controller/pull/1423#discussion_r1013594259
########## docs/en/latest/references/apisix_route_v2.md: ########## @@ -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 hosts 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 (depricated). | Review Comment: ```suggestion | stream[].backend.servicePort | integer or string | Port number or the name defined in the service object of the backend (deprecated). | ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
