diff --git a/Changelog.tengine.md b/Changelog.tengine.md
index e0ae151..8e7064d 100644
--- a/Changelog.tengine.md
+++ b/Changelog.tengine.md
@@ -1,19 +1,47 @@
# Changelog
-### 1.0.0
+### 1.1.0
-**Image:** `tengine-ingress-registry.cn-hangzhou.cr.aliyuncs.com/tengine/tengine-ingress:1.0.0`
+**Image:** `tengine-ingress-registry.cn-hangzhou.cr.aliyuncs.com/tengine/tengine-ingress:1.1.0`
+
+_New Features:_
-- Dynamically reconfigure the servers, locations and upstreams for Ingress, Secret, Service and Endpoint changes, without reloading or restarting worker processes.
-- Dynamically reconfigure canary routing based on standard and custom HTTP headers, header value, and weights.
-- Dynamically reconfigure timeout setting, SSL Redirects, CORS and enabling/disabling robots for the ingress/path.
-- Dynamically reconfigure certificates and keys.
-- Support for hybrid ECC and RSA certificates for the same ingress/path.
-- HTTP/3 support (QUIC v1 and draft-29).
-- Supports watching Ingress and Secrets in a dedicated storage k8s cluster via kubeconfig.
-- Watch changes in Ingress and Secrets and do rolling upgrades for associated StatefulSet of Tengine-Ingress, without tengine reload.
-- New CRD IngressCheckSum and SecretCheckSum to verify the integrity of Ingress and Secret in the cluster.
+- Dynamically configure different TLS protocols for different server names without tengine reload @lianglli
+- Dynamically configure multiple default TLS certificates for client-hello without SNI @lianglli
+- Supports IngressClass @lianglli
+- Dynamically configure canary routing based on multiple values of a specific header, cookie or query parameter without tengine reload @lianglli
+- Dynamically configure canary routing based on the modulo operation for a specific header, cookie or query parameter without tengine reload @lianglli
+- Dynamically configure canary routing to add/append custom headers or add query parameter to the HTTP request without tengine reload @lianglli
+- Dynamically configure canary routing to add custom headers to the HTTP response without tengine reload @lianglli
+- Supports total weight of canary ingress @lianglli
+- Supports multiple CORS origins @lianglli
+- Supports 'user' config of tengine worker processes @lianglli
+- Supports watch changes in Ingress/Secret and do rolling upgrades in one time @lianglli
_Changes:_
-_Documentation:_
+- Remove unnecessary and duplicate location from tengine template @lianglli
+- Update obsolete and removed APIs of Go @lianglli
+- Stopping Tengine process with layer4 LB gracefully @lianglli
+
+_Bugs:_
+
+- The /configuration/certs?hostname=_ return 500 @drawing
+- Duplicate location robots.txt and unknown variable "https_use_timing" in static config mode @lianglli
+- Configmap config "use-ingress-storage-cluster" is not working @lianglli
+- HTTP routes with static config mode is not working @lianglli
+- Dynamically reconfigure CORS for the ingress/path is not working @lianglli
+
+### 1.0.0
+
+**Image:** `tengine-ingress-registry.cn-hangzhou.cr.aliyuncs.com/tengine/tengine-ingress:1.0.0`
+
+- Dynamically configure the servers, locations and upstreams for Ingress, Secret, Service and Endpoint changes, without reloading or restarting worker processes. @lianglli
+- Dynamically configure canary routing based on standard and custom HTTP headers, header value, and weights. @lianglli
+- Dynamically configure timeout setting, SSL Redirects, CORS and enabling/disabling robots for the ingress/path. @lianglli
+- Dynamically configure certificates and keys. @lianglli
+- Support for hybrid ECC and RSA certificates for the same ingress/path. @lianglli
+- HTTP/3 support (QUIC v1 and draft-29). @lianglli
+- Supports watching Ingress and Secrets in a dedicated storage k8s cluster via kubeconfig. @lianglli
+- Watch changes in Ingress and Secrets and do rolling upgrades for associated StatefulSet of Tengine-Ingress, without tengine reload. @lianglli
+- New CRD IngressCheckSum and SecretCheckSum to verify the integrity of Ingress and Secret in the cluster. @lianglli
diff --git a/README.md b/README.md
index ee30a4c..386f737 100644
--- a/README.md
+++ b/README.md
@@ -18,12 +18,17 @@ Tengine-Ingress is an Ingress controller for Kubernetes using [Tengine](https://
Tengine-Ingress supports the standard Ingress specification based on [kubernetes/ingress-nginx](https://github.com/kubernetes/ingress-nginx) repo.
## Features
-* Dynamically reconfigure the servers, locations and upstreams for Ingress, Secret, Service and Endpoint changes, without reloading or restarting worker processes.
-* Dynamically reconfigure canary routing based on standard and custom HTTP headers, header value, and weights.
-* Dynamically reconfigure timeout setting, SSL Redirects, CORS and enabling/disabling robots for the ingress/path.
-* Dynamically reconfigure certificates and keys.
-* Support for hybrid ECC and RSA certificates for the same ingress/path.
+* Dynamically configure the servers, locations and upstreams for Ingress, Secret, Service and Endpoint changes, without reloading or restarting worker processes.
* HTTP/3 support (QUIC v1 and draft-29).
+* Dynamically configure different TLS protocols for different server names.
+* Dynamically configure multiple default TLS certificates for client-hello without SNI.
+* Support for hybrid ECC and RSA certificates for the same ingress/path.
+* Dynamically configure certificates and keys.
+* Dynamically configure canary routing based on multiple values of a specific header, cookie or query parameter.
+* Dynamically configure canary routing based on multiple upstream according to weight.
+* Dynamically configure timeout setting, SSL Redirects, CORS and enabling/disabling robots for the ingress/path.
+* Dynamically configure canary routing to add/append custom headers or add query parameter to the HTTP request.
+* Dynamically configure canary routing to add custom headers to the HTTP response.
* Supports watching Ingress and Secrets in a dedicated storage k8s cluster via kubeconfig.
* Watch changes in Ingress and Secrets and do rolling upgrades for associated StatefulSet of Tengine-Ingress, without tengine reload.
* New CRD IngressCheckSum and SecretCheckSum to verify the integrity of Ingress and Secret in the cluster.
@@ -35,15 +40,15 @@ Supported linux distributions:
* [Alpine](https://hub.docker.com/_/alpine)
Supported tags:
-* `1.0.0` : based on image [Anolis](https://hub.docker.com/r/openanolis/anolisos)
-* `1.0.0-alpine` : based on image [Alpine](https://hub.docker.com/_/alpine)
+* `1.1.0` : based on image [Anolis](https://hub.docker.com/r/openanolis/anolisos)
+* `1.1.0-alpine` : based on image [Alpine](https://hub.docker.com/_/alpine)
Supported architectures:
* AMD64, ARM64
Pull image command:
```
-docker pull tengine-ingress-registry.cn-hangzhou.cr.aliyuncs.com/tengine/tengine-ingress:1.0.0
+docker pull tengine-ingress-registry.cn-hangzhou.cr.aliyuncs.com/tengine/tengine-ingress:1.1.0
```
### Building from source
@@ -56,10 +61,10 @@ Supported Linux distributions:
Build image command:
```
# First: build tengine image
-docker build --no-cache --build-arg BASE_IMAGE="docker.io/openanolis/anolisos:latest" --build-arg LINUX_RELEASE="anolisos" -t tengine:3.0.0 images/tengine/rootfs/
+docker build --no-cache --build-arg BASE_IMAGE="docker.io/openanolis/anolisos:latest" --build-arg LINUX_RELEASE="anolisos" -t tengine:3.1.0 images/tengine/rootfs/
# Second: build tengine-ingress image
-docker build --no-cache --build-arg BASE_IMAGE="tengine:3.0.0" --build-arg VERSION="1.0.0" -f build/Dockerfile -t tengine-ingress:1.0.0 .
+docker build --no-cache --build-arg BASE_IMAGE="tengine:3.1.0" --build-arg VERSION="1.1.0" -f build/Dockerfile -t tengine-ingress:1.1.0 .
```
## Changelog
@@ -71,7 +76,7 @@ For detailed changes for each release; please check the [Changelog.tengine.md](C
| | Tengine-Ingress Version | Tengine Version | K8s Supported Version | Anolis Linux Version | Alpine Linux Version | Helm Chart Version |
|:--:|-------------------------|-----------------|-----------------------|----------------------|----------------------|--------------------|
| 🔄 | **v1.0.0** | v3.0.0 | 1.27,1.26,1.25,1.24
1.23,1.22,1.21,1.20 | 8.6 | 3.18.2 | |
-| 🔄 | | | | | | |
+| 🔄 | **v1.1.0** | v3.1.0 | 1.28,1.27,1.26,1.25
1.24,1.23,1.22,1.21
1.20 | 8.6 | 3.18.4 | |
## Documentation
diff --git a/build/build_ingress.sh b/build/build_ingress.sh
index 4f9bab5..ea0261b 100755
--- a/build/build_ingress.sh
+++ b/build/build_ingress.sh
@@ -20,7 +20,7 @@ fi
ver=$1
if [ -z "$ver" ]; then
- ver="1.0.0"
+ ver="1.1.0"
fi
set -o errexit
diff --git a/images/tengine/rootfs/build.sh b/images/tengine/rootfs/build.sh
index 179a770..9366bbb 100755
--- a/images/tengine/rootfs/build.sh
+++ b/images/tengine/rootfs/build.sh
@@ -6,7 +6,7 @@ set -o pipefail
export DEBIAN_FRONTEND=noninteractive
-export TENGINE_VERSION=3.0.0-1
+export TENGINE_VERSION=3.1.0
export XQUIC_VERSION=1.6.0
export XUDP_LIB_VERSION=1.0.2
export BABASSL_VERSION=8.3.2
diff --git a/images/tengine/rootfs/source/tengine-3.0.0-1.tar.gz b/images/tengine/rootfs/source/tengine-3.0.0-1.tar.gz
deleted file mode 100644
index b7aff80..0000000
Binary files a/images/tengine/rootfs/source/tengine-3.0.0-1.tar.gz and /dev/null differ
diff --git a/images/tengine/rootfs/source/tengine-3.1.0.tar.gz b/images/tengine/rootfs/source/tengine-3.1.0.tar.gz
new file mode 100644
index 0000000..baa86aa
Binary files /dev/null and b/images/tengine/rootfs/source/tengine-3.1.0.tar.gz differ