This is an automated email from the ASF dual-hosted git repository.
alinsran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-ingress-controller.git
The following commit(s) were added to refs/heads/master by this push:
new 2d07436d chore: v2.0.0 release (#2676)
2d07436d is described below
commit 2d07436d357293b7b2fd4e08ca2a466c0e8509b7
Author: AlinsRan <[email protected]>
AuthorDate: Wed Dec 10 19:51:42 2025 +0800
chore: v2.0.0 release (#2676)
---
CHANGELOG.md | 121 +++++++++++++++++++++
Makefile | 7 +-
config/default/kustomization.yaml | 218 +++++++++++++++++++-------------------
config/manager/kustomization.yaml | 3 +
config/manager/manager.yaml | 41 ++++++-
docs/en/latest/developer-guide.md | 14 +++
docs/en/latest/upgrade-guide.md | 12 +--
releases/v2.0.0.toml | 84 +++++++++++++++
8 files changed, 380 insertions(+), 120 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 885ea3d2..8750568b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@
# Table of Contents
+- [2.0.0](#200)
- [2.0.0-rc5](#200-rc5)
- [2.0.0-rc4](#200-rc4)
- [2.0.0-rc3](#200-rc3)
@@ -44,6 +45,126 @@
- [0.2.0](#020)
- [0.1.0](#010)
+# 2.0.0
+
+apisix-ingress-controller 2.0.0
+
+Welcome to the 2.0.0 release of apisix-ingress-controller!
+
+## Highlights
+
+- **Ingress Annotation System Greatly Expanded**: All ingress annotations
supported in previous releases have now been fully implemented with a
consistent and robust design, ensuring complete backward compatibility.
+- **Multi-Data-Plane Deployment Mode**: Introduced flexible deployment options
supporting **multiple data plane modes**, enabling more scalable and customized
environments.
+- **Configurable Gateway API Enable/Disable**: Added the ability to **toggle
Gateway API support**, offering better control for deployments that do not rely
on Gateway API.
+
+---
+
+## Features
+
+* feat: support benchmark test
[#2663](https://github.com/apache/apisix-ingress-controller/pull/2663)
+* feat: support disable gateway-api
[#2672](https://github.com/apache/apisix-ingress-controller/pull/2672)
+* feat: support deployment of multiple data plane modes
[#2647](https://github.com/apache/apisix-ingress-controller/pull/2647)
+* feat: support regex route for ingress annotations
[#2640](https://github.com/apache/apisix-ingress-controller/pull/2640)
+* feat: support forward-auth for ingress annotations
[#2641](https://github.com/apache/apisix-ingress-controller/pull/2641)
+* feat: support ip restriction for ingress annotations
[#2642](https://github.com/apache/apisix-ingress-controller/pull/2642)
+* feat: support cross-namespace access service for ingress annotations
[#2634](https://github.com/apache/apisix-ingress-controller/pull/2634)
+* feat: support response rewrite annotations for ingress
[#2638](https://github.com/apache/apisix-ingress-controller/pull/2638)
+* feat: support proxy rewrite annotations for ingress
[#2632](https://github.com/apache/apisix-ingress-controller/pull/2632)
+* feat: support auth-type for ingress annotations
[#2636](https://github.com/apache/apisix-ingress-controller/pull/2636)
+* feat: support allow/block http_methods for ingress annotations
[#2623](https://github.com/apache/apisix-ingress-controller/pull/2623)
+* feat: support plugin config annotations for ingress
[#2627](https://github.com/apache/apisix-ingress-controller/pull/2627)
+* feat: support csrf annotations for ingress
[#2626](https://github.com/apache/apisix-ingress-controller/pull/2626)
+* feat: support websocket annotations for ingress
[#2621](https://github.com/apache/apisix-ingress-controller/pull/2621)
+* feat: support cors annotations for ingress
[#2618](https://github.com/apache/apisix-ingress-controller/pull/2618)
+* feat: support redirect for ingress annotations
[#2619](https://github.com/apache/apisix-ingress-controller/pull/2619)
+* feat: support kubernetes.io/ingress.class annotations
[#2615](https://github.com/apache/apisix-ingress-controller/pull/2615)
+* feat: support upstream scheme/retries/timeouts via ingress annotations
[#2614](https://github.com/apache/apisix-ingress-controller/pull/2614)
+
+---
+
+## Bug Fixes
+
+* fix: wss related tests are unstable
[#2675](https://github.com/apache/apisix-ingress-controller/pull/2675)
+* fix(atls): apply updated certificates when TLS secrets change
[#2674](https://github.com/apache/apisix-ingress-controller/pull/2674)
+* fix: record attachedRoutes and supportedkinds for gateway status
[#2670](https://github.com/apache/apisix-ingress-controller/pull/2670)
+* fix: allow webhook calls to fail
[#2671](https://github.com/apache/apisix-ingress-controller/pull/2671)
+* fix(ApisixUpstream): cannot recognize kind
[#2622](https://github.com/apache/apisix-ingress-controller/pull/2622)
+* fix(ApisixRoute): failed to delete stream_route
[#2624](https://github.com/apache/apisix-ingress-controller/pull/2624)
+* fix: incorrect parameters in log message
[#2613](https://github.com/apache/apisix-ingress-controller/pull/2613)
+* fix: apisix global rule support plugins secret reference
[#2612](https://github.com/apache/apisix-ingress-controller/pull/2612)
+
+Please try out the release binaries and report any issues at
+https://github.com/apache/apisix-ingress-controller/issues.
+
+### Contributors
+
+* AlinsRan
+* Ashing Zheng
+* Traky Deng
+
+### Changes
+<details><summary>40 commits</summary>
+<p>
+
+ *
[`b70e22eb`](https://github.com/apache/apisix-ingress-controller/commit/b70e22ebac75a4e790d770cd49fbfba9730c1664)
fix: wss related tests are unstable (#2675)
+ *
[`0c0c5f95`](https://github.com/apache/apisix-ingress-controller/commit/0c0c5f95f0274c673afe3cf4212253d760c59b15)
feat: support benchmark test (#2663)
+ *
[`ad223606`](https://github.com/apache/apisix-ingress-controller/commit/ad223606d292bae50bbfaada1ad5d1e32cc11001)
fix(atls): apply updated certificates when TLS secrets change (#2674)
+ *
[`4f9cd000`](https://github.com/apache/apisix-ingress-controller/commit/4f9cd000ce62b4db72b3746dd8a0f67aa4c17ded)
feat: support disable gateway-api (#2672)
+ *
[`2bab77aa`](https://github.com/apache/apisix-ingress-controller/commit/2bab77aa9403993bb637ae48987194aadb47280d)
fix: record attachedRoutes and supportedkinds for gateway status (#2670)
+ *
[`466ea420`](https://github.com/apache/apisix-ingress-controller/commit/466ea420ba9995e88271618d8516c42999e475c1)
fix: allow webhook calls to fail (#2671)
+ *
[`6a282419`](https://github.com/apache/apisix-ingress-controller/commit/6a282419a935c41f0bc5316a9748191c139523c1)
docs: remove allowedRoutes from unsupported resource (#2659)
+ *
[`bc2fe905`](https://github.com/apache/apisix-ingress-controller/commit/bc2fe905391b00f0b9bae94cdd5bf1a4d71d40bf)
docs: add configuration troubleshooting reference docs (#2646)
+ *
[`ea34713d`](https://github.com/apache/apisix-ingress-controller/commit/ea34713dc09e8b9c2563418f396faaa2527b8da5)
docs: update ApisixRoute stream support and fix typo (#2662)
+ *
[`a9513d2a`](https://github.com/apache/apisix-ingress-controller/commit/a9513d2a5208ecfe3c60777c5467e2dff1913e0b)
feat: support deployment of multiple data plane modes (#2647)
+ *
[`6f0e78cf`](https://github.com/apache/apisix-ingress-controller/commit/6f0e78cfe8a702ef66fa8c448ee5381f8422e430)
fix(ApisixUpstream): cannot recognize kind (#2622)
+ *
[`0d8e880d`](https://github.com/apache/apisix-ingress-controller/commit/0d8e880d8660deb29f9f28149804daeb23c5cff1)
docs: update ingress annotation docs (#2645)
+ *
[`5a5729ca`](https://github.com/apache/apisix-ingress-controller/commit/5a5729cac39e3672b858215c1cd3ff84bea616c5)
docs: update apisix ingress controller docs helm repo (#2649)
+ *
[`b21b6e9d`](https://github.com/apache/apisix-ingress-controller/commit/b21b6e9d77cd36cc314aa58b7fd884e7966304b5)
feat: support regex route for ingress annotations (#2640)
+ *
[`e7d192b6`](https://github.com/apache/apisix-ingress-controller/commit/e7d192b6f8c2b754584cb7d6e63f907ea59202a7)
feat: support forward-auth for ingress annotations (#2641)
+ *
[`d3bc2a53`](https://github.com/apache/apisix-ingress-controller/commit/d3bc2a53f3787725e357773d7cfde2f9e5243ac6)
feat: support ip restriction for ingress annotations (#2642)
+ *
[`0c7d37f7`](https://github.com/apache/apisix-ingress-controller/commit/0c7d37f79498642e4d31bd7dd17e7709e0551020)
docs: fix link to gateway api reference in doc (#2635)
+ *
[`9baf472c`](https://github.com/apache/apisix-ingress-controller/commit/9baf472c58d8932e7a2ceff4c40d9933e0d0c566)
feat: support cross-namespace access service for ingress annotations (#2634)
+ *
[`9be64b6a`](https://github.com/apache/apisix-ingress-controller/commit/9be64b6abf273e3912f708012e712236050dd5fd)
feat: support response rewrite annotations for ingress (#2638)
+ *
[`d1abfd59`](https://github.com/apache/apisix-ingress-controller/commit/d1abfd59e51d4c442daa47b6c6a27441c5312acc)
test: fix unstable websocket annotation test (#2637)
+ *
[`9d4accd5`](https://github.com/apache/apisix-ingress-controller/commit/9d4accd50dc45423c23416bbeca6a1cd28ec7844)
feat: support proxy rewrite annotations for ingress (#2632)
+ *
[`4cd10056`](https://github.com/apache/apisix-ingress-controller/commit/4cd100568558e482b96f8fcdd5d91a3bbeb18d0d)
feat: support auth-type for ingress annotations (#2636)
+ *
[`f4181872`](https://github.com/apache/apisix-ingress-controller/commit/f4181872634e81eb8050e8fe1115e5d0dc073357)
test: use internal service instead of third party service (#2629)
+ *
[`ee561f73`](https://github.com/apache/apisix-ingress-controller/commit/ee561f73d1ed9723a86ca8d9c9682b9f38b05a20)
feat: support allow/block http_methods for ingress annotations (#2623)
+ *
[`36a3196e`](https://github.com/apache/apisix-ingress-controller/commit/36a3196e58e14bcdcd643f99f3a3477eee76be46)
fix(ApisixRoute): failed to delete stream_route (#2624)
+ *
[`15932856`](https://github.com/apache/apisix-ingress-controller/commit/159328561d2e61091247a26a6df7eae31c02035a)
feat: support plugin config annotations for ingress (#2627)
+ *
[`1af0dc74`](https://github.com/apache/apisix-ingress-controller/commit/1af0dc746ea8d1dcf9771f8a37c4a30a5f770dbb)
docs: correct health check unhealthy timeout description (#2625)
+ *
[`b25c4b41`](https://github.com/apache/apisix-ingress-controller/commit/b25c4b41b9d0c243e3a977e4d47b3c41574fcc8c)
feat: support csrf annotations for ingress (#2626)
+ *
[`f554569c`](https://github.com/apache/apisix-ingress-controller/commit/f554569cf19ecafba3191bb0e747e78a0ecbb8c0)
feat: support websocket annotations for ingress (#2621)
+ *
[`6b708576`](https://github.com/apache/apisix-ingress-controller/commit/6b7085765c99815a9fef3f1838cea85dcecee747)
feat: support cors annotations for ingress (#2618)
+ *
[`d6cf0eaa`](https://github.com/apache/apisix-ingress-controller/commit/d6cf0eaaad1858e89f95fff9300c13a241ab270a)
feat: support redirect for ingress annotations (#2619)
+ *
[`e3c2f816`](https://github.com/apache/apisix-ingress-controller/commit/e3c2f816cb06c29455384899cefa2af6e2242b9b)
chore(e2e-test): optimize the startup speed of OpenResty/Nginx (#2617)
+ *
[`cbfa0389`](https://github.com/apache/apisix-ingress-controller/commit/cbfa038979158331de65b20aeb489b478b581697)
feat: support kubernetes.io/ingress.class annotations (#2615)
+ *
[`2dc7ae60`](https://github.com/apache/apisix-ingress-controller/commit/2dc7ae601eed1e00b551b5be427ce8156a7be1b8)
feat: support upstream scheme/retries/timeouts via ingress annotations (#2614)
+ *
[`16f43280`](https://github.com/apache/apisix-ingress-controller/commit/16f43280defa01186e3b88d94638cfa9b15bbf43)
fix: incorrect parameters in log message (#2613)
+ *
[`50dda249`](https://github.com/apache/apisix-ingress-controller/commit/50dda249d48f2483b5cebea310bab0a2b0ec4a0a)
docs: update reference configuration examples (#2606)
+ *
[`06e00cd3`](https://github.com/apache/apisix-ingress-controller/commit/06e00cd31d4bd6aad1c06858e691da1618810e97)
fix: apisix global rule support plugins secret reference (#2612)
+ *
[`0f702bd9`](https://github.com/apache/apisix-ingress-controller/commit/0f702bd99d1124fff7ba0799732ffe0fb0239ffb)
docs: remove a link from CRD docs (#2611)
+ *
[`37a0b075`](https://github.com/apache/apisix-ingress-controller/commit/37a0b0756a017aae65a68e85877a126a213d5260)
chore: add annotations extractor interface (#2610)
+ *
[`3bee9ac2`](https://github.com/apache/apisix-ingress-controller/commit/3bee9ac20098aa88a8ea7895c03c0aa80e5271e6)
chore(e2e-test): update adc to 0.21.1 (#2609)
+</p>
+</details>
+
+### Dependency Changes
+
+* **github.com/clipperhouse/displaywidth** v0.3.1 **_new_**
+* **github.com/clipperhouse/stringish** v0.1.1 **_new_**
+* **github.com/clipperhouse/uax29/v2** v2.2.0 **_new_**
+* **github.com/mattn/go-runewidth** v0.0.19 **_new_**
+* **github.com/olekukonko/cat** 50322a0618f6 **_new_**
+* **github.com/olekukonko/errors** v1.1.0 **_new_**
+* **github.com/olekukonko/ll** v0.1.2 **_new_**
+* **github.com/olekukonko/tablewriter** v1.1.1 **_new_**
+* **github.com/panjf2000/ants/v2** v2.11.3 **_new_**
+* **k8s.io/code-generator** v0.32.3 **_new_**
+* **k8s.io/gengo/v2** 2b36238f13e9 **_new_**
+
+Previous release can be found at
[2.0.0-rc5](https://github.com/apache/apisix-ingress-controller/releases/tag/2.0.0-rc5)
+
# 2.0.0-rc5
apisix-ingress-controller 2.0.0-rc5
diff --git a/Makefile b/Makefile
index 037621e5..27a941a6 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@
# Image URL to use all building/pushing image targets
-VERSION ?= 2.0.0-rc5
+VERSION ?= 2.0.0
RELEASE_SRC = apache-apisix-ingress-controller-${VERSION}-src
@@ -268,7 +268,7 @@ docker-buildx: ## Build and push docker image for the
manager for cross-platform
.PHONY: build-installer
build-installer: manifests generate kustomize ## Generate a consolidated YAML
with CRDs and deployment.
mkdir -p dist
- cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
+ cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
sidecar=ghcr.io/api7/adc:$(ADC_VERSION)
$(KUSTOMIZE) build config/default > dist/install.yaml
##@ Deployment
@@ -309,7 +309,7 @@ uninstall: manifests kustomize ## Uninstall CRDs from the
K8s cluster specified
.PHONY: deploy
deploy: manifests kustomize ## Deploy controller to the K8s cluster specified
in ~/.kube/config.
- cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
+ cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
sidecar=ghcr.io/api7/adc:$(ADC_VERSION)
$(KUSTOMIZE) build config/default | $(KUBECTL) apply -f -
.PHONY: undeploy
@@ -485,7 +485,6 @@ release-src:
--exclude docs \
--exclude examples \
--exclude scripts \
- --exclude samples \
--exclude test \
--exclude release \
--exclude $(RELEASE_SRC).tgz \
diff --git a/config/default/kustomization.yaml
b/config/default/kustomization.yaml
index b822a150..48795b19 100644
--- a/config/default/kustomization.yaml
+++ b/config/default/kustomization.yaml
@@ -20,18 +20,18 @@ resources:
- ../manager
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK]
prefix including the one in
# crd/kustomization.yaml
-- ../webhook
+#- ../webhook
# [CERTMANAGER] To enable cert-manager, uncomment all sections with
'CERTMANAGER'. 'WEBHOOK' components are required.
-- ../certmanager
+#- ../certmanager
# [PROMETHEUS] To enable prometheus monitor, uncomment all sections with
'PROMETHEUS'.
#- ../prometheus
# [METRICS] Expose the controller manager metrics service.
- metrics_service.yaml
- ../samples
-- ../network-policy
+#- ../network-policy
# Uncomment the patches line if you enable Metrics, and/or are using webhooks
and cert-manager
-patches:
+#patches:
# [METRICS] The following patch will enable the metrics endpoint using HTTPS
and the port :8443.
# More info: https://book.kubebuilder.io/reference/metrics
#- path: manager_patch.yaml
@@ -40,115 +40,115 @@ patches:
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK]
prefix including the one in
# crd/kustomization.yaml
-- path: manager_webhook_patch.yaml
- target:
- kind: Deployment
- name: controller-manager
+#- path: manager_webhook_patch.yaml
+# target:
+# kind: Deployment
+# name: controller-manager
# [CERTMANAGER] To enable cert-manager, uncomment all sections with
'CERTMANAGER'.
# Uncomment 'CERTMANAGER' sections in crd/kustomization.yaml to enable the CA
injection in the admission webhooks.
# 'CERTMANAGER' needs to be enabled to use ca injection
-- path: webhookcainjection_patch.yaml
- target:
- kind: ValidatingWebhookConfiguration
- name: validating-webhook-configuration
+#- path: webhookcainjection_patch.yaml
+# target:
+# kind: ValidatingWebhookConfiguration
+# name: validating-webhook-configuration
# [CERTMANAGER] To enable cert-manager, uncomment all sections with
'CERTMANAGER' prefix.
# Uncomment the following replacements to add the cert-manager CA injection
annotations
-replacements:
- - source: # Add cert-manager annotation to ValidatingWebhookConfiguration,
MutatingWebhookConfiguration and CRDs
- kind: Certificate
- group: cert-manager.io
- version: v1
- name: serving-cert # this name should match the one in certificate.yaml
- fieldPath: .metadata.namespace # namespace of the certificate CR
- targets:
- - select:
- kind: ValidatingWebhookConfiguration
- fieldPaths:
- - .metadata.annotations.[cert-manager.io/inject-ca-from]
- options:
- delimiter: '/'
- index: 0
- create: true
- - select:
- kind: MutatingWebhookConfiguration
- fieldPaths:
- - .metadata.annotations.[cert-manager.io/inject-ca-from]
- options:
- delimiter: '/'
- index: 0
- create: true
- - select:
- kind: CustomResourceDefinition
- fieldPaths:
- - .metadata.annotations.[cert-manager.io/inject-ca-from]
- options:
- delimiter: '/'
- index: 0
- create: true
- - source:
- kind: Certificate
- group: cert-manager.io
- version: v1
- name: serving-cert # this name should match the one in certificate.yaml
- fieldPath: .metadata.name
- targets:
- - select:
- kind: ValidatingWebhookConfiguration
- fieldPaths:
- - .metadata.annotations.[cert-manager.io/inject-ca-from]
- options:
- delimiter: '/'
- index: 1
- create: true
- - select:
- kind: MutatingWebhookConfiguration
- fieldPaths:
- - .metadata.annotations.[cert-manager.io/inject-ca-from]
- options:
- delimiter: '/'
- index: 1
- create: true
- - select:
- kind: CustomResourceDefinition
- fieldPaths:
- - .metadata.annotations.[cert-manager.io/inject-ca-from]
- options:
- delimiter: '/'
- index: 1
- create: true
- - source: # Add cert-manager annotation to the webhook Service
- kind: Service
- version: v1
- name: webhook-service
- fieldPath: .metadata.name # namespace of the service
- targets:
- - select:
- kind: Certificate
- group: cert-manager.io
- version: v1
- fieldPaths:
- - .spec.dnsNames.0
- - .spec.dnsNames.1
- options:
- delimiter: '.'
- index: 0
- create: true
- - source:
- kind: Service
- version: v1
- name: webhook-service
- fieldPath: .metadata.namespace # namespace of the service
- targets:
- - select:
- kind: Certificate
- group: cert-manager.io
- version: v1
- fieldPaths:
- - .spec.dnsNames.0
- - .spec.dnsNames.1
- options:
- delimiter: '.'
- index: 1
- create: true
+# replacements:
+# - source: # Add cert-manager annotation to ValidatingWebhookConfiguration,
MutatingWebhookConfiguration and CRDs
+# kind: Certificate
+# group: cert-manager.io
+# version: v1
+# name: serving-cert # this name should match the one in certificate.yaml
+# fieldPath: .metadata.namespace # namespace of the certificate CR
+# targets:
+# - select:
+# kind: ValidatingWebhookConfiguration
+# fieldPaths:
+# - .metadata.annotations.[cert-manager.io/inject-ca-from]
+# options:
+# delimiter: '/'
+# index: 0
+# create: true
+# - select:
+# kind: MutatingWebhookConfiguration
+# fieldPaths:
+# - .metadata.annotations.[cert-manager.io/inject-ca-from]
+# options:
+# delimiter: '/'
+# index: 0
+# create: true
+# - select:
+# kind: CustomResourceDefinition
+# fieldPaths:
+# - .metadata.annotations.[cert-manager.io/inject-ca-from]
+# options:
+# delimiter: '/'
+# index: 0
+# create: true
+# - source:
+# kind: Certificate
+# group: cert-manager.io
+# version: v1
+# name: serving-cert # this name should match the one in certificate.yaml
+# fieldPath: .metadata.name
+# targets:
+# - select:
+# kind: ValidatingWebhookConfiguration
+# fieldPaths:
+# - .metadata.annotations.[cert-manager.io/inject-ca-from]
+# options:
+# delimiter: '/'
+# index: 1
+# create: true
+# - select:
+# kind: MutatingWebhookConfiguration
+# fieldPaths:
+# - .metadata.annotations.[cert-manager.io/inject-ca-from]
+# options:
+# delimiter: '/'
+# index: 1
+# create: true
+# - select:
+# kind: CustomResourceDefinition
+# fieldPaths:
+# - .metadata.annotations.[cert-manager.io/inject-ca-from]
+# options:
+# delimiter: '/'
+# index: 1
+# create: true
+# - source: # Add cert-manager annotation to the webhook Service
+# kind: Service
+# version: v1
+# name: webhook-service
+# fieldPath: .metadata.name # namespace of the service
+# targets:
+# - select:
+# kind: Certificate
+# group: cert-manager.io
+# version: v1
+# fieldPaths:
+# - .spec.dnsNames.0
+# - .spec.dnsNames.1
+# options:
+# delimiter: '.'
+# index: 0
+# create: true
+# - source:
+# kind: Service
+# version: v1
+# name: webhook-service
+# fieldPath: .metadata.namespace # namespace of the service
+# targets:
+# - select:
+# kind: Certificate
+# group: cert-manager.io
+# version: v1
+# fieldPaths:
+# - .spec.dnsNames.0
+# - .spec.dnsNames.1
+# options:
+# delimiter: '.'
+# index: 1
+# create: true
diff --git a/config/manager/kustomization.yaml
b/config/manager/kustomization.yaml
index fcc48cc9..83a270e3 100644
--- a/config/manager/kustomization.yaml
+++ b/config/manager/kustomization.yaml
@@ -6,3 +6,6 @@ images:
- name: controller
newName: apache/apisix-ingress-controller
newTag: dev
+- name: sidecar
+ newName: ghcr.io/api7/adc
+ newTag: 0.23.1
diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml
index 8e7a2eec..9d974876 100644
--- a/config/manager/manager.yaml
+++ b/config/manager/manager.yaml
@@ -49,7 +49,7 @@ spec:
# values:
# - linux
securityContext:
- runAsNonRoot: true
+ fsGroup: 2000
# TODO(user): For common cases that do not require escalating
privileges
# it is recommended to ensure that all your Pods/Containers are
restrictive.
# More info:
https://kubernetes.io/docs/concepts/security/pod-security-standards/#restricted
@@ -73,6 +73,8 @@ spec:
- name: config-volume
mountPath: /app/conf/config.yaml
subPath: config.yaml
+ - name: socket-volume
+ mountPath: /sockets
securityContext:
allowPrivilegeEscalation: false
capabilities:
@@ -99,9 +101,46 @@ spec:
requests:
cpu: 10m
memory: 64Mi
+ - image: sidecar:latest
+ env:
+ - name: ADC_RUNNING_MODE
+ value: ingress
+ - name: ADC_EXPERIMENTAL_FEATURE_FLAGS
+ value: remote-state-file,parallel-backend-request
+ - name: ADC_INGRESS_LOG_LEVEL
+ value: info
+ name: adc-server
+ args:
+ - "server"
+ - "--listen"
+ - "unix:/sockets/adc.sock"
+ - "--listen-status"
+ - "3001"
+ ports:
+ - name: http-status
+ containerPort: 3001
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 3001
+ initialDelaySeconds: 10
+ periodSeconds: 10
+ timeoutSeconds: 10
+ readinessProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 3001
+ initialDelaySeconds: 5
+ periodSeconds: 5
+ volumeMounts:
+ - name: socket-volume
+ mountPath: /sockets
volumes:
- name: config-volume
configMap:
name: controller-config
+ - name: socket-volume
+ emptyDir: {}
serviceAccountName: controller-manager
terminationGracePeriodSeconds: 10
diff --git a/docs/en/latest/developer-guide.md
b/docs/en/latest/developer-guide.md
index 90fdacc7..ad3b3906 100644
--- a/docs/en/latest/developer-guide.md
+++ b/docs/en/latest/developer-guide.md
@@ -82,6 +82,20 @@ To build a Docker image for APISIX Ingress controller, you
can use the following
make build-image IMG=apache/apisix-ingress-controller:dev
```
+## Deploying the Controller
+
+To deploy the controller to your Kubernetes cluster, you can use the following
command:
+
+```shell
+make deploy IMG=apache/apisix-ingress-controller:dev
+```
+
+To undeploy the controller from the cluster:
+
+```shell
+make undeploy
+```
+
## Running tests
### Unit Tests
diff --git a/docs/en/latest/upgrade-guide.md b/docs/en/latest/upgrade-guide.md
index 6495a9f5..82fd6aa6 100644
--- a/docs/en/latest/upgrade-guide.md
+++ b/docs/en/latest/upgrade-guide.md
@@ -154,10 +154,10 @@ Currently supports networking.k8s.io/v1 only. Support for
other Ingress API vers
### Summary
-| Category | Description
|
-| ---------------- |
---------------------------------------------------------------------------------------------------------------------------------
|
-| Architecture | The `mock-etcd` component has been removed. Configuration
is now centralized through the Controller. |
-| Configuration | Static configuration fields have been removed. Use
`GatewayProxy` CRD to configure the data plane. |
+| Category | Description
|
+| ---------------- |
--------------------------------------------------------------------------------------------------------------------------------------------
|
+| Architecture | The `mock-etcd` component has been removed. Configuration
is now centralized through the Controller.
|
+| Configuration | Static configuration fields have been removed. Use
`GatewayProxy` CRD to configure the data plane.
|
| Data Plane | The Admin API configuration method is still supported.
Support for the Standalone API-driven mode was introduced in APISIX 3.13.0 and
later. |
-| API | Some fields in `Ingress Annotations` and `ApisixUpstream`
are not yet supported. |
-| Upgrade Strategy | Blue-green deployment or canary release is recommended
before full switchover. |
+| API | Removed `ApisixClusterConfig`
|
+| Upgrade Strategy | Blue-green deployment or canary release is recommended
before full switchover.
|
diff --git a/releases/v2.0.0.toml b/releases/v2.0.0.toml
new file mode 100644
index 00000000..61421eff
--- /dev/null
+++ b/releases/v2.0.0.toml
@@ -0,0 +1,84 @@
+#
+# 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 = "2.0.0-rc5"
+
+# 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 = """\
+
+## Highlights
+
+- **Ingress Annotation System Greatly Expanded**: All ingress annotations
supported in previous releases have now been fully implemented with a
consistent and robust design, ensuring complete backward compatibility.
+- **Multi-Data-Plane Deployment Mode**: Introduced flexible deployment options
supporting **multiple data plane modes**, enabling more scalable and customized
environments.
+- **Configurable Gateway API Enable/Disable**: Added the ability to **toggle
Gateway API support**, offering better control for deployments that do not rely
on Gateway API.
+
+---
+
+## Features
+
+* feat: support benchmark test
[#2663](https://github.com/apache/apisix-ingress-controller/pull/2663)
+* feat: support disable gateway-api
[#2672](https://github.com/apache/apisix-ingress-controller/pull/2672)
+* feat: support deployment of multiple data plane modes
[#2647](https://github.com/apache/apisix-ingress-controller/pull/2647)
+* feat: support regex route for ingress annotations
[#2640](https://github.com/apache/apisix-ingress-controller/pull/2640)
+* feat: support forward-auth for ingress annotations
[#2641](https://github.com/apache/apisix-ingress-controller/pull/2641)
+* feat: support ip restriction for ingress annotations
[#2642](https://github.com/apache/apisix-ingress-controller/pull/2642)
+* feat: support cross-namespace access service for ingress annotations
[#2634](https://github.com/apache/apisix-ingress-controller/pull/2634)
+* feat: support response rewrite annotations for ingress
[#2638](https://github.com/apache/apisix-ingress-controller/pull/2638)
+* feat: support proxy rewrite annotations for ingress
[#2632](https://github.com/apache/apisix-ingress-controller/pull/2632)
+* feat: support auth-type for ingress annotations
[#2636](https://github.com/apache/apisix-ingress-controller/pull/2636)
+* feat: support allow/block http_methods for ingress annotations
[#2623](https://github.com/apache/apisix-ingress-controller/pull/2623)
+* feat: support plugin config annotations for ingress
[#2627](https://github.com/apache/apisix-ingress-controller/pull/2627)
+* feat: support csrf annotations for ingress
[#2626](https://github.com/apache/apisix-ingress-controller/pull/2626)
+* feat: support websocket annotations for ingress
[#2621](https://github.com/apache/apisix-ingress-controller/pull/2621)
+* feat: support cors annotations for ingress
[#2618](https://github.com/apache/apisix-ingress-controller/pull/2618)
+* feat: support redirect for ingress annotations
[#2619](https://github.com/apache/apisix-ingress-controller/pull/2619)
+* feat: support kubernetes.io/ingress.class annotations
[#2615](https://github.com/apache/apisix-ingress-controller/pull/2615)
+* feat: support upstream scheme/retries/timeouts via ingress annotations
[#2614](https://github.com/apache/apisix-ingress-controller/pull/2614)
+
+---
+
+## Bug Fixes
+
+* fix: wss related tests are unstable
[#2675](https://github.com/apache/apisix-ingress-controller/pull/2675)
+* fix(atls): apply updated certificates when TLS secrets change
[#2674](https://github.com/apache/apisix-ingress-controller/pull/2674)
+* fix: record attachedRoutes and supportedkinds for gateway status
[#2670](https://github.com/apache/apisix-ingress-controller/pull/2670)
+* fix: allow webhook calls to fail
[#2671](https://github.com/apache/apisix-ingress-controller/pull/2671)
+* fix(ApisixUpstream): cannot recognize kind
[#2622](https://github.com/apache/apisix-ingress-controller/pull/2622)
+* fix(ApisixRoute): failed to delete stream_route
[#2624](https://github.com/apache/apisix-ingress-controller/pull/2624)
+* fix: incorrect parameters in log message
[#2613](https://github.com/apache/apisix-ingress-controller/pull/2613)
+* fix: apisix global rule support plugins secret reference
[#2612](https://github.com/apache/apisix-ingress-controller/pull/2612)
+
+"""