diff --git a/CHANGELOG.md b/CHANGELOG.md index 17568afa22f8..2c391e49fdee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1332,7 +1332,11 @@ and support for ARM platform, and proxy rewrite plugin. ### Core -- :sunrise: **[support stand-alone mode](https://github.com/apache/incubator-apisix/blob/master/docs/en/latest/stand-alone-cn.md)**: using yaml to update configurations of APISIX, more friendly to kubernetes. [#464](https://github.com/apache/incubator-apisix/pull/464) +<<<<<<< HEAD +- :sunrise: **[support standalone mode](https://github.com/apache/incubator-apisix/blob/master/docs/en/latest/standalone-cn.md)**: using yaml to update configurations of APISIX, more friendly to kubernetes. [#464](https://github.com/apache/incubator-apisix/pull/464) +======= +- :sunrise: **[support standalone mode](https://github.com/apache/incubator-apisix/blob/master/docs/en/latest/standalone-cn.md)**: using yaml to update configurations of APISIX, more friendly to kubernetes. [#464](https://github.com/apache/incubator-apisix/pull/464) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 - :sunrise: **[support stream proxy](https://github.com/apache/incubator-apisix/blob/master/docs/en/latest/stream-proxy.md)**. [#513](https://github.com/apache/incubator-apisix/pull/513) - :sunrise: support consumer bind plugins. [#544](https://github.com/apache/incubator-apisix/pull/544) - support domain name in upstream, not only IP. [#522](https://github.com/apache/incubator-apisix/pull/522) diff --git a/README.md b/README.md index b3dbfdfe5d46..14b6f050c8ad 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,11 @@ A/B testing, canary release, blue-green deployment, limit rate, defense against - [Dashboard](https://github.com/apache/apisix-dashboard) - Version Control: Supports rollbacks of operations. - CLI: start\stop\reload APISIX through the command line. - - [Stand-Alone](docs/en/latest/deployment-modes.md#stand-alone): Supports to load route rules from local YAML file, it is more friendly such as under the kubernetes(k8s). +<<<<<<< HEAD + - [standalone](docs/en/latest/deployment-modes.md#standalone): Supports to load route rules from local YAML file, it is more friendly such as under the kubernetes(k8s). +======= + - [standalone](docs/en/latest/deployment-modes.md#standalone): Supports to load route rules from local YAML file, it is more friendly such as under the kubernetes(k8s). +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 - [Global Rule](docs/en/latest/terminology/global-rule.md): Allows to run any plugin for all request, eg: limit rate, IP filter etc. - High performance: The single-core QPS reaches 18k with an average delay of fewer than 0.2 milliseconds. - [Fault Injection](docs/en/latest/plugins/fault-injection.md) diff --git a/apisix/core/config_yaml.lua b/apisix/core/config_yaml.lua index 0c6564caf6bb..2a75dce860e9 100644 --- a/apisix/core/config_yaml.lua +++ b/apisix/core/config_yaml.lua @@ -15,7 +15,11 @@ -- limitations under the License. -- ---- Get configuration information in Stand-alone mode. +<<<<<<< HEAD +--- Get configuration information in standalone mode. +======= +--- Get configuration information in standalone mode. +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 -- -- @module core.config_yaml diff --git a/apisix/core/pubsub.lua b/apisix/core/pubsub.lua index 18bb887001c1..40fd3759a128 100644 --- a/apisix/core/pubsub.lua +++ b/apisix/core/pubsub.lua @@ -185,10 +185,23 @@ function _M.wait(self) end -- recovery of stored pb_store +<<<<<<< HEAD +<<<<<<< HEAD local pb_old_state = pb.state(pb_state) local data, err = pb.decode("PubSubReq", raw_data) pb.state(pb_old_state) +======= + pb.state(pb_state) + + local data, err = pb.decode("PubSubReq", raw_data) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + local pb_old_state = pb.state(pb_state) + + local data, err = pb.decode("PubSubReq", raw_data) + pb.state(pb_old_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 if not data then log.error("pubsub server receives undecodable data, err: ", err) send_error(ws, 0, "wrong command") diff --git a/apisix/plugins/grpc-transcode/proto.lua b/apisix/plugins/grpc-transcode/proto.lua index 347ec39eae17..7b81e4fd33ef 100644 --- a/apisix/plugins/grpc-transcode/proto.lua +++ b/apisix/plugins/grpc-transcode/proto.lua @@ -99,7 +99,15 @@ end local function compile_proto(content) -- clear pb state +<<<<<<< HEAD +<<<<<<< HEAD local old_pb_state = pb.state(nil) +======= + pb.state(nil) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + local old_pb_state = pb.state(nil) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 local compiled, err = compile_proto_text(content) if not compiled then @@ -110,7 +118,15 @@ local function compile_proto(content) end -- fetch pb state +<<<<<<< HEAD +<<<<<<< HEAD + compiled.pb_state = pb.state(old_pb_state) +======= + compiled.pb_state = pb.state(nil) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= compiled.pb_state = pb.state(old_pb_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 return compiled end diff --git a/apisix/plugins/grpc-transcode/request.lua b/apisix/plugins/grpc-transcode/request.lua index 934a1c95657c..ca3663d62fc3 100644 --- a/apisix/plugins/grpc-transcode/request.lua +++ b/apisix/plugins/grpc-transcode/request.lua @@ -36,12 +36,26 @@ return function (proto, service, method, pb_option, deadline, default_values) req_read_body() +<<<<<<< HEAD +<<<<<<< HEAD local pb_old_state = pb.state(proto.pb_state) +======= +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + local pb_old_state = pb.state(proto.pb_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 util.set_options(proto, pb_option) local map_message = util.map_message(m.input_type, default_values or {}) local ok, encoded = pcall(pb.encode, m.input_type, map_message) +<<<<<<< HEAD +<<<<<<< HEAD + pb.state(pb_old_state) +======= +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= pb.state(pb_old_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 if not ok or not encoded then return false, "failed to encode request data to protobuf", 400 diff --git a/apisix/plugins/grpc-transcode/response.lua b/apisix/plugins/grpc-transcode/response.lua index 9dd6780f049d..0fe0ef5b9f41 100644 --- a/apisix/plugins/grpc-transcode/response.lua +++ b/apisix/plugins/grpc-transcode/response.lua @@ -25,7 +25,15 @@ local ipairs = ipairs local pcall = pcall +<<<<<<< HEAD +<<<<<<< HEAD local function handle_error_response(status_detail_type, proto) +======= +local function handle_error_response(status_detail_type) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= +local function handle_error_response(status_detail_type, proto) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 local err_msg local grpc_status = ngx.header["grpc-status-details-bin"] @@ -58,9 +66,19 @@ local function handle_error_response(status_detail_type, proto) if status_detail_type and details then local decoded_details = {} for _, detail in ipairs(details) do +<<<<<<< HEAD +<<<<<<< HEAD + local pb_old_state = pb.state(proto.pb_state) + local ok, err_or_value = pcall(pb.decode, status_detail_type, detail.value) + pb.state(pb_old_state) +======= + local ok, err_or_value = pcall(pb.decode, status_detail_type, detail.value) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= local pb_old_state = pb.state(proto.pb_state) local ok, err_or_value = pcall(pb.decode, status_detail_type, detail.value) pb.state(pb_old_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 if not ok then err_msg = "failed to call pb.decode to decode details in " .. "grpc-status-details-bin" @@ -101,7 +119,15 @@ return function(ctx, proto, service, method, pb_option, show_status_in_body, sta -- handle error response after the last response chunk if ngx.status >= 300 and show_status_in_body then +<<<<<<< HEAD +<<<<<<< HEAD + return handle_error_response(status_detail_type, proto) +======= + return handle_error_response(status_detail_type) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= return handle_error_response(status_detail_type, proto) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 end -- when body has already been read by other plugin @@ -120,12 +146,26 @@ return function(ctx, proto, service, method, pb_option, show_status_in_body, sta buffer = string.sub(buffer, 6) end +<<<<<<< HEAD +<<<<<<< HEAD local pb_old_state = pb.state(proto.pb_state) +======= +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + local pb_old_state = pb.state(proto.pb_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 util.set_options(proto, pb_option) local err_msg local decoded = pb.decode(m.output_type, buffer) +<<<<<<< HEAD +<<<<<<< HEAD + pb.state(pb_old_state) +======= +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= pb.state(pb_old_state) +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 if not decoded then err_msg = "failed to decode response data by protobuf" ngx.arg[1] = err_msg diff --git a/apisix/plugins/grpc-transcode/util.lua b/apisix/plugins/grpc-transcode/util.lua index a95cb8202041..bb6c85cc254d 100644 --- a/apisix/plugins/grpc-transcode/util.lua +++ b/apisix/plugins/grpc-transcode/util.lua @@ -48,6 +48,14 @@ function _M.find_method(proto, service, method) return nil end +<<<<<<< HEAD +<<<<<<< HEAD +======= + -- restore pb state + pb.state(proto.pb_state) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 return res end diff --git a/autodocs/generate.sh b/autodocs/generate.sh old mode 100755 new mode 100644 diff --git a/benchmark/run.sh b/benchmark/run.sh old mode 100755 new mode 100644 diff --git a/bin/apisix b/bin/apisix old mode 100755 new mode 100644 diff --git a/ci/centos7-ci.sh b/ci/centos7-ci.sh old mode 100755 new mode 100644 diff --git a/ci/init-common-test-service.sh b/ci/init-common-test-service.sh old mode 100755 new mode 100644 diff --git a/ci/init-last-test-service.sh b/ci/init-last-test-service.sh old mode 100755 new mode 100644 diff --git a/ci/init-plugin-test-service.sh b/ci/init-plugin-test-service.sh old mode 100755 new mode 100644 diff --git a/ci/kubernetes-ci.sh b/ci/kubernetes-ci.sh old mode 100755 new mode 100644 diff --git a/ci/linux-install-etcd-client.sh b/ci/linux-install-etcd-client.sh old mode 100755 new mode 100644 diff --git a/ci/linux-install-openresty.sh b/ci/linux-install-openresty.sh old mode 100755 new mode 100644 diff --git a/ci/linux_apisix_current_luarocks_in_customed_nginx_runner.sh b/ci/linux_apisix_current_luarocks_in_customed_nginx_runner.sh old mode 100755 new mode 100644 diff --git a/ci/linux_apisix_current_luarocks_runner.sh b/ci/linux_apisix_current_luarocks_runner.sh old mode 100755 new mode 100644 diff --git a/ci/linux_apisix_master_luarocks_runner.sh b/ci/linux_apisix_master_luarocks_runner.sh old mode 100755 new mode 100644 diff --git a/ci/linux_openresty_1_19_runner.sh b/ci/linux_openresty_1_19_runner.sh old mode 100755 new mode 100644 diff --git a/ci/linux_openresty_common_runner.sh b/ci/linux_openresty_common_runner.sh old mode 100755 new mode 100644 diff --git a/ci/linux_openresty_runner.sh b/ci/linux_openresty_runner.sh old mode 100755 new mode 100644 diff --git a/ci/linux_openresty_tongsuo_runner.sh b/ci/linux_openresty_tongsuo_runner.sh old mode 100755 new mode 100644 diff --git a/ci/performance_test.sh b/ci/performance_test.sh old mode 100755 new mode 100644 diff --git a/ci/pod/keycloak/server.key.pem b/ci/pod/keycloak/server.key.pem old mode 100755 new mode 100644 diff --git a/ci/pod/openfunction/build-function-image.sh b/ci/pod/openfunction/build-function-image.sh old mode 100755 new mode 100644 diff --git a/ci/redhat-ci.sh b/ci/redhat-ci.sh old mode 100755 new mode 100644 diff --git a/ci/tars-ci.sh b/ci/tars-ci.sh old mode 100755 new mode 100644 diff --git a/conf/config-default.yaml b/conf/config-default.yaml old mode 100755 new mode 100644 diff --git a/docs/assets/other/json/apisix-grafana-dashboard.json b/docs/assets/other/json/apisix-grafana-dashboard.json index e4e5b94681c3..2ba82c0952a6 100644 --- a/docs/assets/other/json/apisix-grafana-dashboard.json +++ b/docs/assets/other/json/apisix-grafana-dashboard.json @@ -520,7 +520,15 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "sum(rate(apisix_bandwidth{instance=~\"$instance\"}[$__rate_interval])) by (type)", +======= + "expr": "sum(rate(apisix_bandwidth{instance=~\"$instance\"}[30s])) by (type)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "sum(rate(apisix_bandwidth{instance=~\"$instance\"}[$__rate_interval])) by (type)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "legendFormat": "{{type}}", "refId": "A" } @@ -620,12 +628,28 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "sum(irate(apisix_bandwidth{type=\"ingress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (service)", +======= + "expr": "sum(irate(apisix_bandwidth{type=\"ingress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (service)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "sum(irate(apisix_bandwidth{type=\"ingress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (service)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "legendFormat": "service:{{service}}", "refId": "A" }, { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "sum(irate(apisix_bandwidth{type=\"ingress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (route)", +======= + "expr": "sum(irate(apisix_bandwidth{type=\"ingress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (route)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "sum(irate(apisix_bandwidth{type=\"ingress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (route)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "legendFormat": "route:{{route}}", "refId": "B" } @@ -725,13 +749,29 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "sum(rate(apisix_bandwidth{type=\"egress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (service)", +======= + "expr": "sum(rate(apisix_bandwidth{type=\"egress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (service)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "sum(rate(apisix_bandwidth{type=\"egress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (service)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "service:{{service}}", "refId": "A" }, { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "sum(rate(apisix_bandwidth{type=\"egress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (route)", +======= + "expr": "sum(rate(apisix_bandwidth{type=\"egress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (route)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "sum(rate(apisix_bandwidth{type=\"egress\", service =~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (route)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "legendFormat": "route:{{route}}", "refId": "B" } @@ -853,7 +893,15 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (code)", +======= + "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (code)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (code)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "instant": false, "interval": "", "intervalFactor": 1, @@ -965,7 +1013,15 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (service)", +======= + "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (service)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (service)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "instant": false, "interval": "", "intervalFactor": 1, @@ -973,7 +1029,15 @@ "refId": "A" }, { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (route)", +======= + "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[1m])) by (route)", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "sum(rate(apisix_http_status{service=~\"$service\",route=~\"$route\",instance=~\"$instance\"}[$__rate_interval])) by (route)", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "route:{{route}}", "refId": "D" @@ -1083,20 +1147,44 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "format": "time_series", "interval": "", "legendFormat": "P90", "refId": "A" }, { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "P95", "refId": "B" }, { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"request\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "P99", "refId": "C" @@ -1206,7 +1294,15 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "format": "time_series", "instant": false, "interval": "", @@ -1215,13 +1311,29 @@ "refId": "A" }, { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "P95", "refId": "B" }, { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"apisix\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "P99", "refId": "C" @@ -1330,20 +1442,44 @@ "steppedLine": false, "targets": [ { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "histogram_quantile(0.90, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "format": "time_series", "interval": "", "legendFormat": "P90", "refId": "A" }, { +<<<<<<< HEAD +<<<<<<< HEAD "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= + "expr": "histogram_quantile(0.95, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "P95", "refId": "B" }, { +<<<<<<< HEAD +<<<<<<< HEAD + "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +======= + "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\"}[1m])) by (le))", +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= "expr": "histogram_quantile(0.99, sum(rate(apisix_http_latency_bucket{type=~\"upstream\",service=~\"$service\",consumer=~\"$consumer\",node=~\"$node\",route=~\"$route\"}[$__rate_interval])) by (le))", +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 "interval": "", "legendFormat": "P99", "refId": "C" diff --git a/docs/en/latest/deployment-modes.md b/docs/en/latest/deployment-modes.md index 7e6d8da7d3f9..af1b345fb408 100644 --- a/docs/en/latest/deployment-modes.md +++ b/docs/en/latest/deployment-modes.md @@ -159,7 +159,11 @@ deployment: ## Standalone -Turning on the APISIX node in Stand-alone mode will no longer use the default etcd as the configuration center. +<<<<<<< HEAD +Turning on the APISIX node in standalone mode will no longer use the default etcd as the configuration center. +======= +Turning on the APISIX node in Standalone mode will no longer use the default etcd as the configuration center. +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 This method is more suitable for two types of users: @@ -170,7 +174,11 @@ The routing rules in the `conf/apisix.yaml` file are loaded into memory immediat *Note*: Reloading and updating routing rules are all hot memory updates. There is no replacement of working processes, since it's a hot update. -Since the current Admin API is based on the etcd configuration center solution, enable Admin API is not allowed when the Stand-alone mode is enabled. +<<<<<<< HEAD +Since the current Admin API is based on the etcd configuration center solution, enable Admin API is not allowed when the standalone mode is enabled. +======= +Since the current Admin API is based on the etcd configuration center solution, enable Admin API is not allowed when the Standalone mode is enabled. +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 Standalone mode can only be enabled when we set the role of APISIX as data plane. We set `deployment.role` to `data_plane` and `deployment.role_data_plane.config_provider` to `yaml`. diff --git a/docs/en/latest/plugins/response-rewrite.md b/docs/en/latest/plugins/response-rewrite.md index e95371ac8672..ceae498be726 100644 --- a/docs/en/latest/plugins/response-rewrite.md +++ b/docs/en/latest/plugins/response-rewrite.md @@ -49,7 +49,15 @@ You can also use the [redirect](./redirect.md) Plugin to setup redirects. |-----------------|---------|----------|---------|---------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | status_code | integer | False | | [200, 598] | New HTTP status code in the response. If unset, falls back to the original status code. | | body | string | False | | | New body of the response. The content-length would also be reset. | +<<<<<<< HEAD +<<<<<<< HEAD | body_base64 | boolean | False | false | | When set, the body passed in `body` will be decoded before writing to the client which is used in some image and Protobuffer scenarios. Note that this field only allows decoding the body passed in plugin configuration and does not decode upstream response. | +======= +| body_base64 | boolean | False | false | | When set, the body of the request will be decoded before writing to the client. | +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= +| body_base64 | boolean | False | false | | When set, the body passed in `body` will be decoded before writing to the client which is used in some image and Protobuffer scenarios. Note that this field only allows decoding the body passed in plugin configuration and does not decode upstream response. | +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 | headers | object | False | | | | | headers.add | array | False | | | Append the new headers to the response. The format is `["name: value", ...]`. The values in the header can contain Nginx variables like `$remote_addr` and `$balancer_ip`. | | headers.set | object | False | | | Rewriting the headers. The format is `{"name": "value", ...}`. The values in the header can contain Nginx variables like `$remote_addr` and `$balancer_ip`. | diff --git a/docs/en/latest/terminology/plugin.md b/docs/en/latest/terminology/plugin.md index bbff2f798700..6b4c410f214f 100644 --- a/docs/en/latest/terminology/plugin.md +++ b/docs/en/latest/terminology/plugin.md @@ -276,6 +276,10 @@ curl http://127.0.0.1:9180/apisix/admin/plugins/reload -H 'X-API-KEY: edd1c9f034 If a configured Plugin is disabled, then its execution will be skipped. -### Hot reload in stand-alone mode +### Hot reload in standalone mode -For hot-reloading in stand-alone mode, see the plugin related section in [stand alone mode](../deployment-modes.md#stand-alone). +<<<<<<< HEAD +For hot-reloading in standalone mode, see the plugin related section in [stand alone mode](../deployment-modes.md#standalone). +======= +For hot-reloading in standalone mode, see the plugin related section in [stand alone mode](../deployment-modes.md#standalone). +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 diff --git a/docs/zh/latest/CHANGELOG.md b/docs/zh/latest/CHANGELOG.md index 3d3c800c35a8..62c4ede634f6 100644 --- a/docs/zh/latest/CHANGELOG.md +++ b/docs/zh/latest/CHANGELOG.md @@ -1302,7 +1302,11 @@ title: CHANGELOG ### Core -- :sunrise: **[增加单机模式](https://github.com/apache/incubator-apisix/blob/master/docs/zh/latest//stand-alone-cn.md)**: 使用 yaml 配置文件来更新 APISIX 的配置,这对于 kubernetes 更加友好。 [#464](https://github.com/apache/incubator-apisix/pull/464) +<<<<<<< HEAD +- :sunrise: **[增加单机模式](https://github.com/apache/incubator-apisix/blob/master/docs/zh/latest//standalone-cn.md)**: 使用 yaml 配置文件来更新 APISIX 的配置,这对于 kubernetes 更加友好。 [#464](https://github.com/apache/incubator-apisix/pull/464) +======= +- :sunrise: **[增加单机模式](https://github.com/apache/incubator-apisix/blob/master/docs/zh/latest//standalone-cn.md)**: 使用 yaml 配置文件来更新 APISIX 的配置,这对于 kubernetes 更加友好。 [#464](https://github.com/apache/incubator-apisix/pull/464) +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 - :sunrise: **[支持 stream 代理](https://github.com/apache/incubator-apisix/blob/master/docs/zh/latest//stream-proxy-cn.md)**. [#513](https://github.com/apache/incubator-apisix/pull/513) - :sunrise: 支持[在 consumer 上绑定插件](https://github.com/apache/incubator-apisix/blob/master/docs/zh/latest//architecture-design-cn.md#consumer). [#544](https://github.com/apache/incubator-apisix/pull/544) - 上游增加对域名的支持,而不仅是 IP。[#522](https://github.com/apache/incubator-apisix/pull/522) diff --git a/docs/zh/latest/README.md b/docs/zh/latest/README.md index 7de385278b6b..9be64ed71b3d 100644 --- a/docs/zh/latest/README.md +++ b/docs/zh/latest/README.md @@ -138,7 +138,11 @@ A/B 测试、金丝雀发布(灰度发布)、蓝绿部署、限流限速、 - [控制台](https://github.com/apache/apisix-dashboard): 操作 APISIX 集群。 - 版本控制:支持操作的多次回滚。 - CLI:使用命令行来启动、关闭和重启 APISIX。 - - [单机模式](stand-alone.md):支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。 +<<<<<<< HEAD + - [单机模式](standalone.md):支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。 +======= + - [单机模式](standalone.md):支持从本地配置文件中加载路由规则,在 kubernetes(k8s) 等环境下更友好。 +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 - [全局规则](terminology/global-rule.md):允许对所有请求执行插件,比如黑白名单、限流限速等。 - 高性能:在单核上 QPS 可以达到 18k,同时延迟只有 0.2 毫秒。 - [故障注入](plugins/fault-injection.md) diff --git a/docs/zh/latest/admin-api.md b/docs/zh/latest/admin-api.md index 11980db12be8..1c90ee7e210d 100644 --- a/docs/zh/latest/admin-api.md +++ b/docs/zh/latest/admin-api.md @@ -65,7 +65,15 @@ deployment: port: 9180 # Admin API 监听的 端口,必须使用与 node_listen 不同的端口。 ``` +<<<<<<< HEAD +<<<<<<< HEAD ### 使用环境变量 {#using-environment-variables} +======= +### 使用环境变量 {$using-environment-variables} +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= +### 使用环境变量 {#using-environment-variables} +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 要通过环境变量进行配置,可以使用 `${{VAR}}` 语法。例如: diff --git a/docs/zh/latest/plugins/openwhisk.md b/docs/zh/latest/plugins/openwhisk.md index a079bb5b3123..7651412cb022 100644 --- a/docs/zh/latest/plugins/openwhisk.md +++ b/docs/zh/latest/plugins/openwhisk.md @@ -62,7 +62,11 @@ description: 本文介绍了关于 Apache APISIX openwhisk 插件的基本信息 ### 搭建 Apache OpenWhisk 测试环境 -1. 在使用 `openwhisk` 插件之前,你需要通过以下命令运行 OpenWhisk stand-alone 模式。请确保当前环境中已经安装 Docker 软件。 +<<<<<<< HEAD +1. 在使用 `openwhisk` 插件之前,你需要通过以下命令运行 OpenWhisk standalone 模式。请确保当前环境中已经安装 Docker 软件。 +======= +1. 在使用 `openwhisk` 插件之前,你需要通过以下命令运行 OpenWhisk standalone 模式。请确保当前环境中已经安装 Docker 软件。 +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 ```shell docker run --rm -d \ diff --git a/docs/zh/latest/plugins/response-rewrite.md b/docs/zh/latest/plugins/response-rewrite.md index c7d992ee50c7..fee34c44f8e7 100644 --- a/docs/zh/latest/plugins/response-rewrite.md +++ b/docs/zh/latest/plugins/response-rewrite.md @@ -49,7 +49,15 @@ description: 本文介绍了关于 Apache APISIX `response-rewrite` 插件的基 |-----------------|---------|--------|--------|-----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | status_code | integer | 否 | | [200, 598] | 修改上游返回状态码,默认保留原始响应代码。 | | body | string | 否 | | | 修改上游返回的 `body` 内容,如果设置了新内容,header 里面的 content-length 字段也会被去掉。 | +<<<<<<< HEAD +<<<<<<< HEAD | body_base64 | boolean | 否 | false | | 当设置时,在写给客户端之前,在`body`中传递的主体将被解码,这在一些图像和 Protobuffer 场景中使用。注意,这个字段只允许对插件配置中传递的主体进行解码,并不对上游响应进行解码。 | +======= +| body_base64 | boolean | 否 | false | | 描述 `body` 字段是否需要 base64 解码之后再返回给客户端,用在某些图片和 Protobuffer 场景。 | +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 +======= +| body_base64 | boolean | 否 | false | | 当设置时,在写给客户端之前,在`body`中传递的主体将被解码,这在一些图像和 Protobuffer 场景中使用。注意,这个字段只允许对插件配置中传递的主体进行解码,并不对上游响应进行解码。 | +>>>>>>> 7ec3c0f583510ebcdf9c414f83792e1ac247a5b9 | headers | object | 否 | | | | | headers.add | array | 否 | | | 添加新的响应头。格式为 `["name: value", ...]`。这个值能够以 `$var` 的格式包含 NGINX 变量,比如 `$remote_addr $balancer_ip`。 | | headers.set | object | 否 | | | 改写响应头。格式为 `{"name": "value", ...}`。这个值能够以 `$var` 的格式包含 NGINX 变量,比如 `$remote_addr $balancer_ip`。 | diff --git a/docs/zh/latest/terminology/plugin.md b/docs/zh/latest/terminology/plugin.md index 2301add9465a..9c4c4ea79250 100644 --- a/docs/zh/latest/terminology/plugin.md +++ b/docs/zh/latest/terminology/plugin.md @@ -284,6 +284,12 @@ curl http://127.0.0.1:9180/apisix/admin/plugins/reload -H 'X-API-KEY: edd1c9f034 ::: -## stand-alone 模式下的热加载 +<<<<<<< HEAD +## standalone 模式下的热加载 -关于 Stand Alone 模式下的热加载的信息,请参考 [stand alone 模式](../stand-alone.md)。 +关于 Stand Alone 模式下的热加载的信息,请参考 [stand alone 模式](../standalone.md)。 +======= +## standalone 模式下的热加载 + +关于 Stand Alone 模式下的热加载的信息,请参考 [stand alone 模式](../standalone.md)。 +>>>>>>> adcf6951c7baedf949108bfd37f46d078afe1143 diff --git a/t/bin/gen_snippet.lua b/t/bin/gen_snippet.lua old mode 100755 new mode 100644 diff --git a/t/chaos/utils/setup_chaos_utils.sh b/t/chaos/utils/setup_chaos_utils.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_access_log.sh b/t/cli/test_access_log.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_admin.sh b/t/cli/test_admin.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_admin_mtls.sh b/t/cli/test_admin_mtls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_apisix_mirror.sh b/t/cli/test_apisix_mirror.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_ci_only.sh b/t/cli/test_ci_only.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_cmd.sh b/t/cli/test_cmd.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_control.sh b/t/cli/test_control.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_core_config.sh b/t/cli/test_core_config.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_deployment_control_plane.sh b/t/cli/test_deployment_control_plane.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_deployment_data_plane.sh b/t/cli/test_deployment_data_plane.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_deployment_mtls.sh b/t/cli/test_deployment_mtls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_deployment_traditional.sh b/t/cli/test_deployment_traditional.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_dns.sh b/t/cli/test_dns.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_dubbo.sh b/t/cli/test_dubbo.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd.sh b/t/cli/test_etcd.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_grpc.sh b/t/cli/test_etcd_grpc.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_grpc_healthcheck.sh b/t/cli/test_etcd_grpc_healthcheck.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_grpc_mtls.sh b/t/cli/test_etcd_grpc_mtls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_grpc_tls.sh b/t/cli/test_etcd_grpc_tls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_healthcheck.sh b/t/cli/test_etcd_healthcheck.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_mtls.sh b/t/cli/test_etcd_mtls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_etcd_tls.sh b/t/cli/test_etcd_tls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_http_config.sh b/t/cli/test_http_config.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_kubernetes.sh b/t/cli/test_kubernetes.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_main.sh b/t/cli/test_main.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_makefile.sh b/t/cli/test_makefile.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_prometheus.sh b/t/cli/test_prometheus.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_prometheus_run_in_privileged.sh b/t/cli/test_prometheus_run_in_privileged.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_prometheus_stream.sh b/t/cli/test_prometheus_stream.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_proxy_mirror_timeout.sh b/t/cli/test_proxy_mirror_timeout.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_serverless.sh b/t/cli/test_serverless.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_snippet.sh b/t/cli/test_snippet.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_standalone.sh b/t/cli/test_standalone.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_stream_config.sh b/t/cli/test_stream_config.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_tls_over_tcp.sh b/t/cli/test_tls_over_tcp.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_upstream_mtls.sh b/t/cli/test_upstream_mtls.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_validate_config.sh b/t/cli/test_validate_config.sh old mode 100755 new mode 100644 diff --git a/t/cli/test_wasm.sh b/t/cli/test_wasm.sh old mode 100755 new mode 100644 diff --git a/t/fuzzing/client_abort.py b/t/fuzzing/client_abort.py old mode 100755 new mode 100644 diff --git a/t/fuzzing/http_upstream.py b/t/fuzzing/http_upstream.py old mode 100755 new mode 100644 diff --git a/t/fuzzing/simple_http.py b/t/fuzzing/simple_http.py old mode 100755 new mode 100644 diff --git a/t/fuzzing/simpleroute_test.py b/t/fuzzing/simpleroute_test.py old mode 100755 new mode 100644 diff --git a/t/perf/test_http.py b/t/perf/test_http.py old mode 100755 new mode 100644 diff --git a/t/plugin/ext-plugin/runner.sh b/t/plugin/ext-plugin/runner.sh old mode 100755 new mode 100644 diff --git a/t/plugin/ext-plugin/runner_can_not_terminated.sh b/t/plugin/ext-plugin/runner_can_not_terminated.sh old mode 100755 new mode 100644 diff --git a/t/plugin/grpc-web/setup.sh b/t/plugin/grpc-web/setup.sh old mode 100755 new mode 100644 diff --git a/t/plugin/jwt-auth3.t b/t/plugin/jwt-auth3.t old mode 100755 new mode 100644 diff --git a/utils/check-category.py b/utils/check-category.py old mode 100755 new mode 100644 diff --git a/utils/check-lua-code-style.sh b/utils/check-lua-code-style.sh old mode 100755 new mode 100644 diff --git a/utils/check-merge-conflict.sh b/utils/check-merge-conflict.sh old mode 100755 new mode 100644 diff --git a/utils/check-plugins-code.sh b/utils/check-plugins-code.sh old mode 100755 new mode 100644 diff --git a/utils/check-test-code-style.sh b/utils/check-test-code-style.sh old mode 100755 new mode 100644 diff --git a/utils/check-version.sh b/utils/check-version.sh old mode 100755 new mode 100644 diff --git a/utils/create-ssl.py b/utils/create-ssl.py old mode 100755 new mode 100644 diff --git a/utils/fix-zh-doc-segment.py b/utils/fix-zh-doc-segment.py old mode 100755 new mode 100644 diff --git a/utils/gen-vote-contents.sh b/utils/gen-vote-contents.sh old mode 100755 new mode 100644 diff --git a/utils/install-dependencies.sh b/utils/install-dependencies.sh old mode 100755 new mode 100644 diff --git a/utils/linux-install-luarocks.sh b/utils/linux-install-luarocks.sh old mode 100755 new mode 100644