diff --git a/.gitignore b/.gitignore index be5f82991e..628ac5a512 100644 --- a/.gitignore +++ b/.gitignore @@ -30,10 +30,3 @@ dist .tmp apisix-ingress-controller apisix-ingress-controller-conformance-report.yaml - -*.mdx -.cursor/ -.env - -charts/api7ee3 -docs/api diff --git a/releases/README.md b/releases/README.md new file mode 100644 index 0000000000..b9c8472ae6 --- /dev/null +++ b/releases/README.md @@ -0,0 +1,42 @@ + + +## apisix-ingress-controller release process + +1. Create release pull request with release notes. + + 1. Compile release notes detailing features added since the last release and + add release template file to `releases/` directory. The template is defined + by containerd's release tool but refer to previous release files for style + and format help. Name the file using the version. + See [release-tool](https://github.com/containerd/release-tool) + + You can use the following command to generate content + + ```sh + release-tool -l -d -n -t 1.0.0 releases/v1.0.0.toml + ``` + +2. Vote for release + +3. Create tag + +4. Push tag and Github release + +5. Promote on Slack, Twitter, mailing lists, etc diff --git a/releases/v1.0.0.toml b/releases/v1.0.0.toml new file mode 100644 index 0000000000..3779aca343 --- /dev/null +++ b/releases/v1.0.0.toml @@ -0,0 +1,54 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "0.6.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is the first **GA** release. + +## Highlights + +### New Features + +* **Support blocklist-source-range annotation for Ingress source** [#446](https://github.com/apache/apisix-ingress-controller/pull/446) +* **Add ApisixConsumer CRD** [#462](https://github.com/apache/apisix-ingress-controller/pull/462) +* **Support rewrite annotation for Ingress source** [#480](https://github.com/apache/apisix-ingress-controller/pull/480) +* **Support http-to-https redirect annotation for Ingress source** [#484](https://github.com/apache/apisix-ingress-controller/pull/484) +* **Add health check to apisix-admin and make the leader election recyclable** [499](https://github.com/apache/apisix-ingress-controller/pull/499) +* **Support mTLS for ApisixTls** [#492](https://github.com/apache/apisix-ingress-controller/pull/492) +* **Support authentication for ApisixRoute** [#528](https://github.com/apache/apisix-ingress-controller/pull/528) +""" diff --git a/releases/v1.1.0.toml b/releases/v1.1.0.toml new file mode 100644 index 0000000000..1a2a367b30 --- /dev/null +++ b/releases/v1.1.0.toml @@ -0,0 +1,49 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.0.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a **GA** release. + +## Highlights + +### New Features + +* **Support EndpointSlices** [#563](https://github.com/apache/apisix-ingress-controller/pull/563) [#574](https://github.com/apache/apisix-ingress-controller/pull/574) +* **Support UDP definition** [#572](https://github.com/apache/apisix-ingress-controller/pull/572) [#576](https://github.com/apache/apisix-ingress-controller/pull/576) +""" diff --git a/releases/v1.2.0.toml b/releases/v1.2.0.toml new file mode 100644 index 0000000000..013f201e82 --- /dev/null +++ b/releases/v1.2.0.toml @@ -0,0 +1,49 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.1.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a **GA** release. + +## Highlights + +### New Features + +* **Support ingress v1beta1 HTTPS** [#596](https://github.com/apache/apisix-ingress-controller/pull/596) +* **Implement schema API** [#601](https://github.com/apache/apisix-ingress-controller/pull/601) +""" diff --git a/releases/v1.3.0.toml b/releases/v1.3.0.toml new file mode 100644 index 0000000000..0c8bebd61c --- /dev/null +++ b/releases/v1.3.0.toml @@ -0,0 +1,63 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.2.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a **GA** release. + +## Highlights + +### Roadmap + +In next release(v1.4), all custom resource versions will be upgraded to version v2beta3, and version v2 will be GA released in version 1.5. Please go to [#707](https://github.com/apache/apisix-ingress-controller/issues/707) for detail. + +### Breaking Changes + +* In this release(v1.3), the CRD version has been upgraded to `apiextensions.k8s.io/v1`, which means that **the minimum version of Kubernetes supported by APISIX Ingress is v1.16 and later**. +* The ValidatingWebhookConfiguration version has been upgraded to `admissionregistration.k8s.io/v1`, which means that if you want using the default Dynamic Admission Control, you need ensure that the Kubernetes cluster is at least as new as v1.16. + +### New Features + +* We have introduced the **v2beta2 version of ApisixRoute** and will drop support for `v2alpha1` ApisixRoute [#698](https://github.com/apache/apisix-ingress-controller/pull/698) +* Add cert-manager support [#685](https://github.com/apache/apisix-ingress-controller/pull/685) +* Add full compare when APISIX Ingress startup [#680](https://github.com/apache/apisix-ingress-controller/pull/680) +* Support TLS for Ingress v1 [#634](https://github.com/apache/apisix-ingress-controller/pull/634) +* Add admission server and a validation webhook for plugins [#573](https://github.com/apache/apisix-ingress-controller/pull/573) +* Add `timeout` field for ApisixRoute CR [#609](https://github.com/apache/apisix-ingress-controller/pull/609) +* Add new metrics `apisix_ingress_controller_check_cluster_health` and `apisix_ingress_controller_sync_success_total` [#627](https://github.com/apache/apisix-ingress-controller/pull/627) +""" diff --git a/releases/v1.4.0.toml b/releases/v1.4.0.toml new file mode 100644 index 0000000000..be78cfa4a3 --- /dev/null +++ b/releases/v1.4.0.toml @@ -0,0 +1,60 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.3.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a **GA** release. + +## Highlights + +### Roadmap + +In next release(v1.5), custom resource's API version v2 will be GA released. Please go to [#707](https://github.com/apache/apisix-ingress-controller/issues/707) for detail. + +### Breaking Changes + +* In this release(v1.4), all custom resource's API version has been upgraded to `apisix.apache.org/v2beta3`, and we deleted `apisix.apache.org/v2beta3` and `apisix.apache.org/v2alpha1`. Please see [#746](https://github.com/apache/apisix-ingress-controller/pull/746) + +### New Features + +* We have introduced the **`apisix.apache.org/v2beta3` API version for all custom resources** and deleted `v2alpha1` and `v1` API version [#746](https://github.com/apache/apisix-ingress-controller/pull/746) +* Initial support for Gateway API [#789](https://github.com/apache/apisix-ingress-controller/pull/789) +* Add a new ApisixPluginConfig CRD for reuse common plugin configurations. [#638](https://github.com/apache/apisix-ingress-controller/issues/638) +* Support regex in Ingress path [#779](https://github.com/apache/apisix-ingress-controller/pull/779) +* We can update the load balancing IP of the Ingress, and it can work in various public cloud environments [#740](https://github.com/apache/apisix-ingress-controller/pull/740) +""" diff --git a/releases/v1.4.1.toml b/releases/v1.4.1.toml new file mode 100644 index 0000000000..a72ce8da75 --- /dev/null +++ b/releases/v1.4.1.toml @@ -0,0 +1,63 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.4.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a Patch version release. + +## Highlights + +### Roadmap + +In next release(v1.5), custom resource's API version v2 will be GA released. Please go to [#707](https://github.com/apache/apisix-ingress-controller/issues/707) for detail. + +### Bug fixes + +* fix: consumer name contain "-" [#828](https://github.com/apache/apisix-ingress-controller/pull/828) +* fix: fix typo in ApidixRoute CRD [#830](https://github.com/apache/apisix-ingress-controller/pull/830) +* fix: add v2beta3 register resources [#833](https://github.com/apache/apisix-ingress-controller/pull/833) +* fix: ApisixClusterConfig e2e test case [#859](https://github.com/apache/apisix-ingress-controller/pull/859) +* fix: objects get from lister must be treated as read-only [#829](https://github.com/apache/apisix-ingress-controller/pull/829) +* fix ingress delete panic [#872](https://github.com/apache/apisix-ingress-controller/pull/872) +* fix json unmarshal error when list plguins [#888](https://github.com/apache/apisix-ingress-controller/pull/888) +* fix: check if stream_routes is disabled [#868](https://github.com/apache/apisix-ingress-controller/pull/868) +* fix: avoid create pluginconfig in the tranlsation of route [#845](https://github.com/apache/apisix-ingress-controller/pull/845) +* fix: filter useless pod update event [#894](https://github.com/apache/apisix-ingress-controller/pull/894) +* fix: fix ep resourceVersion comparison and clean up [#901](https://github.com/apache/apisix-ingress-controller/pull/901) +* fix: ingress update event handler not filter by watching namespaces [#947](https://github.com/apache/apisix-ingress-controller/pull/) +""" diff --git a/releases/v1.5.0.toml b/releases/v1.5.0.toml new file mode 100644 index 0000000000..7d83678c38 --- /dev/null +++ b/releases/v1.5.0.toml @@ -0,0 +1,51 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.4.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a feature release. + +## Highlights + +The API version of all custom resources has been upgraded to v2 in this release and mark v2beta3 as deprecated. We plan to remove the v2beta2 API version in the next release. Please go to [#707](https://github.com/apache/apisix-ingress-controller/issues/707) for detail. + +We have added partial support for Gateway API, which is not enabled by default, you can set `enable_gateway_api=true` to enable it. + +Ingress resources can now use all APISIX plugin configurations by setting the annotation `k8s.apisix.apache.org/plugin-config-name=xxx`. + +""" diff --git a/releases/v1.5.1.toml b/releases/v1.5.1.toml new file mode 100644 index 0000000000..20704a6cf2 --- /dev/null +++ b/releases/v1.5.1.toml @@ -0,0 +1,43 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.5.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a Patch version release. + +""" diff --git a/releases/v1.6.0.toml b/releases/v1.6.0.toml new file mode 100644 index 0000000000..3330ec9c6e --- /dev/null +++ b/releases/v1.6.0.toml @@ -0,0 +1,51 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.5.0" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a feature release. + +## Highlights + +The API version of all custom resources has been upgraded to v2 in v1.5 release. In 1.6 we removed the v2beta2 API. Please go to [#707](https://github.com/apache/apisix-ingress-controller/issues/707) for detail. + +In this version we added more Gateway API support. e.g. TCPRoute/UDPRoute/HTTPRouteFilter etc. + +From this version, we can proxy external services and external name services. And integrated with the service discovery component. + +""" diff --git a/releases/v1.8.0.toml b/releases/v1.8.0.toml new file mode 100644 index 0000000000..466e494f09 --- /dev/null +++ b/releases/v1.8.0.toml @@ -0,0 +1,53 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# commit to be tagged for new release +commit = "HEAD" + +# project_name is used to refer to the project in the notes +project_name = "apisix-ingress-controller" + +# github_repo is the github project, only github is currently supported +github_repo = "apache/apisix-ingress-controller" + +# match_deps is a pattern to determine which dependencies should be included +# as part of this release. The changelog will also include changes for these +# dependencies based on the change in the dependency's version. +match_deps = "^github.com/(apache/[a-zA-Z0-9-]+)$" + +# previous release of this project for determining changes +previous = "1.7.1" + +# pre_release is whether to include a disclaimer about being a pre-release +pre_release = false + +# preface is the description of the release which precedes the author list +# and changelog. This description could include highlights as well as any +# description of changes. Use markdown formatting. +preface = """\ +This is a feature release. + +## Highlights + +This release contains following new features: +- feat: add skip_mtls_uri_regex support for ApisixTls +- feat: add support for multiple labels with same key +- feat: Allow merging nested values in plugin config secretRef +- feat: allow configuring timeout and retries for upstream with ingress + +And also contains few bug fixes along with an upgrade of etcd-adapter package. + +"""