You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2021/02/25 08:07:10 UTC

[apisix-ingress-controller] branch fix-docs-config created (now 6f48f11)

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

juzhiyuan pushed a change to branch fix-docs-config
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git.


      at 6f48f11  fix: docs

This branch includes the following new commits:

     new 85045e4  Revert "docs: added meta info (#269)"
     new 6f48f11  fix: docs

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[apisix-ingress-controller] 01/02: Revert "docs: added meta info (#269)"

Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch fix-docs-config
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git

commit 85045e4b7da0a6c7f23bd1ce4ccf8dcacf7013b0
Author: juzhiyuan <ju...@apache.org>
AuthorDate: Thu Feb 25 15:56:46 2021 +0800

    Revert "docs: added meta info (#269)"
    
    This reverts commit c30636c4b7c86f9540eb6aeb47a91e17aeb50e0a.
---
 .markdownlint.yml                                  |   2 -
 docs/en/latest/CRD-specification.md                | 208 ++++++++++-----------
 docs/en/latest/FAQ.md                              |   7 +-
 docs/en/latest/config.json                         |  49 +----
 docs/en/latest/contribute.md                       |  21 +--
 docs/en/latest/deployments/ack.md                  |  17 +-
 docs/en/latest/deployments/aws.md                  |  17 +-
 docs/en/latest/deployments/azure.md                |  21 +--
 docs/en/latest/deployments/gke.md                  |  17 +-
 docs/en/latest/deployments/k3s-rke.md              |  19 +-
 docs/en/latest/deployments/kubesphere.md           |  15 +-
 docs/en/latest/deployments/minikube.md             |  15 +-
 docs/en/latest/deployments/tke.md                  |  17 +-
 docs/en/latest/design.md                           |  16 +-
 docs/en/latest/development.md                      |  23 +--
 docs/en/latest/samples/index.md                    |  11 +-
 .../proxy-the-httpbin-service-with-ingress.md      |  13 +-
 .../en/latest/samples/proxy-the-httpbin-service.md |  27 ++-
 docs/en/latest/usage.md                            |  31 ++-
 19 files changed, 205 insertions(+), 341 deletions(-)

diff --git a/.markdownlint.yml b/.markdownlint.yml
index 79e7228..e5787a4 100644
--- a/.markdownlint.yml
+++ b/.markdownlint.yml
@@ -30,8 +30,6 @@ MD033: false
 # MD036/no-emphasis-as-heading/no-emphasis-as-header Emphasis used instead of a heading
 MD036: false
 
-MD041: false
-
 # MD024
 no-duplicate-heading:
   siblings_only: true
diff --git a/docs/en/latest/CRD-specification.md b/docs/en/latest/CRD-specification.md
index 2ea3f1f..c63450a 100644
--- a/docs/en/latest/CRD-specification.md
+++ b/docs/en/latest/CRD-specification.md
@@ -17,22 +17,16 @@
 #
 -->
 
----
-
-id: crd-specification
-title: CRD specification
-
----
+# CRD specification
 
 In order to control the behavior of the proxy ([Apache APISIX](https://github.com/apache/apisix)), the following CRDs should be defined.
 
 ## CRD Types
 
-- [CRD Types](#crd-types)
 - [ApisixRoute](#apisixroute)
 - [ApisixUpstream](#apisixupstream)
   - [Configuring Load Balancer](#configuring-load-balancer)
-  - [Configuring Health Check](#configuring-health-check)
+  - [Configuring Health Check](#configuring-load-balancer)
   - [Configuring Retry and Timeout](#configuring-retry-and-timeout)
   - [Port Level Settings](#port-level-settings)
   - [Configuration References](#configuration-references)
@@ -54,37 +48,37 @@ metadata:
   namespace: cloud
 spec:
   rules:
-    - host: test.apisix.apache.org
-      http:
-        paths:
-          - backend:
-              serviceName: httpserver
-              servicePort: 8080
-            path: /hello*
-            plugins:
-              - name: limit-count
-                enable: true
-                config:
-                  count: 2
-                  time_window: 60
-                  rejected_code: 503
-                  key: remote_addr
+  - host: test.apisix.apache.org
+    http:
+      paths:
+      - backend:
+          serviceName: httpserver
+          servicePort: 8080
+        path: /hello*
+        plugins:
+          - name: limit-count
+            enable: true
+            config:
+              count: 2
+              time_window: 60
+              rejected_code: 503
+              key: remote_addr
 ```
 
-| Field       | Type    | Description                                                                                                                                                                                              |
-| ----------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| rules       | array   | ApisixRoute's request matching rules.                                                                                                                                                                    |
-| host        | string  | The requested host.                                                                                                                                                                                      |
-| http        | object  | Route rules are applied to the scope of layer 7 traffic.                                                                                                                                                 |
-| paths       | array   | Path-based `route` rule matching.                                                                                                                                                                        |
-| backend     | object  | Backend service information configuration.                                                                                                                                                               |
-| serviceName | string  | The name of backend service. `namespace + serviceName + servicePort` form an unique identifier to match the back-end service.                                                                            |
-| servicePort | int     | The port of backend service. `namespace + serviceName + servicePort` form an unique identifier to match the back-end service.                                                                            |
-| path        | string  | The URI matched by the route. Supports exact match and prefix match. Example,exact match: `/hello`, prefix match: `/hello*`.                                                                            |
-| plugins     | array   | Custom plugin collection (Plugins defined in the `route` level). For more plugin information, please refer to the [Apache APISIX plugin docs](https://github.com/apache/apisix/tree/master/doc/plugins). |
-| name        | string  | The name of the plugin. For more information about the example plugin, please check the [limit-count docs](https://github.com/apache/apisix/blob/master/doc/plugins/limit-count.md#Attributes).          |
-| enable      | boolean | Whether to enable the plugin, `true`: means enable, `false`: means disable.                                                                                                                              |
-| config      | object  | Configuration of plugin information. Note: The check of configuration schema is missing now, so please be careful when editing.                                                                          |
+|     Field     |  Type    |                    Description                     |
+|---------------|----------|----------------------------------------------------|
+| rules         | array    | ApisixRoute's request matching rules.              |
+| host          | string   | The requested host.                                |
+| http          | object   | Route rules are applied to the scope of layer 7 traffic.     |
+| paths         | array    | Path-based `route` rule matching.                     |
+| backend       | object   | Backend service information configuration.         |
+| serviceName   | string   | The name of backend service. `namespace + serviceName + servicePort` form an unique identifier to match the back-end service.                      |
+| servicePort   | int      | The port of backend service. `namespace + serviceName + servicePort` form an unique identifier to match the back-end service.                      |
+| path          | string   | The URI matched by the route. Supports exact match and prefix match. Example,exact match: `/hello`, prefix match: `/hello*`.                     |
+| plugins       | array    | Custom plugin collection (Plugins defined in the `route` level). For more plugin information, please refer to the [Apache APISIX plugin docs](https://github.com/apache/apisix/tree/master/doc/plugins).    |
+| name          | string   | The name of the plugin. For more information about the example plugin, please check the [limit-count docs](https://github.com/apache/apisix/blob/master/doc/plugins/limit-count.md#Attributes).             |
+| enable        | boolean  | Whether to enable the plugin, `true`: means enable, `false`: means disable.      |
+| config        | object   | Configuration of plugin information. Note: The check of configuration schema is missing now, so please be careful when editing.    |
 
 **Support partial `annotation`**
 
@@ -96,7 +90,7 @@ kind: ApisixRoute
 metadata:
   annotations:
     k8s.apisix.apache.org/ingress.class: apisix_group
-    k8s.apisix.apache.org/ssl-redirect: "false"
+    k8s.apisix.apache.org/ssl-redirect: 'false'
     k8s.apisix.apache.org/whitelist-source-range:
       - 1.2.3.4/16
       - 4.3.2.1/8
@@ -105,11 +99,11 @@ metadata:
 spec:
 ```
 
-| Field                                          | Type    | Description                                                                                                         |
-| ---------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------- |
-| `k8s.apisix.apache.org/ssl-redirect`           | boolean | Whether to force http redirect to https. `ture`: means to force conversion to https, `false`: means not to convert. |
-| `k8s.apisix.apache.org/ingress.class`          | string  | Grouping of ingress.                                                                                                |
-| `k8s.apisix.apache.org/whitelist-source-range` | array   | Whitelist of IPs allowed to be accessed.                                                                            |
+|         Field                                  |    Type    |                       Description                                  |
+|------------------------------------------------|------------|--------------------------------------------------------------------|
+| `k8s.apisix.apache.org/ssl-redirect`           | boolean    | Whether to force http redirect to https. `ture`: means to force conversion to https, `false`: means not to convert.   |
+| `k8s.apisix.apache.org/ingress.class`          | string     | Grouping of ingress.                                               |
+| `k8s.apisix.apache.org/whitelist-source-range` | array      | Whitelist of IPs allowed to be accessed.                           |
 
 ## ApisixUpstream
 
@@ -140,9 +134,9 @@ spec:
   selector:
     app: httpbin
   ports:
-    - name: http
-      port: 80
-      targetPort: 8080
+  - name: http
+    port: 80
+    targetPort: 8080
 ```
 
 The above example shows that [ewma](https://linkerd.io/2016/03/16/beyond-round-robin-load-balancing-for-latency/) is used as the load balancer for Service `httpbin`.
@@ -259,10 +253,10 @@ spec:
   loadbalancer:
     type: roundrobin
   portLevelSettings:
-    - port: 7000
-      scheme: http
-    - port: 7001
-      scheme: grpc
+  - port: 7000
+    scheme: http
+  - port: 7001
+    scheme: grpc
 ---
 apiVersion: v1
 kind: Service
@@ -272,12 +266,12 @@ spec:
   selector:
     app: foo
   portLevelSettings:
-    - name: http
-      port: 7000
-      targetPort: 7000
-    - name: grpc
-      port: 7001
-      targetPort: 7001
+  - name: http
+    port: 7000
+    targetPort: 7000
+  - name: grpc
+    port: 7001
+    targetPort: 7001
 ```
 
 The `foo` service exposes two ports, one of them use HTTP protocol and the other uses grpc protocol.
@@ -288,51 +282,51 @@ In the meanwhile, the ApisixUpstream `foo` sets `http` scheme for port `7000` an
 
 ### Configuration References
 
-| Field                                      | Type                                  | Description                                                                                                                                                                                                                                      |
-| ------------------------------------------ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| scheme                                     | string                                | The protocol used to talk to the Service, can be `http`, `grpc`, default is `http`.                                                                                                                                                              |
-| loadbalancer                               | object                                | The load balancing algorithm of this upstream service                                                                                                                                                                                            |
-| loadbalancer.type                          | string                                | The load balancing type, can be `roundrobin`, `ewma`, `least_conn`, `chash`, default is `roundrobin`.                                                                                                                                            |
-| loadbalancer.hashOn                        | string                                | The hash value source scope, only take effects if the `chash` algorithm is in use. Values can `vars`, `header`, `vars_combinations`, `cookie` and `consumers`, default is `vars`.                                                                |
-| loadbalancer.key                           | string                                | The hash key, only in valid if the `chash` algorithm is used.                                                                                                                                                                                    |
-| retries                                    | int                                   | The retry count.                                                                                                                                                                                                                                 |
-| timeout                                    | object                                | The timeout settings.                                                                                                                                                                                                                            |
-| timeout.connect                            | time duration in the form "72h3m0.5s" | The connect timeout.                                                                                                                                                                                                                             |
-| timeout.read                               | time duration in the form "72h3m0.5s" | The read timeout.                                                                                                                                                                                                                                |
-| timeout.send                               | time duration in the form "72h3m0.5s" | The send timeout.                                                                                                                                                                                                                                |
-| healthCheck                                | object                                | The health check parameters, see [Health Check](https://github.com/apache/apisix/blob/master/doc/health-check.md) for more details.                                                                                                              |
-| healthCheck.active                         | object                                | active health check configuration, which is a mandatory field.                                                                                                                                                                                   |
-| healthCheck.active.type                    | string                                | health check type, can be `http`, `https` and `tcp`, default is `http`.                                                                                                                                                                          |
-| healthCheck.active.timeout                 | time duration in the form "72h3m0.5s" | the timeout settings for the probe, default is `1s`.                                                                                                                                                                                             |
-| healthCheck.active.concurrency             | int                                   | how many probes can be sent simultaneously, default is `10`.                                                                                                                                                                                     |
-| healthCheck.active.host                    | string                                | host header in http probe request, only in valid if the active health check type is `http` or `https`.                                                                                                                                           |
-| healthCheck.active.port                    | int                                   | target port to receive probes, it's necessary to specify this field if the health check service exposes by different port, note the port value here is the container port, not the service port.                                                 |
-| healthCheck.active.httpPath                | string                                | the HTTP URI path in http probe, only in valid if the active health check type is `http` or `https`.                                                                                                                                             |
-| healthCheck.active.strictTLS               | boolean                               | whether to use the strict mode when use TLS, only in valid if the active health check type is `https`, default is `true`.                                                                                                                        |
-| healthCheck.active.requestHeaders          | array of string                       | Extra HTTP requests carried in the http probe, only in valid if the active health check type is `http` or `https`.                                                                                                                               |
-| healthCheck.active.healthy                 | object                                | The conditions to judge an endpoint is healthy.                                                                                                                                                                                                  |
-| healthCheck.active.healthy.successes       | int                                   | The number of consecutive requests needed to set an endpoint as healthy, default is `2`.                                                                                                                                                         |
-| healthCheck.active.healthy.httpCodes       | array of integer                      | Good status codes list to check whether a probe is successful, only in valid if the active health check type is `http` or `https`, default is `[200, 302]`.                                                                                      |
-| healthCheck.active.healthy.interval        | time duration in the form "72h3m0.5s" | The probes sent interval (for healthy endpoints).                                                                                                                                                                                                |
-| healthCheck.active.unhealthy               | object                                | The conditions to judge an endpoint is unhealthy.                                                                                                                                                                                                |
-| healthCheck.active.unhealthy.httpFailures  | int                                   | The number of consecutive http requests needed to set an endpoint as unhealthy, only in valid if the active health check type is `http` or `https`, default is `5`.                                                                              |
-| healthCheck.active.unhealthy.tcpFailures   | int                                   | The number of consecutive tcp connections needed to set an endpoint as unhealthy, only in valid if the active health check type is `tcp`, default is `2`.                                                                                        |
-| healthCheck.active.unhealthy.httpCodes     | array of integer                      | Bad status codes list to check whether a probe is failed, only in valid if the active health check type is `http` or `https`, default is `[429, 404, 500, 501, 502, 503, 504, 505]`.                                                             |
-| healthCheck.active.unhealthy.interval      | time duration in the form "72h3m0.5s" | The probes sent interval (for unhealthy endpoints).                                                                                                                                                                                              |
-| healthCheck.passive                        | object                                | passive health check configuration, which is an optional field.                                                                                                                                                                                  |
-| healthCheck.passive.type                   | string                                | health check type, can be `http`, `https` and `tcp`, default is `http`.                                                                                                                                                                          |
-| healthCheck.passive.healthy                | object                                | The conditions to judge an endpoint is healthy.                                                                                                                                                                                                  |
-| healthCheck.passive.healthy.successes      | int                                   | The number of consecutive requests needed to set an endpoint as healthy, default is `5`.                                                                                                                                                         |
-| healthCheck.passive.healthy.httpCodes      | array of integer                      | Good status codes list to check whether a probe is successful, only in valid if the active health check type is `http` or `https`, default is `[200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]`. |
-| healthCheck.passive.unhealthy              | object                                | The conditions to judge an endpoint is unhealthy.                                                                                                                                                                                                |
-| healthCheck.passive.unhealthy.httpFailures | int                                   | The number of consecutive http requests needed to set an endpoint as unhealthy, only in valid if the active health check type is `http` or `https`, default is `5`.                                                                              |
-| healthCheck.passive.unhealthy.tcpFailures  | int                                   | The number of consecutive tcp connections needed to set an endpoint as unhealthy, only in valid if the active health check type is `tcp`, default is `2`.                                                                                        |
-| healthCheck.passive.unhealthy.httpCodes    | array of integer                      | Bad status codes list to check whether a probe is failed, only in valid if the active health check type is `http` or `https`, default is `[429, 404, 500, 501, 502, 503, 504, 505]`.                                                             |
-| portLevelSettings                          | array                                 | Settings for each individual port.                                                                                                                                                                                                               |
-| portLevelSettings.port                     | int                                   | The port number defined in the Kubernetes Service, must be a valid port.                                                                                                                                                                         |
-| portLevelSettings.scheme                   | string                                | same as `scheme` but takes higher precedence.                                                                                                                                                                                                    |
-| portLevelSettings.loadbalancer             | object                                | same as `loadbalancer` but takes higher precedence.                                                                                                                                                                                              |
-| portLevelSettings.healthCheck              | object                                | same as `healthCheck` but takes higher precedence.                                                                                                                                                                                               |
+|     Field     |  Type    | Description    |
+|---------------|----------|----------------|
+| scheme        | string   | The protocol used to talk to the Service, can be `http`, `grpc`, default is `http`.   |
+| loadbalancer  | object   | The load balancing algorithm of this upstream service |
+| loadbalancer.type | string | The load balancing type, can be `roundrobin`, `ewma`, `least_conn`, `chash`, default is `roundrobin`. |
+| loadbalancer.hashOn | string | The hash value source scope, only take effects if the `chash` algorithm is in use. Values can `vars`, `header`, `vars_combinations`, `cookie` and `consumers`, default is `vars`. |
+| loadbalancer.key | string | The hash key, only in valid if the `chash` algorithm is used.
+| retries | int | The retry count. |
+| timeout | object | The timeout settings. |
+| timeout.connect | time duration in the form "72h3m0.5s" | The connect timeout. |
+| timeout.read | time duration in the form "72h3m0.5s" | The read timeout. |
+| timeout.send | time duration in the form "72h3m0.5s" | The send timeout. |
+| healthCheck | object | The health check parameters, see [Health Check](https://github.com/apache/apisix/blob/master/doc/health-check.md) for more details. |
+| healthCheck.active | object | active health check configuration, which is a mandatory field. |
+| healthCheck.active.type | string | health check type, can be `http`, `https` and `tcp`, default is `http`. |
+| healthCheck.active.timeout | time duration in the form "72h3m0.5s" | the timeout settings for the probe, default is `1s`. |
+| healthCheck.active.concurrency | int | how many probes can be sent simultaneously, default is `10`. |
+| healthCheck.active.host | string | host header in http probe request, only in valid if the active health check type is `http` or `https`. |
+| healthCheck.active.port | int | target port to receive probes, it's necessary to specify this field if the health check service exposes by different port, note the port value here is the container port, not the service port. |
+| healthCheck.active.httpPath | string | the HTTP URI path in http probe, only in valid if the active health check type is `http` or `https`. |
+| healthCheck.active.strictTLS | boolean | whether to use the strict mode when use TLS, only in valid if the active health check type is `https`, default is `true`. |
+| healthCheck.active.requestHeaders | array of string | Extra HTTP requests carried in the http probe, only in valid if the active health check type is `http` or `https`. |
+| healthCheck.active.healthy | object | The conditions to judge an endpoint is healthy. |
+| healthCheck.active.healthy.successes | int | The number of consecutive requests needed to set an endpoint as healthy, default is `2`. |
+| healthCheck.active.healthy.httpCodes | array of integer | Good status codes list to check whether a probe is successful, only in valid if the active health check type is `http` or `https`, default is `[200, 302]`. |
+| healthCheck.active.healthy.interval | time duration in the form "72h3m0.5s" | The probes sent interval (for healthy endpoints). |
+| healthCheck.active.unhealthy | object | The conditions to judge an endpoint is unhealthy. |
+| healthCheck.active.unhealthy.httpFailures | int | The number of consecutive http requests needed to set an endpoint as unhealthy, only in valid if the active health check type is `http` or `https`, default is `5`. |
+| healthCheck.active.unhealthy.tcpFailures | int | The number of consecutive tcp connections needed to set an endpoint as unhealthy, only in valid if the active health check type is `tcp`, default is `2`. |
+| healthCheck.active.unhealthy.httpCodes | array of integer | Bad status codes list to check whether a probe is failed, only in valid if the active health check type is `http` or `https`, default is `[429, 404, 500, 501, 502, 503, 504, 505]`. |
+| healthCheck.active.unhealthy.interval | time duration in the form "72h3m0.5s" | The probes sent interval (for unhealthy endpoints). |
+| healthCheck.passive | object | passive health check configuration, which is an optional field. |
+| healthCheck.passive.type | string | health check type, can be `http`, `https` and `tcp`, default is `http`. |
+| healthCheck.passive.healthy | object | The conditions to judge an endpoint is healthy. |
+| healthCheck.passive.healthy.successes | int | The number of consecutive requests needed to set an endpoint as healthy, default is `5`. |
+| healthCheck.passive.healthy.httpCodes | array of integer | Good status codes list to check whether a probe is successful, only in valid if the active health check type is `http` or `https`, default is `[200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308]`. |
+| healthCheck.passive.unhealthy | object | The conditions to judge an endpoint is unhealthy. |
+| healthCheck.passive.unhealthy.httpFailures | int | The number of consecutive http requests needed to set an endpoint as unhealthy, only in valid if the active health check type is `http` or `https`, default is `5`. |
+| healthCheck.passive.unhealthy.tcpFailures | int | The number of consecutive tcp connections needed to set an endpoint as unhealthy, only in valid if the active health check type is `tcp`, default is `2`. |
+| healthCheck.passive.unhealthy.httpCodes | array of integer | Bad status codes list to check whether a probe is failed, only in valid if the active health check type is `http` or `https`, default is `[429, 404, 500, 501, 502, 503, 504, 505]`. |
+| portLevelSettings | array | Settings for each individual port. |
+| portLevelSettings.port | int | The port number defined in the Kubernetes Service, must be a valid port. |
+| portLevelSettings.scheme | string | same as `scheme` but takes higher precedence. |
+| portLevelSettings.loadbalancer | object | same as `loadbalancer` but takes higher precedence. |
+| portLevelSettings.healthCheck | object | same as `healthCheck` but takes higher precedence. |
 
 ## ApisixTls
 
@@ -355,11 +349,11 @@ spec:
     namespace: cloud
 ```
 
-| Field     | Type   | Description                                                                                                  |
-| --------- | ------ | ------------------------------------------------------------------------------------------------------------ |
-| hosts     | array  | The domain list to identify which hosts (matched with SNI) can use the TLS certificate stored in the Secret. |
-| secret    | object | The definition of the related Secret object with current ApisixTls object.                                   |
-| name      | string | The name of secret, the secret contains key and cert for `TLS`.                                              |
-| namespace | string | The namespace of secret , the secret contains key and cert for `TLS`.                                        |
+|     Field     |  Type    | Description                     |
+|---------------|----------|---------------------------------|
+| hosts         | array    | The domain list to identify which hosts (matched with SNI) can use the TLS certificate stored in the Secret.  |
+| secret        | object   | The definition of the related Secret object with current ApisixTls object.                               |
+| name          | string   | The name of secret, the secret contains key and cert for `TLS`.       |
+| namespace     | string   | The namespace of secret , the secret contains key and cert for `TLS`.  |
 
 [Back to top](#crd-types)
diff --git a/docs/en/latest/FAQ.md b/docs/en/latest/FAQ.md
index 99dc46a..d90b272 100644
--- a/docs/en/latest/FAQ.md
+++ b/docs/en/latest/FAQ.md
@@ -17,12 +17,7 @@
 #
 -->
 
----
-
-id: faq
-title: FAQ
-
----
+# FAQ
 
 1. How to bind Service and Upstream?
 
diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index 5d20a42..b029746 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -1,51 +1,4 @@
 {
   "version": "0.3.0",
-  "sidebar": {
-    "docs": [
-      {
-        "type": "category",
-        "label": "Getting Started",
-        "items": ["design", "crd-specification"]
-      },
-      {
-        "type": "category",
-        "label": "Samples",
-        "items": [
-          "samples",
-          "samples-proxy-the-httpbin-service-with-ingress",
-          "samples-proxy-the-httpbin-service"
-        ]
-      },
-      {
-        "type": "category",
-        "label": "Deployment",
-        "items": [
-          "deployment-on-ack",
-          "deployment-on-aws",
-          "deployment-on-azure-aks",
-          "deployment-on-gke",
-          "deployment-on-k3s-rke",
-          "deployment-on-kubeSphere",
-          "deployment-on-minikube",
-          "deployment-on-tke"
-        ]
-      },
-      {
-        "type": "doc",
-        "id": "usage"
-      },
-      {
-        "type": "doc",
-        "id": "development"
-      },
-      {
-        "type": "doc",
-        "id": "contributing"
-      },
-      {
-        "type": "doc",
-        "id": "faq"
-      }
-    ]
-  }
+  "sidebar": {}
 }
diff --git a/docs/en/latest/contribute.md b/docs/en/latest/contribute.md
index f1fdeff..943fb5e 100644
--- a/docs/en/latest/contribute.md
+++ b/docs/en/latest/contribute.md
@@ -17,12 +17,7 @@
 #
 -->
 
----
-
-id: contributing
-title: Contributing to apisix-ingress-controller
-
----
+# Contributing to apisix-ingress-controller
 
 Firstly, thanks for your interest in contributing! I hope that this will be a
 pleasant first experience for you, and that you will return to continue
@@ -34,13 +29,13 @@ Most of the contributions that we receive are code contributions, but you can
 also contribute to the documentation or simply report solid bugs
 for us to fix.
 
-For new contributors, please take a look at issues with a tag called [Good first issue](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or [Help wanted](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
+ For new contributors, please take a look at issues with a tag called [Good first issue](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) or [Help wanted](https://github.com/apache/apisix-ingress-controller/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22).
 
 ## How to report a bug
 
-- **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/apache/apisix-ingress-controller/issues).
+* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/apache/apisix-ingress-controller/issues).
 
-- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/apache/apisix-ingress-controller/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
+* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/apache/apisix-ingress-controller/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
 
 ## How to add a new feature or change an existing one
 
@@ -48,7 +43,7 @@ Before making any significant changes, please [open an issue](https://github.com
 
 Once we've discussed your changes and you've got your code ready, make sure that tests are passing and open your pull request. Your PR is most likely to be accepted if it:
 
-- Update the README.md with details of changes to the interface.
-- Includes tests for new functionality.
-- References the original issue in the description, e.g. "Resolves #123".
-- Has a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
+* Update the README.md with details of changes to the interface.
+* Includes tests for new functionality.
+* References the original issue in the description, e.g. "Resolves #123".
+* Has a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
diff --git a/docs/en/latest/deployments/ack.md b/docs/en/latest/deployments/ack.md
index b452c3f..f46238c 100644
--- a/docs/en/latest/deployments/ack.md
+++ b/docs/en/latest/deployments/ack.md
@@ -17,22 +17,17 @@
 #
 -->
 
----
-
-id: deployment-on-ack
-title: Install Ingress APISIX on ACK
-
----
+# Install Ingress APISIX on ACK
 
 This document explains how to install Ingress APISIX on [ali-cloud ACK](https://www.aliyun.com/product/kubernetes).
 
 ## Prerequisites
 
-- Create an ACK Service on ali-cloud.
-- Download the kube config for your ACK, follow the [introduction](https://www.alibabacloud.com/help/zh/doc-detail/86378.html).
-- Install [Helm](https://helm.sh/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, `kubectl` operations thorough this document will be executed in namespace `ingress-apisix`.
+* Create an ACK Service on ali-cloud.
+* Download the kube config for your ACK, follow the [introduction](https://www.alibabacloud.com/help/zh/doc-detail/86378.html).
+* Install [Helm](https://helm.sh/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, `kubectl` operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/deployments/aws.md b/docs/en/latest/deployments/aws.md
index 5b8c640..34ba842 100644
--- a/docs/en/latest/deployments/aws.md
+++ b/docs/en/latest/deployments/aws.md
@@ -17,22 +17,17 @@
 #
 -->
 
----
-
-id: deployment-aws
-title: Install Ingress APISIX on Amazon EKS
-
----
+# Install Ingress APISIX on Amazon EKS
 
 This document explains how to install Ingress APISIX on [Amazon EKS](https://amazonaws-china.com/eks/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc&eks-blogs.sort-by=item.additionalFields.createdDate&eks-blogs.sort-order=desc).
 
 ## Prerequisites
 
-- Create an EKS Service on AWS.
-- Install [Helm](https://helm.sh/).
-- Download the kube config for your EKS from [aws cli interface](https://amazonaws-china.com/cli/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
+* Create an EKS Service on AWS.
+* Install [Helm](https://helm.sh/).
+* Download the kube config for your EKS from [aws cli interface](https://amazonaws-china.com/cli/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/deployments/azure.md b/docs/en/latest/deployments/azure.md
index 0c67aff..4dc6dba 100644
--- a/docs/en/latest/deployments/azure.md
+++ b/docs/en/latest/deployments/azure.md
@@ -17,24 +17,17 @@
 #
 -->
 
----
+# Install Ingress APISIX on Azure AKS
 
-id: deployment-azure-aks
-title: Install Ingress APISIX on Azure AKS
-
----
-
-#
-
-This document explains how to install Ingress APISIX on [Auzre AKS](<https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes#:~:text=Azure%20Kubernetes%20Service%20(AKS)%20makes,managed%20Kubernetes%20cluster%20in%20Azure.&text=The%20Kubernetes%20masters%20are%20managed,clusters%2C%20not%20for%20the%20masters.>).
+This document explains how to install Ingress APISIX on [Auzre AKS](https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes#:~:text=Azure%20Kubernetes%20Service%20(AKS)%20makes,managed%20Kubernetes%20cluster%20in%20Azure.&text=The%20Kubernetes%20masters%20are%20managed,clusters%2C%20not%20for%20the%20masters.).
 
 ## Prerequisites
 
-- Create an Kubernetes Service on Azure.
-- Install [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/#:~:text=The%20Azure%20command%2Dline%20interface,with%20an%20emphasis%20on%20automation.) and download the credentials by running `az aks get-credentials`.
-- Install [Helm](https://helm.sh/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
+* Create an Kubernetes Service on Azure.
+* Install [Azure CLI](https://docs.microsoft.com/en-us/cli/azure/#:~:text=The%20Azure%20command%2Dline%20interface,with%20an%20emphasis%20on%20automation.) and download the credentials by running `az aks get-credentials`.
+* Install [Helm](https://helm.sh/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/deployments/gke.md b/docs/en/latest/deployments/gke.md
index 6bde9b8..cd03a1c 100644
--- a/docs/en/latest/deployments/gke.md
+++ b/docs/en/latest/deployments/gke.md
@@ -17,22 +17,17 @@
 #
 -->
 
----
-
-id: deployment-on-gke
-title: Install Ingress APISIX on Google Cloud GKE
-
----
+# Install Ingress APISIX on Google Cloud GKE
 
 This document explains how to install Ingress APISIX on [Google Cloud GKE](https://cloud.google.com/kubernetes-engine).
 
 ## Prerequisites
 
-- Create an Kubernetes Service on GKE.
-- Install [Google Cloud SDK](https://cloud.google.com/sdk) and get the credentials or you can just use the [Cloud Shell](https://cloud.google.com/shell).
-- Install [Helm](https://helm.sh/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
+* Create an Kubernetes Service on GKE.
+* Install [Google Cloud SDK](https://cloud.google.com/sdk) and get the credentials or you can just use the [Cloud Shell](https://cloud.google.com/shell).
+* Install [Helm](https://helm.sh/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/deployments/k3s-rke.md b/docs/en/latest/deployments/k3s-rke.md
index 28fea4e..b45c907 100644
--- a/docs/en/latest/deployments/k3s-rke.md
+++ b/docs/en/latest/deployments/k3s-rke.md
@@ -17,12 +17,7 @@
 #
 -->
 
----
-
-id: deployment-on-k3s-rke
-title: Install Ingress APISIX on K3S and Rancher RKE
-
----
+# Install Ingress APISIX on K3S and Rancher RKE
 
 This document explains how to install Ingress APISIX on [k3S](https://k3s.io/) and [Rancher RKE](https://rancher.com/products/rke/).
 
@@ -31,10 +26,10 @@ It's a good choice to use Ingress APISIX as the north-south API gateway in K3S.
 
 ## Prerequisites
 
-- Install [K3S](https://rancher.com/docs/k3s/latest/en/installation/) or [Rancher RKE](https://rancher.com/docs/rke/latest/en/installation/).
-- Install [Helm](https://helm.sh/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
+* Install [K3S](https://rancher.com/docs/k3s/latest/en/installation/) or [Rancher RKE](https://rancher.com/docs/rke/latest/en/installation/).
+* Install [Helm](https://helm.sh/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
@@ -52,7 +47,7 @@ helm install apisix ./charts/apisix \
 kubectl get service --namespace ingress-apisix
 ```
 
-_If you are using K3S, the default kubeconfig file is in /etc/rancher/k3s and root permission may required._
+*If you are using K3S, the default kubeconfig file is in /etc/rancher/k3s and root permission may required.*
 
 Two Service resources were created, one is `apisix-gateway`, which processes the real traffic; another is `apisix-admin`, which acts as the control plane to process all the configuration changes.
 
@@ -76,7 +71,7 @@ helm install apisix-ingress-controller ./charts/apisix-ingress-controller \
   --kubeconfig /etc/rancher/k3s/k3s.yaml
 ```
 
-_If you are using K3S, the default kubeconfig file is in /etc/rancher/k3s and root permission may required._
+*If you are using K3S, the default kubeconfig file is in /etc/rancher/k3s and root permission may required.*
 
 The admin key used in abovementioned commands is the default one, if you change the admin key configuration when you deployed APISIX, please remember to change it here.
 
diff --git a/docs/en/latest/deployments/kubesphere.md b/docs/en/latest/deployments/kubesphere.md
index 990b754..3d15bae 100644
--- a/docs/en/latest/deployments/kubesphere.md
+++ b/docs/en/latest/deployments/kubesphere.md
@@ -17,12 +17,7 @@
 #
 -->
 
----
-
-id: deployment-on-kubeSphere
-title: Install Ingress APISIX on KubeSphere
-
----
+# Install Ingress APISIX on KubeSphere
 
 This document explains how to install Ingress APISIX on [KubeSphere](https://kubesphere.io/).
 
@@ -30,10 +25,10 @@ KubeSphere is a distributed operating system managing cloud native applications
 
 ## Prerequisites
 
-- Install [KubeSphere](https://kubesphere.io/docs/quick-start/), you can choose [All-in-one Installation on Linux](https://kubesphere.io/docs/quick-start/all-in-one-on-linux/) or [Minimal KubeSphere on Kubernetes](https://kubesphere.io/docs/quick-start/minimal-kubesphere-on-k8s/).
-- Install [Helm](https://helm.sh/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations of this document will be executed in namespace `ingress-apisix`.
+* Install [KubeSphere](https://kubesphere.io/docs/quick-start/), you can choose [All-in-one Installation on Linux](https://kubesphere.io/docs/quick-start/all-in-one-on-linux/) or [Minimal KubeSphere on Kubernetes](https://kubesphere.io/docs/quick-start/minimal-kubesphere-on-k8s/).
+* Install [Helm](https://helm.sh/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations of this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/deployments/minikube.md b/docs/en/latest/deployments/minikube.md
index 9b83a7f..3454102 100644
--- a/docs/en/latest/deployments/minikube.md
+++ b/docs/en/latest/deployments/minikube.md
@@ -17,21 +17,16 @@
 #
 -->
 
----
-
-id: deployment-on-minikube
-title: Install Ingress APISIX on Minikube
-
----
+# Install Ingress APISIX on Minikube
 
 This document explains how to install Ingress APISIX on [Minikube](https://minikube.sigs.k8s.io/).
 
 ## Prerequisites
 
-- Install [Minikube](https://minikube.sigs.k8s.io/docs/start/).
-- Install [Helm](https://helm.sh/).
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
+* Install [Minikube](https://minikube.sigs.k8s.io/docs/start/).
+* Install [Helm](https://helm.sh/).
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/deployments/tke.md b/docs/en/latest/deployments/tke.md
index 39aa32b..97fa0e5 100644
--- a/docs/en/latest/deployments/tke.md
+++ b/docs/en/latest/deployments/tke.md
@@ -17,22 +17,17 @@
 #
 -->
 
----
-
-id: deployment-on-tke
-title: Install Ingress APISIX on Tencent TKE
-
----
+# Install Ingress APISIX on Tencent TKE
 
 This document explains how to install Ingress APISIX on [Tencent TKE](https://cloud.tencent.com/product/tke).
 
 ## Prerequisites
 
-- Create a TKE Service on Tencent Cloud and make sure the API Server is accessible from your workspace.
-- Install [Helm](https://helm.sh/).
-- Download the kube config for your TKE Console.
-- Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
-- Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
+* Create a TKE Service on Tencent Cloud and make sure the API Server is accessible from your workspace.
+* Install [Helm](https://helm.sh/).
+* Download the kube config for your TKE Console.
+* Clone [Apache APISIX Charts](https://github.com/apache/apisix-helm-chart).
+* Make sure your target namespace exists, kubectl operations thorough this document will be executed in namespace `ingress-apisix`.
 
 ## Install APISIX
 
diff --git a/docs/en/latest/design.md b/docs/en/latest/design.md
index c5f5eeb..a615464 100644
--- a/docs/en/latest/design.md
+++ b/docs/en/latest/design.md
@@ -17,12 +17,7 @@
 #
 -->
 
----
-
-id: ingress-controller-design
-title: Ingress Controller Design
-
----
+# ingress-controller
 
 Apache APISIX ingress for Kubernetes.
 
@@ -67,8 +62,8 @@ Currently `apisix-ingress-controller` CRDs consist of 3 parts: ApisixRoute/Apisi
 1. The most important part of the gateway is the route part, which is used to define the distribution rules of the gateway traffics.
 2. In order to facilitate understanding and configuration, the design structure of `ApisixRoute` is basically similar to Kubernetes Ingress.
 3. In the design of annotation, the structure of Kubernetes Ingress is used for reference, but the internal implementation is based on the plug-in of Apache APISIX.
-4. In the simplest case, you only need to define `ApisixRoute`, and the Ingress controller will automatically add `ApisixUpstream`.
-5. `ApisixUpstream` can define some details on Apache APISIX upstream, such as load balancing/health check, etc.
+5. In the simplest case, you only need to define `ApisixRoute`, and the Ingress controller will automatically add `ApisixUpstream`.
+7. `ApisixUpstream` can define some details on Apache APISIX upstream, such as load balancing/health check, etc.
 
 ## Monitoring CRDs
 
@@ -78,7 +73,7 @@ Currently `apisix-ingress-controller` CRDs consist of 3 parts: ApisixRoute/Apisi
 
 ![flow](../../assets/images/flow.png)
 
-- Here is a flowchart that introduces the main logic of `ApisixRoute` and other CRDs during synchronization.
+* Here is a flowchart that introduces the main logic of `ApisixRoute` and other CRDs during synchronization.
 
 ![logic](../../assets/images/sync-logic-controller.png)
 
@@ -131,7 +126,8 @@ metadata:
   annotations:
     k8s.apisix.apache.org/whitelist-source-range: 1.2.3.4,2.2.0.0/16
   name: httpserver-route
-spec: ...
+spec:
+    ...
 ```
 
 The black and white list here is implemented by the [ip-restriction](https://github.com/apache/apisix/blob/master/doc/plugins/ip-restriction.md) plugin.
diff --git a/docs/en/latest/development.md b/docs/en/latest/development.md
index 2c317b3..8d883d2 100644
--- a/docs/en/latest/development.md
+++ b/docs/en/latest/development.md
@@ -17,26 +17,21 @@
 #
 -->
 
----
-
-id: development
-title: Developing for Apache APISIX Ingress Controller
-
----
+# Developing for Apache APISIX Ingress Controller
 
 This document explains how to get started with developing for Apache APISIX Ingress controller.
 
 ## Prerequisites
 
-- Install [Go 1.13](https://golang.org/dl/) or later, and we use go module to manage the go package dependencies.
-- Prepare an available Kubernetes cluster in your workstation, we recommend you to use [Minikube](https://github.com/kubernetes/minikube).
-- [Install Apache APISIX in Kubernetes by Helm Chart](https://github.com/apache/apisix-helm-chart).
+* Install [Go 1.13](https://golang.org/dl/) or later, and we use go module to manage the go package dependencies.
+* Prepare an available Kubernetes cluster in your workstation, we recommend you to use [Minikube](https://github.com/kubernetes/minikube).
+* [Install Apache APISIX in Kubernetes by Helm Chart](https://github.com/apache/apisix-helm-chart).
 
 ## Fork and Clone
 
-- Fork the repository from [apache/apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller) to your own GitHub account.
-- Clone the forked repository to your workstation.
-- Run `go mod download` to download modules to local cache. By the way, if you are a developer in China, we suggest you setting `GOPROXY` to `https://goproxy.cn` to speed up the downloading.
+* Fork the repository from [apache/apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller) to your own GitHub account.
+* Clone the forked repository to your workstation.
+* Run `go mod download` to download modules to local cache. By the way, if you are a developer in China, we suggest you setting `GOPROXY` to `https://goproxy.cn` to speed up the downloading.
 
 ## Build
 
@@ -91,5 +86,5 @@ cd /path/to/apisix-ingress-controller
 
 Something you need to pay attention to:
 
-- configuring of `--kubeconfig`, if you are using Minikube, the file path should be `~/.kube/config`.
-- configuring of `--apisix-admin-key`, if you have changed the admin key in Apache APISIX, also changing it here, if you disable the authentication if Apache APISIX, just removing this option.
+* configuring of `--kubeconfig`, if you are using Minikube, the file path should be `~/.kube/config`.
+* configuring of `--apisix-admin-key`, if you have changed the admin key in Apache APISIX, also changing it here, if you disable the authentication if Apache APISIX, just removing this option.
diff --git a/docs/en/latest/samples/index.md b/docs/en/latest/samples/index.md
index c984c1f..dd80f68 100644
--- a/docs/en/latest/samples/index.md
+++ b/docs/en/latest/samples/index.md
@@ -17,14 +17,9 @@
 #
 -->
 
----
-
-id: samples
-title: Ingress APISIX Use Examples
-
----
+# Ingress APISIX Use Examples
 
 This is an index page about use examples of Ingress APISIX. Read them if you're trying to learn Ingress APISIX.
 
-- [Proxy the httpbin service](./proxy-the-httpbin-service.md).
-- [Proxy the httpbin service with the native Ingress](./proxy-the-httpbin-service-with-ingress.md).
+* [Proxy the httpbin service](./proxy-the-httpbin-service.md).
+* [Proxy the httpbin service with the native Ingress](./proxy-the-httpbin-service-with-ingress.md).
diff --git a/docs/en/latest/samples/proxy-the-httpbin-service-with-ingress.md b/docs/en/latest/samples/proxy-the-httpbin-service-with-ingress.md
index 78d9db2..0012b78 100644
--- a/docs/en/latest/samples/proxy-the-httpbin-service-with-ingress.md
+++ b/docs/en/latest/samples/proxy-the-httpbin-service-with-ingress.md
@@ -17,20 +17,15 @@
 #
 -->
 
----
-
-id: samples-proxy-the-httpbin-service-with-ingress
-title: Proxy the httpbin service with Ingress
-
----
+# Proxy the httpbin service
 
 This document explains how apisix-ingress-controller guides Apache APISIX routes traffic to httpbin service correctly by the [Kubernetes Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/).
 
 ## Prerequisites
 
-- Prepare an available Kubernetes cluster in your workstation, we recommend you to use [Minikube](https://github.com/kubernetes/minikube).
-- [Install Apache APISIX in Kubernetes by Helm Chart](https://github.com/apache/apisix-helm-chart).
-- Install [apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller/blob/master/docs/install.md).
+* Prepare an available Kubernetes cluster in your workstation, we recommend you to use [Minikube](https://github.com/kubernetes/minikube).
+* [Install Apache APISIX in Kubernetes by Helm Chart](https://github.com/apache/apisix-helm-chart).
+* Install [apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller/blob/master/docs/install.md).
 
 ## Deploy httpbin service
 
diff --git a/docs/en/latest/samples/proxy-the-httpbin-service.md b/docs/en/latest/samples/proxy-the-httpbin-service.md
index 572e00f..a9e143b 100644
--- a/docs/en/latest/samples/proxy-the-httpbin-service.md
+++ b/docs/en/latest/samples/proxy-the-httpbin-service.md
@@ -17,20 +17,15 @@
 #
 -->
 
----
-
-id: samples-proxy-the-httpbin-service
-title: Proxy the httpbin service
-
----
+# Proxy the httpbin service
 
 This document explains how apisix-ingress-controller guides Apache APISIX routes traffic to httpbin service correctly.
 
 ## Prerequisites
 
-- Prepare an available Kubernetes cluster in your workstation, we recommend you to use [Minikube](https://github.com/kubernetes/minikube).
-- [Install Apache APISIX in Kubernetes by Helm Chart](https://github.com/apache/apisix-helm-chart).
-- Install [apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller/blob/master/docs/install.md).
+* Prepare an available Kubernetes cluster in your workstation, we recommend you to use [Minikube](https://github.com/kubernetes/minikube).
+* [Install Apache APISIX in Kubernetes by Helm Chart](https://github.com/apache/apisix-helm-chart).
+* Install [apisix-ingress-controller](https://github.com/apache/apisix-ingress-controller/blob/master/docs/install.md).
 
 ## Deploy httpbin service
 
@@ -55,13 +50,13 @@ metadata:
   name: httpserver-route
 spec:
   rules:
-    - host: local.httpbin.org
-      http:
-        paths:
-          - backend:
-              serviceName: httpbin
-              servicePort: 80
-            path: /*
+  - host: local.httpbin.org
+    http:
+      paths:
+      - backend:
+          serviceName: httpbin
+          servicePort: 80
+        path: /*
 ```
 
 The YAML snippet shows a simple `ApisixRoute` configuration, which tells Apache APISIX to route all requests with Host `local.httpbin.org` to the `httpbin` service.
diff --git a/docs/en/latest/usage.md b/docs/en/latest/usage.md
index 8d63d34..79a887f 100644
--- a/docs/en/latest/usage.md
+++ b/docs/en/latest/usage.md
@@ -17,12 +17,7 @@
 #
 -->
 
----
-
-id: usage
-title: Usage of Ingress controller
-
----
+# Usage of Ingress controller
 
 In this article, we will use ingress controller CRDs (CustomResourceDefinition) to define routing rules against the admin api of Apache APISIX.
 
@@ -53,11 +48,11 @@ metadata:
   name: foo
 spec:
   ports:
-    - port: 8080
-      loadbalancer:
-        type: chash
-        hashOn: header
-        key: hello
+  - port: 8080
+    loadbalancer:
+      type: chash
+      hashOn: header
+      key: hello
 ```
 
 2. Define Route with `ApisixRoute`
@@ -69,13 +64,13 @@ metadata:
   name: foo-route
 spec:
   rules:
-    - host: test.apisix.apache.org
-      http:
-        paths:
-          - backend:
-              serviceName: foo
-              servicePort: 8080
-            path: /hello*
+  - host: test.apisix.apache.org
+    http:
+      paths:
+      - backend:
+          serviceName: foo
+          servicePort: 8080
+        path: /hello*
 ```
 
 Tips: When defining `ApisixUpstream`, there is no need to define a specific pod ip list, the ingress controller will do service discovery based on namespace/name/port composite index.


[apisix-ingress-controller] 02/02: fix: docs

Posted by ju...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch fix-docs-config
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git

commit 6f48f1170e425dfc10d0f182edb8449664ea4fe9
Author: juzhiyuan <ju...@apache.org>
AuthorDate: Thu Feb 25 16:06:23 2021 +0800

    fix: docs
---
 docs/en/latest/config.json | 49 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/docs/en/latest/config.json b/docs/en/latest/config.json
index b029746..7e14180 100644
--- a/docs/en/latest/config.json
+++ b/docs/en/latest/config.json
@@ -1,4 +1,51 @@
 {
   "version": "0.3.0",
-  "sidebar": {}
+  "sidebar": {
+    "docs": [
+      {
+        "type": "category",
+        "label": "Getting Started",
+        "items": ["design", "CRD-specification"]
+      },
+      {
+        "type": "category",
+        "label": "Samples",
+        "items": [
+          "samples/index",
+          "samples/proxy-the-httpbin-service-with-ingress",
+          "samples/proxy-the-httpbin-service"
+        ]
+      },
+      {
+        "type": "category",
+        "label": "Deployment",
+        "items": [
+          "deployments/ack",
+          "deployments/aws",
+          "deployments/azure",
+          "deployments/gke",
+          "deployments/k3s-rke",
+          "deployments/kubesphere",
+          "deployments/minikube",
+          "deployments/tke"
+        ]
+      },
+      {
+        "type": "doc",
+        "id": "usage"
+      },
+      {
+        "type": "doc",
+        "id": "development"
+      },
+      {
+        "type": "doc",
+        "id": "contribute"
+      },
+      {
+        "type": "doc",
+        "id": "FAQ"
+      }
+    ]
+  }
 }