github apache/apisix-ingress-controller 2.0.0-rc5
Release 2.0.0-rc5

pre-release13 hours ago

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

  • 351d20a5 feat: add certificate conflict detection to admission webhooks (#2603)
  • 18882b92 fix(ingress): port.name matching failure for ExternalName Services (#2604)
  • f28b3429 feat: support resolve svc.ports[].appProtocol (#2601)
  • 3c808e22 fix(gatewayproxy): add stricter validation rules for provider (#2602)
  • ace684d1 feat: add conflict detection for gateway proxy (#2600)
  • 5f0d1af1 fix: generate unique SSL IDs to prevent certificate conflicts across different hosts (#2592)
  • 15132023 fix(conformance-test): HTTPRoutePathRewrite (#2597)
  • 1afb9ace feat(gateway-api): support TLSRoute (#2594)
  • a368e287 fix(conformance-test): HTTPRouteQueryParamMatching (#2598)
  • f6db4561 fix(conformance-test): HTTPRouteRewriteHost (#2596)
  • 0f29ac7b docs: clarify support for Ingress Annotations (#2575)
  • d9550d88 chore: unify the logging component (#2584)
  • 63c7d111 feat: support udproute webhook (#2588)
  • dc8b6621 feat: add Unix socket support for inter-container communication (#2587)
  • 501b4e89 test: add e2e test case for webhook (#2585)
  • fe5c1357 feat(apisixupstream): support portLevelSettings (#2582)
  • ec819175 feat: add secret/service resource checker for webhook (#2583)
  • 68664908 feat(gateway-api): add support for UDPRoute (#2578)
  • 5bb2afd6 feat: add secret/service resource checker for webhook (#2580)
  • be91920e feat(apisixupstream): support discovery (#2577)
  • b4276e3b chore: add stream_route test for standalone (#2565)
  • 0fd8e9d7 feat: add support for TCPRoute (#2564)
  • 7510e5c3 feat(apisixupstream): support healthcheck (#2574)
  • 3b3bb2ca feat: add webhook for ingressclass and gateway (#2572)
  • fa9f775e docs: add ingressClassName to explicitly specify which ingress class should handle each resource (#2573)
  • 51077751 feat(gateway-api): support GRPCRoute (#2570)
  • 992bead3 remove repetitive namespace (#2568)
  • 734849a1 feat: add webhook server (#2566)
  • 7399778b chore: backport ldap auth test (#2569)
  • 72626839 chore: remove redundant debug logging for metrics response (#2567)
  • a47c8c6e docs: add config.yaml reference doc; explain a few parameters and gateway port being ignored (#2552)
  • bdbb3b9a docs: add FAQ page (#2561)
  • b47ed044 feat: add unified API server with debugging capabilities (#2550)
  • 7fee6bd3 chore: use constant variable instead of hard code (#2560)
  • 4e1bd6eb chore(ci): remove next branch trigger condition (#2563)
  • 0154b13a test: unified gatewayproxy yaml acquisition (#2562)
  • 3d4d833b docs: update gateway api docs (#2558)
  • 8f85e7f9 chore: add more conformance-test report for gateway-api (#2557)
  • 76c695c8 feat: add support for named servicePort in ApisixRoute backend (#2553)
  • 476783aa chore: add skip_mtls_uril_regex test for ApisixTLS (#2555)
  • 40ae032b chore: migrate e2e test for secretRef in ApisixRoute.plugins (#2556)
  • 53267ff8 feat: support stream_route for ApisixRoute (#2551)
  • ebaed224 docs: specify namespace in metadata explicitly (#2549)
  • 7f6cff4a fix: use upstream id instead of inline upstream in traffic-split plugin (#2546)
  • cb69f53c feat: add support for CORS httproutefilter (#2548)
  • 2d57b6a2 upgrade: gateway-api version to v1.3.0 (#2547)
  • 0a7b0402 fix: residual data issue when updating ingressClassName (#2543)
  • f1724106 fix: responseHeaderModifier fails to synchronize (#2544)
  • ec8624b1 fix: handle httproute multi backend refs (#2540)
  • c831c161 fix: sync exception caused by ingress endpoint 0 (#2538)
  • efc29bff docs: correct description for externalNodes (#2541)
  • 7c926e66 feat: support retry in case of sync failure (#2534)
  • 06981b18 fix: 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

Don't miss a new apisix-ingress-controller release

NewReleases is sending notifications on new releases.