Releases: apache/apisix-ingress-controller
Release 2.0.0-rc5
apisix-ingress-controller 2.0.0-rc5
Welcome to the v2.0.0-rc5 release of apisix-ingress-controller!
This is a pre-release of apisix-ingress-controller
Highlights
- Gateway API Support: Added support for TCPRoute, UDPRoute, GRPCRoute, and TLSRoute, achieving comprehensive Gateway API coverage.
- Enhanced Webhook Validation:
- Introduced certificate conflict detection and Secret/Service resource checking to improve configuration consistency and security.
- Added admission webhooks for IngressClass and Gateway resources.
- GatewayProxy Improvements: Added conflict detection and stricter provider validation to prevent misconfiguration between instances.
- APISIX Upstream Enhancements: Added support for health checks, service discovery, and port-level settings.
- Improved Inter-Container Communication: Added Unix socket support for faster internal communication.
- Conformance and Stability Fixes: Fixed multiple Gateway API conformance tests (PathRewrite, QueryParamMatching, RewriteHost, etc.) to ensure better compatibility.
- Resilience Improvements: Introduced retry mechanism on sync failures.
- Debugging and Observability: Added a unified API server for debugging and enhanced logging consistency.
Features
- feat: add certificate conflict detection to admission webhooks #2603
- feat: support resolve
svc.ports[].appProtocol#2601 - feat: add conflict detection for gateway proxy #2600
- feat(gateway-api): support TLSRoute #2594
- feat: support UDPRoute webhook #2588
- feat: add Unix socket support for inter-container communication #2587
- feat(apisixupstream): support portLevelSettings #2582
- feat: add secret/service resource checker for webhook #2583
- feat(gateway-api): add support for UDPRoute #2578
- feat(apisixupstream): support discovery #2577
- feat(apisixupstream): support healthcheck #2574
- feat: add webhook for ingressclass and gateway #2572
- feat(gateway-api): support GRPCRoute #2570
- feat: add webhook server #2566
- feat: add unified API server with debugging capabilities #2550
- feat: add support for named servicePort in ApisixRoute backend #2553
- feat: support stream_route for ApisixRoute #2551
- feat: add support for CORS httproutefilter #2548
- feat: add support for TCPRoute #2564
- feat: support retry in case of sync failure #2534
Bug Fixes
- fix(ingress): port.name matching failure for ExternalName Services #2604
- fix(gatewayproxy): add stricter validation rules for provider #2602
- fix: generate unique SSL IDs to prevent certificate conflicts across different hosts #2592
- fix(conformance-test): HTTPRoutePathRewrite #2597
- fix(conformance-test): HTTPRouteQueryParamMatching #2598
- fix(conformance-test): HTTPRouteRewriteHost #2596
- fix: residual data issue when updating ingressClassName #2543
- fix: responseHeaderModifier fails to synchronize #2544
- fix: handle httproute multi backend refs #2540
- fix: sync exception caused by ingress endpoint 0 #2538
- fix: use upstream id instead of inline upstream in traffic-split plugin #2546
- fix: hmac-auth plugin spec compatibility with latest apisix #2528
Please try out the release binaries and report any issues at
https://github.com/apache/apisix-ingress-controller/issues.
Contributors
- AlinsRan
- Ashing Zheng
- Ashish Tiwari
- Traky Deng
- ArthurMorgan
Changes
53 commits
351d20a5feat: add certificate conflict detection to admission webhooks (#2603)18882b92fix(ingress): port.name matching failure for ExternalName Services (#2604)f28b3429feat: support resolve svc.ports[].appProtocol (#2601)3c808e22fix(gatewayproxy): add stricter validation rules for provider (#2602)ace684d1feat: add conflict detection for gateway proxy (#2600)5f0d1af1fix: generate unique SSL IDs to prevent certificate conflicts across different hosts (#2592)15132023fix(conformance-test): HTTPRoutePathRewrite (#2597)1afb9acefeat(gateway-api): support TLSRoute (#2594)a368e287fix(conformance-test): HTTPRouteQueryParamMatching (#2598)f6db4561fix(conformance-test): HTTPRouteRewriteHost (#2596)0f29ac7bdocs: clarify support for Ingress Annotations (#2575)d9550d88chore: unify the logging component (#2584)63c7d111feat: support udproute webhook (#2588)dc8b6621feat: add Unix socket support for inter-container communication (#2587)501b4e89test: add e2e test case for webhook (#2585)fe5c1357feat(apisixupstream): support portLevelSettings (#2582)ec819175feat: add secret/service resource checker for webhook (#2583)68664908feat(gateway-api): add support for UDPRoute (#2578)5bb2afd6feat: add secret/service resource checker for webhook (#2580)be91920efeat(apisixupstream): support discovery (#2577)b4276e3bchore: add stream_route test for standalone (#2565)0fd8e9d7feat: add support for TCPRoute (#2564)7510e5c3feat(apisixupstream): support healthcheck (#2574)3b3bb2cafeat: add webhook for ingressclass and gateway (#2572)- [
fa9f775e](https://github.com/apache/apisix-ingress-controller/commi...
Release 2.0.0-rc4
Highlights
In APISIX Standalone mode, launching an ADC process for each endpoint causes high startup overhead that grows with the number of endpoints. ADC Server mode addresses this by running as a persistent service, reducing CPU cost and improving synchronization efficiency.
Features
- feat: support adc server mode #2520
Bugfixes
- fix: set websocket when passed true and add websocket e2e test #2497
- fix: deadlock occurs when updating configuration fails #2531
- fix: traffic-split weight distribution and add e2e tests #2495
- fix: list is missing index parameter #2513
- fix: status should not be recorded when ingressclass does not match #2519
- fix: support tlsSecret from http.backends in ApisixRoute #2518
Please try out the release binaries and report any issues at
https://github.com/apache/apisix-ingress-controller/issues.
Contributors
- Ashish Tiwari
- AlinsRan
- Traky Deng
- iliya
- 琚致远 / Zhiyuan Ju
Changes
23 commits
07672ccefix: deadlock occurs when updating configuration fails (#2531)ba39a7acchore: upgrade adc to 0.21.0 (#2532)8c5f0dcbchore: migrate redirect plugin e2e tests (#2529)69db98c4chore: remove adc binary from dockerfile (#2530)75d068aafeat: support adc server mode (#2520)1faf2ae4chore: migrate e2e tests for httproute basic (#2525)2a798d13fix(test): Unstable controllername assertion (#2523)e5d831e4chore: remove redundant backend traffic policy attachment (#2524)eb7c06a6chore: migrate retries/timeout tests for apisixupstream (#2517)404d1508docs: mention stream is currently not supported in the CRD docs (#2522)6bc3731afix: support tlsSecret from http.backends in ApisixRoute (#2518)227062d2fix: status should not be recorded when ingressclass does not match (#2519)5775f23afix: list is missing index parameter (#2513)95787e6echore: refactor provider (#2507)c9ead0eefix indentation (#2512)ce0c5f4crefactor: E2E tests to support parallel tests (#2501)77b8210cdocs: update load balancing Gateway API doc for RC3 fix (#2506)7a435c97chore(deps): bump golang.org/x/oauth2 from 0.24.0 to 0.27.0 (#2485)40712363chore(test): Refactor loop to use range over integer in test (#2494)ac5e56ddchore: add test cases for external service (#2500)a2bea453docs: fix links (#2502)49ef9d40fix: set websocket when passed true and add websocket e2e test (#2497)a35cad5efix: traffic-split weight distribution and add e2e tests (#2495)
Dependency Changes
- golang.org/x/oauth2 v0.24.0 -> v0.27.0
Previous release can be found at 2.0.0-rc3
Release 2.0.0-rc3
Highlights
Features
Bugfixes
- fix: route names with the same prefix were mistakenly deleted #2472
- fix: should not return when service type is ExternalName #2468
- fix: remove duplicate sync func #2476
- fix: full sync during restart results in loss of dataplane traffic #2489
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
14 commits
66c2b0afix: full sync during restart results in loss of dataplane traffic (#2489)f6196ffchore: differentiate the API versions for CRD testing (#2492)7a6151cfeat: support event triggered synchronization (#2478)38023b2fix: doc broken links (#2490)7ede0e3docs: update getting started docs (RC2) (#2481)eb7a65bchore: update status only when changes occur (#2473)f02e350docs: fix description error in upgrade doc (#2440)94fccebfeat: support custom metrics (#2480)1156414fix: remove duplicate sync func (#2476)f536c26chore: refactor e2e-test (#2467)4745958fix: route names with the same prefix were mistakenly deleted (#2472)2b9b787fix: should not return when service type is ExternalName (#2468)d91a3badoc: recommended to use apisix-standalone mode for installation. (#2470)0a4e05cchore(ci): remove add-pr-comment step (#2463)
Dependency Changes
- filippo.io/edwards25519 v1.1.0 new
- github.com/aws/aws-sdk-go-v2 v1.32.5 new
- github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.7 new
- github.com/aws/aws-sdk-go-v2/config v1.28.5 new
- github.com/aws/aws-sdk-go-v2/credentials v1.17.46 new
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.20 new
- github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.41 new
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 new
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 new
- github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 new
- github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.24 new
- github.com/aws/aws-sdk-go-v2/service/acm v1.30.6 new
- github.com/aws/aws-sdk-go-v2/service/autoscaling v1.51.0 new
- github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.44.0 new
- github.com/aws/aws-sdk-go-v2/service/dynamodb v1.37.1 new
- github.com/aws/aws-sdk-go-v2/service/ec2 v1.193.0 new
- github.com/aws/aws-sdk-go-v2/service/ecr v1.36.6 new
- github.com/aws/aws-sdk-go-v2/service/ecs v1.52.0 new
- github.com/aws/aws-sdk-go-v2/service/iam v1.38.1 new
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 new
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.5 new
- github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.5 new
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 new
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.5 new
- github.com/aws/aws-sdk-go-v2/service/kms v1.37.6 new
- github.com/aws/aws-sdk-go-v2/service/lambda v1.69.0 new
- github.com/aws/aws-sdk-go-v2/service/rds v1.91.0 new
- github.com/aws/aws-sdk-go-v2/service/route53 v1.46.2 new
- github.com/aws/aws-sdk-go-v2/service/s3 v1.69.0 new
- github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.6 new
- github.com/aws/aws-sdk-go-v2/service/sns v1.33.6 new
- github.com/aws/aws-sdk-go-v2/service/sqs v1.37.1 new
- github.com/aws/aws-sdk-go-v2/service/ssm v1.56.0 new
- github.com/aws/aws-sdk-go-v2/service/sso v1.24.6 new
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 new
- github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 new
- github.com/aws/smithy-go v1.22.1 new
- github.com/cpuguy83/go-md2man/v2 v2.0.4 -> v2.0.5
- github.com/go-sql-driver/mysql v1.7.1 -> v1.8.1
- github.com/gruntwork-io/terratest v0.47.0 -> v0.50.0
- github.com/jackc/pgpassfile v1.0.0 new
- github.com/jackc/pgservicefile 5a60cdf6a761 new
- github.com/jackc/pgx/v5 v5.7.1 new
- github.com/jackc/puddle/v2 v2.2.2 new
- github.com/pquerna/otp v1.2.0 -> v1.4.0
- github.com/stretchr/testify v1.9.0 -> v1.10.0
- github.com/urfave/cli v1.22.14 -> v1.22.16
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 -> v0.54.0
- go.opentelemetry.io/otel v1.28.0 -> v1.29.0
- go.opentelemetry.io/otel/metric v1.28.0 -> v1.29.0
- go.opentelemetry.io/otel/sdk v1.28.0 -> v1.29.0
- go.opentelemetry.io/otel/trace v1.28.0 -> v1.29.0
- golang.org/x/oauth2 v0.21.0 -> v0.24.0
- golang.org/x/time v0.5.0 -> v0.8.0
- google.golang.org/genproto/googleapis/api ef581f913117 -> dd2ea8efbc28
- google.golang.org/genproto/googleapis/rpc f6361c86f094 -> dd2ea8efbc28
- google.golang.org/grpc v1.66.2 -> v1.67.1
- google.golang.org/protobuf v1.34.2 -> v1.35.1
Previous release can be found at 2.0.0-rc2
Release 2.0.0-rc2
Highlights
Features
- feat: support gatewayproxy controller to discovery of dataplane endpoints #2444
- feat: add synchronization status to CRD #2460
Bugfix
- fix: should not contain plaintext token in log message #2462
- fix: add more event filter across controllers #2449
- fix: a failing endpoint shouldn't affect others #2452
- fix: Add provider endpoints to translate context #2442
- fix: config not provided should not be retried #2454
- fix: apisixroute backend service reference to apisixupstream #2453
- fix: adc backend server on different mode #2455
- fix: support filter endpoint when translate backend ref #2451
- fix: reduce the complexity of calculating route priority #2459
Please try out the release binaries and report any issues at
https://github.com/apache/apisix-ingress-controller/issues.
Contributors
- AlinsRan
- Ashing Zheng
- 悟空
Changes
20 commits
6c5847cfix: should not contain plaintext token in log message. (#2462)cdc6b38chore: unified logger print (#2456)9d7e018feat: add synchronization status to CRD (#2460)df2362bdoc: add getting-started doc (#2450)d317e5efix: reduce the complexity of calculating route priority (#2459)3a017c7fix: adc backend server on different mode (#2455)43bbe76fix: apisixroute backend service reference to apisixupstream (#2453)4f22fb6fix: config not provided should not be retried (#2454)bce4c69fix: a failing endpoint shouldn't affect others (#2452)d8be46efix: support filter endpoint when translate backend ref. (#2451)18f03eafix: add more event filter across controllers (#2449)dc03c31chore: Update artifact and report names with provider type (#2447)634bc52feat(ci): support build dev image (#2448)6352263feat: gatewayproxy controller (#2444)40a2d2cdoc: add config.json (#2446)5d20cecdocs: add install and developer-guide doc (#2439)66e87fcdocs: remove unless commit in changelog 200-rc1 (#2441)fdcc436chore: move generate-crd to assets (#2445)dfc76d6fix: Add provider endpoints to translate context (#2442)409a474chore: move doc to en/latest directory (#2443)
Release 2.0.0-rc1
Highlights
Add Gateway API Extensions apisix.apache.org/v1alpha1
Enable additional features not included in the standard Kubernetes Gateway API, developed and maintained by Gateway API implementers to extend functionality securely and reliably.
-
GatewayProxy: Defines connection settings between the APISIX Ingress Controller and APISIX, including auth, endpoints, and global plugins. Referenced via parametersRef in Gateway, GatewayClass, or IngressClass
-
BackendTrafficPolicy: Defines traffic management settings for backend services, including load balancing, timeouts, retries, and host header handling in the APISIX Ingress Controller.
-
Consumer: Defines API consumers and their credentials, enabling authentication and plugin configuration for controlling access to API endpoints.
-
PluginConfig: Defines reusable plugin configurations that can be referenced by other resources like HTTPRoute, enabling separation of routing logic and plugin settings for better reusability and manageability.
-
HTTPRoutePolicy: Configures advanced traffic management and routing policies for HTTPRoute or Ingress resources, enhancing functionality without modifying the original resources.
Support APISIX Standalone API-Driven Mode (Experimental)
This new implementation addresses the issue of ETCD instability in Kubernetes, removing the need for ETCD support. Routing rules are now stored entirely in memory and can be updated through the API. This change allows you to run Ingress Controllers more reliably in a stateless mode.
You can enable this mode in APISIX Ingress Controller configuration file by specifying:
provider:
type: "apisix-standalone"For major changes introduced in this release, refer to the upgrade guide.
If you encounter any problems while using the implementation, please submit an issue along with the reproduction steps. The APISIX Team will review and resolve it.
Contributors
- AlinsRan
- Ashing Zheng
Changes
12 commits
c1533c9fix: the sync_period of the provider should not be 0s (#2438)0db882dchore: remove useless example files in dockerfile (#2434)11ecb35fix: set default provider type (#2436)16f9d60fix(crd): missing shortname and printcolumn (#2435)e6fa3b8chore: upgrade adc to 0.20.0 (#2432)03877e0fix(ci): run e2e group by resource api group (#2431)b21d429chore: revert release-src cmd in makefile (#2433)5588c00docs: update resources and overview (#2430)67ad69achore: remove charts folder (#2428)c7d7732chore: remove useless provider (#2429)cfa8fd5feat: support apisix provider type and add ingress docs (#2427)756ed51refactor: new apisix ingress controller (#2421)
v1.8.4 🌈
What's New
- upgrade: etcd-adapter and add e2e test @Revolyssup (#2369)
- chore: upgrade ubuntu from 20.04 to latest @Revolyssup (#2352)
- chore: upgrade actions/upload-artifact and actions/download-artifact @nic-6443 (#2328)
- docs: update http[].match.exprs any -> all @acuteaura (#2270)
- fix: attempt to shut down when provider init fails @acuteaura (#2263)
👨🏽💻 Contributors
Thank you to our contributors for making this release possible:
@Revolyssup, @acuteaura and @nic-6443
v1.8.3 🌈
What's New
- fix: candidate controllers missing Forget call in workqueue @Revolyssup (#2308)
👨🏽💻 Contributors
Thank you to our contributors for making this release possible:
@Revolyssup
v1.8.2 🌈
What's New
- fix: deletion of references @Revolyssup (#2213)
🧰 Maintenance
- chore(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 in /test/e2e @dependabot (#2220)
👨🏽💻 Contributors
Thank you to our contributors for making this release possible:
@Revolyssup, @dependabot and @dependabot[bot]
v1.8.1 🌈
What's New
- chore: remove redundant logs and improve logs for users @Revolyssup (#2206)
- fix: use force=true to hard delete the apisix resource @Revolyssup (#2210)
- chore: upgrade etcd-adapter to latest version @Revolyssup (#2205)
- chore(ci): remove tao12345666333 and lingsamuel in reviewers @AlinsRan (#2150)
- test: failing flaky unit test @Revolyssup (#2151)
- refactor(cmd/ingress): invert signal ctx logic @acuteaura (#2139)
- chore: update NOTICE to 2024 @zll600 (#2149)
- fix: remove path validation @Revolyssup (#2140)
- feat: add plugin_config_namespace parameter to ApisixRoute @Revolyssup (#2137)
- docs: clarify usage of external service discovery @Revolyssup (#2124)
- feat: add release notes for v1.8.0 release (#2111) @Revolyssup (#2115)
🧰 Maintenance
- chore(deps): bump github.com/onsi/ginkgo/v2 from 2.16.0 to 2.17.1 in /test/e2e @dependabot (#2195)
- chore(deps): bump github.com/spf13/cobra from 1.7.0 to 1.8.0 @dependabot (#2196)
- chore(deps): bump k8s.io/apimachinery from 0.29.2 to 0.29.3 in /test/e2e @dependabot (#2185)
- chore(deps): bump k8s.io/client-go from 0.29.0 to 0.29.2 in /test/e2e @dependabot (#2162)
- chore(deps): bump go.uber.org/zap from 1.26.0 to 1.27.0 in /test/e2e @dependabot (#2172)
- chore(deps): bump k8s.io/api from 0.29.0 to 0.29.2 in /test/e2e @dependabot (#2163)
- chore(deps): bump k8s.io/apimachinery from 0.29.0 to 0.29.2 in /test/e2e @dependabot (#2161)
- chore(deps): bump github.com/onsi/ginkgo/v2 from 2.13.2 to 2.16.0 in /test/e2e @dependabot (#2177)
👨🏽💻 Contributors
Thank you to our contributors for making this release possible:
@AlinsRan, @Revolyssup, @acuteaura, @dependabot, @dependabot[bot] and @zll600
Release v1.8.0 🌈
What's New
- docs: clarify usage of external service discovery @Revolyssup (#2124)
- feat: add release notes for v1.8.0 release (#2111) @Revolyssup (#2115)
- docs: update keys based helm chart version @Revolyssup (#2085)
- feat: add
skip_mtls_uri_regexsupport for ApisixTls @aynp (#1915) - feat: add support for multiple labels with same key @Revolyssup (#2099)
- feat: Allow merging nested values in plugin config secretRef @Revolyssup (#2096)
- feat: allow configuring timeout and retries for upstream with ingress @Revolyssup (#1876)
- ci: add workflow to push docker image @Revolyssup (#2081)
- fix: upgrade etcd-adapter @Revolyssup (#2078)
- docs: Add doc for ApisixConsumer @Revolyssup (#2074)
- fix: create unique TLS object for each item in Ingress tls @Revolyssup (#1989)
- feat: add release-drafter @Revolyssup (#2068)
- fix: replace string comparison with 64 bit int @Revolyssup (#2062)
- chore: add Revolyssup in reviewers @Revolyssup (#2059)
- chore(deps): bump google.golang.org/grpc from 1.42.0 to 1.56.3 in /test/e2e/testbackend @dependabot (#2026)
- docs: add best practice docs to avoid race condition bw kubelet and apisix @Revolyssup (#2045)
- chore: correct Makefile comments @jiangfucheng (#2038)
- Renamed field in examples according to CRD @nayavu (#2032)
🐛 Bug Fixes
- fix: Some CRDs missing status sub-resource @Chever-John (#1809)
🧰 Maintenance
- chore(deps): bump github.com/onsi/ginkgo/v2 from 2.13.1 to 2.13.2 in /test/e2e @dependabot (#2079)
- chore(deps): bump golang.org/x/crypto from 0.14.0 to 0.17.0 in /test/e2e @dependabot (#2107)
- chore(deps): bump k8s.io/client-go from 0.28.4 to 0.29.0 in /test/e2e @dependabot (#2105)
- chore(deps): bump k8s.io/api from 0.28.2 to 0.28.4 @dependabot (#2056)
- chore(deps): bump k8s.io/client-go from 0.28.3 to 0.28.4 in /test/e2e @dependabot (#2052)
- chore(deps): bump github.com/onsi/ginkgo/v2 from 2.13.0 to 2.13.1 in /test/e2e @dependabot (#2041)
- chore(deps): bump google.golang.org/grpc from 1.57.0 to 1.57.1 in /test/e2e @dependabot (#2024)
- chore(deps): bump k8s.io/apimachinery from 0.28.3 to 0.28.4 in /test/e2e @dependabot (#2054)
- chore(deps): bump github.com/gorilla/websocket from 1.5.0 to 1.5.1 in /test/e2e @dependabot (#2035)
- chore(deps): bump k8s.io/client-go from 0.28.2 to 0.28.3 in /test/e2e @dependabot (#2016)
- chore(deps): bump k8s.io/api from 0.28.2 to 0.28.3 in /test/e2e @dependabot (#2018)
👨🏽💻 Contributors
Thank you to our contributors for making this release possible:
@Chever-John, @Revolyssup, @aynp, @dependabot, @dependabot[bot], @jiangfucheng and @nayavu