Skip to content

Commit

Permalink
feat: release 3.0.0-beta (#7975)
Browse files Browse the repository at this point in the history
  • Loading branch information
spacewander committed Sep 26, 2022
1 parent 4570fec commit 3c18031
Show file tree
Hide file tree
Showing 9 changed files with 415 additions and 5 deletions.
4 changes: 4 additions & 0 deletions .asf.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ github:
dismiss_stale_reviews: true
require_code_owner_reviews: true
required_approving_review_count: 2
release/2.99:
required_pull_request_reviews:
require_code_owner_reviews: true
required_approving_review_count: 2
release/2.15:
required_pull_request_reviews:
require_code_owner_reviews: true
Expand Down
152 changes: 152 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ title: Changelog

## Table of Contents

- [3.0.0-beta](#300-beta)
- [2.15.0](#2150)
- [2.14.1](#2141)
- [2.14.0](#2140)
Expand Down Expand Up @@ -61,6 +62,157 @@ title: Changelog
- [0.7.0](#070)
- [0.6.0](#060)

## 3.0.0-beta

Here we use 2.99.0 as the version number in the source code instead of the code name
`3.0.0-beta` for two reasons:

1. avoid unexpected errors when some programs try to compare the
version, as `3.0.0-beta` contains `3.0.0` and is longer than it.
2. some package system might not allow package which has a suffix
after the version number.

### Change

#### Moves the config_center, etcd and Admin API configuration to the deployment

We've adjusted the configuration in the static configuration file, so you need to update the configuration in `config.yaml` as well:

- The `config_center` function is now implemented by `config_provider` under `deployment`: [#7901](https://github.com/apache/apisix/pull/7901)
- The `etcd` field is moved to `deployment`: [#7860](https://github.com/apache/apisix/pull/7860)
- The following Admin API configuration is moved to the `admin` field under `deployment`: [#7823](https://github.com/apache/apisix/pull/7823)
- admin_key
- enable_admin_cors
- allow_admin
- admin_listen
- https_admin
- admin_api_mtls
- admin_api_version

You can refer to the latest `config-default.yaml` for details.

#### Removing multiple deprecated configurations

With the new 3.0 release, we took the opportunity to clean out many configurations that were previously marked as deprecated.

In the static configuration, we removed several fields as follows:

- Removed `enable_http2` and `listen_port` from `apisix.ssl`: [#7717](https://github.com/apache/apisix/pull/7717)
- Removed `apisix.port_admin`: [#7716](https://github.com/apache/apisix/pull/7716)
- Removed `etcd.health_check_retry`: [#7676](https://github.com/apache/apisix/pull/7676)
- Removed `nginx_config.http.lua_shared_dicts`: [#7677](https://github.com/apache/apisix/pull/7677)
- Removed `nginx_config.http.real_ip_header`: [#7696](https://github.com/apache/apisix/pull/7696)

In the dynamic configuration, we made the following adjustments:

- Moved `disable` of the plugin configuration under `_meta`: [#7707](https://github.com/apache/apisix/pull/7707)
- Removed `service_protocol` from the Route: [#7701](https://github.com/apache/apisix/pull/7701)

There are also specific plugin level changes:

- Removed `audience` field from authz-keycloak: [#7683](https://github.com/apache/apisix/pull/7683)
- Removed `upstream` field from mqtt-proxy: [#7694](https://github.com/apache/apisix/pull/7694)
- tcp-related configuration placed under the `tcp` field in error-log-logger: [#7700](https://github.com/apache/apisix/pull/7700)
- Removed `max_retry_times` and `retry_interval` fields from syslog: [#7699](https://github.com/apache/apisix/pull/7699)
- The `scheme` field has been removed from proxy-rewrite: [#7695](https://github.com/apache/apisix/pull/7695)

#### New Admin API response format

We have adjusted the response format of the Admin API in several PRs as follows:

- [#7630](https://github.com/apache/apisix/pull/7630)
- [#7622](https://github.com/apache/apisix/pull/7622)

The new response format is shown below:

Returns a single configuration:

```json
{
"modifiedIndex": 2685183,
"value": {
"id": "1",
...
},
"key": "/apisix/routes/1",
"createdIndex": 2684956
}
```

Returns multiple configurations:

```json
{
"list": [
{
"modifiedIndex": 2685183,
"value": {
"id": "1",
...
},
"key": "/apisix/routes/1",
"createdIndex": 2684956
},
{
"modifiedIndex": 2685163,
"value": {
"id": "2",
...
},
"key": "/apisix/routes/2",
"createdIndex": 2685163
}
],
"total": 2
}
```

#### Other

- Port of Admin API changed to 9180: [#7806](https://github.com/apache/apisix/pull/7806)
- We only support OpenResty 1.19.3.2 and above: [#7625](https://github.com/apache/apisix/pull/7625)
- Adjusted the priority of the Plugin Config object so that the priority of a plugin configuration with the same name changes from Consumer > Plugin Config > Route > Service to Consumer > Route > Plugin Config > Service: [#7614](https://github. com/apache/apisix/pull/7614)

### Core

- Integrating grpc-client-nginx-module to APISIX: [#7917](https://github.com/apache/apisix/pull/7917)
- k8s service discovery support for configuring multiple clusters: [#7895](https://github.com/apache/apisix/pull/7895)

### Plugin

- Support for injecting header with specified prefix in opentelemetry plugin: [#7822](https://github.com/apache/apisix/pull/7822)
- Added openfunction plugin: [#7634](https://github.com/apache/apisix/pull/7634)
- Added elasticsearch-logger plugin: [#7643](https://github.com/apache/apisix/pull/7643)
- response-rewrite plugin supports adding response bodies: [#7794](https://github.com/apache/apisix/pull/7794)
- log-rorate supports specifying the maximum size to cut logs: [#7749](https://github.com/apache/apisix/pull/7749)
- Added workflow plug-in.
- [#7760](https://github.com/apache/apisix/pull/7760)
- [#7771](https://github.com/apache/apisix/pull/7771)
- Added Tencent Cloud Log Service plugin: [#7593](https://github.com/apache/apisix/pull/7593)
- jwt-auth supports ES256 algorithm: [#7627](https://github.com/apache/apisix/pull/7627)
- ldap-auth internal implementation, switching from lualdap to lua-resty-ldap: [#7590](https://github.com/apache/apisix/pull/7590)
- http request metrics within the prometheus plugin supports setting additional labels via variables: [#7549](https://github.com/apache/apisix/pull/7549)
- The clickhouse-logger plugin supports specifying multiple clickhouse endpoints: [#7517](https://github.com/apache/apisix/pull/7517)

### Bugfix

- gRPC proxy sets :authority request header to configured upstream Host: [#7939](https://github.com/apache/apisix/pull/7939)
- response-rewrite writing to an empty body may cause AIPSIX to fail to respond to the request: [#7836](https://github.com/apache/apisix/pull/7836)
- Fix the problem that when using Plugin Config and Consumer at the same time, there is a certain probability that the plugin configuration is not updated: [#7965](https://github.com/apache/apisix/pull/7965)
- Only reopen log files once when log cutting: [#7869](https://github.com/apache/apisix/pull/7869)
- Passive health checks should not be enabled by default: [#7850](https://github.com/apache/apisix/pull/7850)
- The zipkin plugin should pass trace IDs upstream even if it does not sample: [#7833](https://github.com/apache/apisix/pull/7833)
- Correction of opentelemetry span kind to server: [#7830](https://github.com/apache/apisix/pull/7830)
- in limit-count plugin, different routes with the same configuration should not share the same counter: [#7750](https://github.com/apache/apisix/pull/7750)
- Fix occasional exceptions thrown when removing clean_handler: [#7648](https://github.com/apache/apisix/pull/7648)
- Allow direct use of IPv6 literals when configuring upstream nodes: [#7594](https://github.com/apache/apisix/pull/7594)
- The wolf-rbac plugin adjusts the way it responds to errors:
- [#7561](https://github.com/apache/apisix/pull/7561)
- [#7497](https://github.com/apache/apisix/pull/7497)
- the phases after proxy didn't run when 500 error happens before proxy: [#7703](https://github.com/apache/apisix/pull/7703)
- avoid error when multiple plugins associated with consumer and have rewrite phase: [#7531](https://github.com/apache/apisix/pull/7531)
- upgrade lua-resty-etcd to 1.8.3 which fixes various issues: [#7565](https://github.com/apache/apisix/pull/7565)

## 2.15.0

### Change
Expand Down
2 changes: 1 addition & 1 deletion apisix/core/version.lua
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@
-- @module core.version

return {
VERSION = "2.15.0"
VERSION = "2.99.0"
}
2 changes: 1 addition & 1 deletion docs/en/latest/building-apisix.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-depend
Then, create a directory and set the environment variable `APISIX_VERSION`:

```shell
APISIX_VERSION='2.15.0'
APISIX_VERSION='2.99.0'
mkdir apisix-${APISIX_VERSION}
```

Expand Down
2 changes: 1 addition & 1 deletion docs/en/latest/config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "2.15.0",
"version": "2.99.0",
"sidebar": [
{
"type": "doc",
Expand Down
150 changes: 150 additions & 0 deletions docs/zh/latest/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ title: CHANGELOG

## Table of Contents

- [3.0.0-beta](#300-beta)
- [2.15.0](#2150)
- [2.14.1](#2141)
- [2.14.0](#2140)
Expand Down Expand Up @@ -61,6 +62,155 @@ title: CHANGELOG
- [0.7.0](#070)
- [0.6.0](#060)

## 3.0.0-beta

这里我们使用 `2.99.0` 作为源代码中的版本号,而不是代码名称
`3.0.0-beta`,有两个原因。

1. 避免在一些程序试图比较版本时出现意外的错误,因为 `3.0.0-beta` 包含 `3.0.0` 并且比它长。
2. 一些软件包系统可能不允许在版本号后面有一个后缀。

### Change

#### 移动 config_center、etcd 和 Admin API 的配置到 deployment 下面

我们调整了下静态配置文件里面的配置,所以你需要同步更新下 config.yaml 里面的配置了:

- `config_center` 功能改由 `deployment` 下面的 `config_provider` 实现: [#7901](https://github.com/apache/apisix/pull/7901)
- `etcd` 字段整体搬迁到 `deployment` 下面: [#7860](https://github.com/apache/apisix/pull/7860)
- 以下的 Admin API 配置移动到 `deployment` 下面的 `admin` 字段:[#7823](https://github.com/apache/apisix/pull/7823)
- admin_key
- enable_admin_cors
- allow_admin
- admin_listen
- https_admin
- admin_api_mtls
- admin_api_version

具体可以参考最新的 config-default.yaml。

#### 移除多个已废弃的配置

借着 3.0 新版本的机会,我们把许多之前标记为 deprecated 的配置清理出去。

在静态配置中,我们移除了以下若干字段:

- 移除 `apisix.ssl` 中的 `enable_http2``listen_port`[#7717](https://github.com/apache/apisix/pull/7717)
- 移除 `apisix.port_admin`[#7716](https://github.com/apache/apisix/pull/7716)
- 移除 `etcd.health_check_retry`[#7676](https://github.com/apache/apisix/pull/7676)
- 移除 `nginx_config.http.lua_shared_dicts`[#7677](https://github.com/apache/apisix/pull/7677)
- 移除 `nginx_config.http.real_ip_header`: [#7696](https://github.com/apache/apisix/pull/7696)

在动态配置中,我们做了以下调整:

- 将插件配置的 `disable` 移到 `_meta` 下面:[#7707](https://github.com/apache/apisix/pull/7707)
- 从 Route 里面移除了 `service_protocol`[#7701](https://github.com/apache/apisix/pull/7701)

此外还有具体插件级别上的改动:

- authz-keycloak 中移除了 `audience` 字段: [#7683](https://github.com/apache/apisix/pull/7683)
- mqtt-proxy 中移除了 `upstream` 字段:[#7694](https://github.com/apache/apisix/pull/7694)
- error-log-logger 中把 tcp 相关配置放到 `tcp` 字段下面:[#7700](https://github.com/apache/apisix/pull/7700)
- syslog 中移除了 `max_retry_times``retry_interval` 字段: [#7699](https://github.com/apache/apisix/pull/7699)
- proxy-rewrite 中移除了 `scheme` 字段: [#7695](https://github.com/apache/apisix/pull/7695)

#### 新的 Admin API 响应格式

我们在以下若干个 PR 中调整了 Admin API 的响应格式:

- [#7630](https://github.com/apache/apisix/pull/7630)
- [#7622](https://github.com/apache/apisix/pull/7622)

新的响应格式展示如下:

返回单个配置:

```json
{
"modifiedIndex": 2685183,
"value": {
"id": "1",
...
},
"key": "/apisix/routes/1",
"createdIndex": 2684956
}
```

返回多个配置:

```json
{
"list": [
{
"modifiedIndex": 2685183,
"value": {
"id": "1",
...
},
"key": "/apisix/routes/1",
"createdIndex": 2684956
},
{
"modifiedIndex": 2685163,
"value": {
"id": "2",
...
},
"key": "/apisix/routes/2",
"createdIndex": 2685163
}
],
"total": 2
}
```

#### 其他

- Admin API 的端口改为 9180:[#7806](https://github.com/apache/apisix/pull/7806)
- 我们只支持 OpenResty 1.19.3.2 及以上的版本:[#7625](https://github.com/apache/apisix/pull/7625)
- 调整了 Plugin Config 对象的优先级,同名插件配置的优先级由 Consumer > Plugin Config > Route > Service 变成 Consumer > Route > Plugin Config > Service: [#7614](https://github.com/apache/apisix/pull/7614)

### Core

- 集成 grpc-client-nginx-module 到 APISIX: [#7917](https://github.com/apache/apisix/pull/7917)
- k8s 服务发现支持配置多个集群:[#7895](https://github.com/apache/apisix/pull/7895)

### Plugin

- 支持在 opentelemetry 插件里注入指定前缀的 header:[#7822](https://github.com/apache/apisix/pull/7822)
- 新增 openfunction 插件:[#7634](https://github.com/apache/apisix/pull/7634)
- 新增 elasticsearch-logger 插件:[#7643](https://github.com/apache/apisix/pull/7643)
- response-rewrite 插件支持增加响应体:[#7794](https://github.com/apache/apisix/pull/7794)
- log-rorate 支持指定最大大小来切割日志:[#7749](https://github.com/apache/apisix/pull/7749)
- 新增 workflow 插件:
- [#7760](https://github.com/apache/apisix/pull/7760)
- [#7771](https://github.com/apache/apisix/pull/7771)
- 新增 Tencent Cloud Log Service 插件:[#7593](https://github.com/apache/apisix/pull/7593)
- jwt-auth 支持 ES256 算法: [#7627](https://github.com/apache/apisix/pull/7627)
- ldap-auth 内部实现,由 lualdap 换成 lua-resty-ldap:[#7590](https://github.com/apache/apisix/pull/7590)
- prometheus 插件内的 http request metrics 支持通过变量来设置额外的 labels:[#7549](https://github.com/apache/apisix/pull/7549)
- clickhouse-logger 插件支持指定多个 clickhouse endpoints: [#7517](https://github.com/apache/apisix/pull/7517)

### Bugfix

- gRPC 代理设置 :authority 请求头为配置的上游 Host: [#7939](https://github.com/apache/apisix/pull/7939)
- response-rewrite 写入空 body 时有可能导致 AIPSIX 无法响应该请求:[#7836](https://github.com/apache/apisix/pull/7836)
- 修复同时使用 Plugin Config 和 Consumer,有一定概率发生插件配置没有更新的问题:[#7965](https://github.com/apache/apisix/pull/7965)
- 日志切割时,只 reopen 一次日志文件:[#7869](https://github.com/apache/apisix/pull/7869)
- 默认不应开启被动健康检查: [#7850](https://github.com/apache/apisix/pull/7850)
- zipkin 插件即使不进行 sample,也要向上游传递 trace IDs: [#7833](https://github.com/apache/apisix/pull/7833)
- 将 opentelemetry 的 span kind 更正为 server: [#7830](https://github.com/apache/apisix/pull/7830)
- limit-count 插件中,同样配置的不同路由不应该共享同一个计数器:[#7750](https://github.com/apache/apisix/pull/7750)
- 修复偶发的移除 clean_handler 时抛异常的问题: [#7648](https://github.com/apache/apisix/pull/7648)
- 允许配置上游节点时直接使用 IPv6 字面量: [#7594](https://github.com/apache/apisix/pull/7594)
- wolf-rbac 插件调整对错误的响应方式:
- [#7561](https://github.com/apache/apisix/pull/7561)
- [#7497](https://github.com/apache/apisix/pull/7497)
- 当代理到上游之前发生 500 错误时,代理到上游之后运行的插件不应被跳过 [#7703](https://github.com/apache/apisix/pull/7703)
- 当 consumer 上绑定了多个插件且该插件定义了 rewrite 方法时,避免抛出异常 [#7531](https://github.com/apache/apisix/pull/7531)
- 升级 lua-resty-etcd 到 1.8.3。该版本修复了若干问题。 [#7565](https://github.com/apache/apisix/pull/7565)

## 2.15.0

### Change
Expand Down
2 changes: 1 addition & 1 deletion docs/zh/latest/building-apisix.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ curl https://raw.githubusercontent.com/apache/apisix/master/utils/install-depend
然后,创建一个目录并设置环境变量 `APISIX_VERSION`

```shell
APISIX_VERSION='2.15.0'
APISIX_VERSION='2.99.0'
mkdir apisix-${APISIX_VERSION}
```

Expand Down
2 changes: 1 addition & 1 deletion docs/zh/latest/config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "2.15.0",
"version": "2.99.0",
"sidebar": [
{
"type": "doc",
Expand Down
Loading

0 comments on commit 3c18031

Please sign in to comment.