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)fa9f775edocs: add ingressClassName to explicitly specify which ingress class should handle each resource (#2573)51077751feat(gateway-api): support GRPCRoute (#2570)992bead3remove repetitive namespace (#2568)734849a1feat: add webhook server (#2566)7399778bchore: backport ldap auth test (#2569)72626839chore: remove redundant debug logging for metrics response (#2567)a47c8c6edocs: add config.yaml reference doc; explain a few parameters and gateway port being ignored (#2552)bdbb3b9adocs: add FAQ page (#2561)b47ed044feat: add unified API server with debugging capabilities (#2550)7fee6bd3chore: use constant variable instead of hard code (#2560)4e1bd6ebchore(ci): remove next branch trigger condition (#2563)0154b13atest: unified gatewayproxy yaml acquisition (#2562)3d4d833bdocs: update gateway api docs (#2558)8f85e7f9chore: add more conformance-test report for gateway-api (#2557)76c695c8feat: add support for named servicePort in ApisixRoute backend (#2553)476783aachore: add skip_mtls_uril_regex test for ApisixTLS (#2555)40ae032bchore: migrate e2e test for secretRef in ApisixRoute.plugins (#2556)53267ff8feat: support stream_route for ApisixRoute (#2551)ebaed224docs: specify namespace in metadata explicitly (#2549)7f6cff4afix: use upstream id instead of inline upstream in traffic-split plugin (#2546)cb69f53cfeat: add support for CORS httproutefilter (#2548)2d57b6a2upgrade: gateway-api version to v1.3.0 (#2547)0a7b0402fix: residual data issue when updating ingressClassName (#2543)f1724106fix: responseHeaderModifier fails to synchronize (#2544)ec8624b1fix: handle httproute multi backend refs (#2540)c831c161fix: sync exception caused by ingress endpoint 0 (#2538)efc29bffdocs: correct description for externalNodes (#2541)7c926e66feat: support retry in case of sync failure (#2534)06981b18fix: hmac-auth plugin spec compatibility with latest apisix (#2528)
Dependency Changes
- cel.dev/expr v0.19.1 new
- github.com/cpuguy83/go-md2man/v2 v2.0.5 -> v2.0.6
- github.com/eclipse/paho.mqtt.golang v1.5.0 new
- github.com/evanphx/json-patch/v5 v5.9.0 -> v5.9.11
- github.com/fatih/color v1.17.0 -> v1.18.0
- github.com/google/btree v1.1.3 new
- github.com/google/cel-go v0.20.1 -> v0.22.0
- github.com/google/go-cmp v0.6.0 -> v0.7.0
- github.com/google/pprof 813a5fbdbec8 -> d1b30febd7db
- github.com/gorilla/websocket v1.5.1 -> v1.5.3
- github.com/miekg/dns v1.1.62 -> v1.1.65
- github.com/moby/spdystream v0.4.0 -> v0.5.0
- github.com/onsi/ginkgo/v2 v2.20.0 -> v2.22.0
- github.com/onsi/gomega v1.34.1 -> v1.36.1
- github.com/spf13/cobra v1.8.1 -> v1.9.1
- github.com/spf13/pflag v1.0.5 -> v1.0.6
- github.com/stoewer/go-strcase v1.2.0 -> v1.3.0
- go.opentelemetry.io/auto/sdk v1.1.0 new
- go.opentelemetry.io/otel v1.29.0 -> v1.34.0
- go.opentelemetry.io/otel/metric v1.29.0 -> v1.34.0
- go.opentelemetry.io/otel/sdk v1.29.0 -> v1.34.0
- go.opentelemetry.io/otel/trace v1.29.0 -> v1.34.0
- golang.org/x/crypto v0.36.0 -> v0.37.0
- golang.org/x/mod v0.20.0 -> v0.23.0
- golang.org/x/net v0.38.0 -> v0.39.0
- golang.org/x/sync v0.12.0 -> v0.13.0
- golang.org/x/sys v0.31.0 -> v0.32.0
- golang.org/x/term v0.30.0 -> v0.31.0
- golang.org/x/text v0.23.0 -> v0.24.0
- golang.org/x/tools v0.24.0 -> v0.30.0
- google.golang.org/genproto/googleapis/api dd2ea8efbc28 -> 5f5ef82da422
- google.golang.org/genproto/googleapis/rpc dd2ea8efbc28 -> 1a7da9e5054f
- google.golang.org/grpc v1.67.1 -> v1.71.1
- google.golang.org/protobuf v1.35.1 -> v1.36.6
- gopkg.in/evanphx/json-patch.v4 v4.12.0 new
- k8s.io/api v0.31.1 -> v0.32.3
- k8s.io/apiextensions-apiserver v0.31.1 -> v0.32.3
- k8s.io/apimachinery v0.31.1 -> v0.32.3
- k8s.io/apiserver v0.31.1 -> v0.32.3
- k8s.io/client-go v0.31.1 -> v0.32.3
- k8s.io/component-base v0.31.1 -> v0.32.3
- k8s.io/kube-openapi f0e62f92d13f -> 32ad38e42d3f
- k8s.io/utils 18e509b52bc8 -> 3ea5e8cea738
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 -> v0.31.0
- sigs.k8s.io/controller-runtime v0.19.0 -> v0.20.4
- sigs.k8s.io/gateway-api v1.2.0 -> v1.3.0
- sigs.k8s.io/json bc3834ca7abd -> 9aa6b5e7a4b3
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 -> v4.7.0
Previous release can be found at 2.0.0-rc4