Skip to main content

Release Apache APISIX 2.7

Change#

  • change: check metadata_schema with check_schema like the other schema #4381
  • change(echo): remove odd auth_value #4055
  • fix(admin): correct the resources' count field and change its type to integer #4385

Core#

  • 🌅 feat(stream): support client certificate verification #4445
  • 🌅 feat(stream): accept tls over tcp #4409
  • 🌅 feat(stream): support domain in the upstream #4386
  • 🌅 feat(cli): wrap nginx quit cmd #4360
  • 🌅 feat: allow to set custom timeout for route #4340
  • 🌅 feat: nacos discovery support group #4325
  • 🌅 feat: nacos discovery support namespace #4313

Plugin#

  • 🌅 feat(client-control): set client_max_body_size dynamically #4423
  • 🌅 feat(ext-plugin): stop the runner with SIGTERM #4367
  • 🌅 feat(limit-req) support nodelay #4395
  • 🌅 feat(mqtt-proxy): support domain #4391
  • 🌅 feat(redirect): support appending query string #4298

Bugfix#

  • fix: solve memory leak when the client aborts #4405
  • fix(etcd): check res.body.error before accessing the data #4371
  • fix(ext-plugin): when token is stale, refresh token and try again #4345
  • fix(ext-plugin): pass environment variables #4349
  • fix: ensure the plugin is always reloaded #4319

Release Apache APISIX Ingress Controller 1.0.0

Welcome to the 1.0.0 release of apisix-ingress-controller!

This is the first GA release.

  • an available Kubernetes cluster (version >= 1.14)
  • an available Apache APISIX (version >= 2.7)

Highlights#

New Features#

  • Support blocklist-source-range annotation for Ingress source #446
  • Add ApisixConsumer CRD #462
  • Support rewrite annotation for Ingress source #480
  • Support http-to-https redirect annotation for Ingress source #484
  • Add health check to apisix-admin and make the leader election recyclable 499
  • Support mTLS for ApisixTls #492
  • Support authentication for ApisixRoute #528

Please try out the release binaries and report any issues at https://github.com/apache/apisix-ingress-controller/issues.

Contributors#

  • Alex Zhang
  • Sarasa Kisaragi
  • Jintao Zhang
  • kv
  • Shuyang Wu
  • Daming
  • Fang
  • Ayush das
  • Donghui0
  • Shivani chauhan
  • Yuelin Zheng
  • guoqqqi
  • 罗泽轩

Changes#

58 commits

  • f3ab30b docs: modify readme (#543)
  • f9df546 ci: do not run workflows for draft PRs (#542)
  • fca6211 chore: add authentication for ApisixRoute (#528)
  • 28c584e chore: remove echo plugin's auth test case. (#534)
  • 1eee479 fix: nil pointer dereference (#529)
  • 7379d57 docs: removed navigation title from sidebar to docs dropdown (#531)
  • 2bf4b6b fix: add namespace for subjects of ClusterRoleBinding (#527)
  • d3ec856 ci: use concurrency to cancel workflow (#525)
  • 5c1aa5e docs: add docs about Ingress feature comparison (#526)
  • d510a8a doc: update development.md (#524)
  • f6cb4f9 feat: consumer controller loop (#516)
  • 3337be7 feat: subset changes in controllers (#507)
  • c6ac8a4 fix: CI path filter (#522)
  • fa0d8a6 ci: remove stale ci/spell-checker configuration (#519)
  • 3d9fd07 ci: add changes filter (#520)
  • 38290a2 feat: ApisixTls support mTLS (#492)
  • 029c0d7 feat: add events and status for ApisixClusterConfig resource (#502)
  • a89be23 feat: subset translation (#497)
  • 87b7229 Update license-checker.yml (#510)
  • 495c631 chore: add verify scripts and verify-codegen CI (#513)
  • 2f2e6f8 feat: add permission to events, fix missing subresources in crd. (#514)
  • 880d573 ci: fix cancel workflow not working (#509)
  • cddcd29 feat: add pod controller and pod cache (#490)
  • 23e5ebd feat: apisixconsumer translator (#474)
  • fe2db92 chore: add docker ignore to avoid unwanted cache miss (#506)
  • d87f856 ci: fix cancel workflow not working (#508)
  • a3f58d0 fix: ack.md link fix (#503)
  • 553655b chore: add dnsPolicy for sample deployment (#498)
  • f089ffe test: remove custom apisix-default.yaml (#494)
  • b7736db ci: cancel duplicate workflow to reduce CI queue time (#505)
  • 582c4b3 chore: add health check to apisix-admin and make the leader election recyclable (#499)
  • 77a06cc feat: add support for http-to-https redirect annotation (#484)
  • fa98443 chore: regenerate codes (#491)
  • 6630aac fix: ingress_class configuration invalid(#475) (#477)
  • e8eddcc docs: ingress apisix the hard way (#479)
  • 36de069 feat: codegen script (#487)
  • 1d7b143 feat: support rewrite annotation (#480)
  • 5af1fb4 feat: add essential data structures for service subset selector (#489)
  • a16e980 fix: fatal error reported when run make build in release src (#485)
  • 1dd5087 chore: consumer data structures (#470)
  • d6d3796 chore: fix e2e ip-restriction plugin text (#488)
  • 92896f1 chore: e2e case for tcp proxy is unstable\nclose #473 (#486)
  • bc71e3e chore: add apisixconsumer data structures (#462)
  • 269cf07 test: add basic headless service e2e test (#466)
  • 1ffa862 fix: event record scheme error (#469)
  • 456fbd2 fix: remove upstream which is ref by multi-routes cause retry (#472)
  • a7e187b minor: optimize log message when the endpoint does not have a corresponding service (#458)
  • 63ae709 chore: fix broken links (#467)
  • 0bdd24b chore: change the required PR approving number to 2 (#463)
  • 015940c docs: fix APISIX helm installation (#459)
  • 4a55307 fix: add status subresource permission in clusterRole (#452)
  • 5d479ae feat: blocklist-source-range annotation (#446)
  • 8824bbd chore: refactor the process of annotations (#443)
  • 9d0e0b8 fix: wait for the default cluster ready continuously (#450)
  • fb11efc chore: refactor the structures of kube clients, shared index informer factories (#431)
  • f199cdb test: add e2e test cases for server-info plugin (#406)
  • b0a6f3e fix: typo in apisix_route_v2alpha1.md (#438)
  • d269a01 ci: introduce skywalking-eyes (#430)

Dependency Changes#

  • golang.org/x/net 6772e930b67b -> 3d97a244fca7
  • gopkg.in/yaml.v2 v2.3.0 -> v2.4.0
  • k8s.io/code-generator v0.21.1 new

Previous release can be found at 0.6.0

Release Apache APISIX Dashboard 2.7

This release mainly improves basic features, bugfix and adds test cases.

Note: Manager API 2.7 should be used with Apache APISIX 2.6. It is not recommended to use it with other Apache APISIX versions.

Core#

  • Feat: support HTTPS for Manager API #1824
  • Feat: run manager-api as an OS agnostic service #1667
  • Feat: refactor Plugin Orchestration #1813
  • Feat: add the service page upstream select option #1633
  • Feat: improve the Duplicate Route feature #1833
  • Feat: add api of config migrate, export and import #1893

Bugfix#

  • Fix: can not configure upstream with no nodes #1812
  • Fix: add missing label in nodes component #1823
  • Fix: when create the upstream, some properties can still be edited on the preview page bug #1828
  • Fix: default cors plugin formdata validation error #1855
  • Fix: generate a uid when post a route without id #1883
  • Fix: route page Portable #1887
  • Fix: invalid import issues #1899
  • Fix: efficient error handling in manager-api including graceful shutdown, self contained methods. #1814
  • Fix: regex & omit vars when no value #1921

Test Case#

  • Test: fix unstable FE E2E test case #1826
  • CI: fix gitleaks not allowed running #1897
  • Test: refactor FE E2E test case (#1844 to #1878 and a series of PRs)

Release Apache APISIX 2.6

Change#

  • change(prometheus): redesign the latency metrics & update grafana #3993
  • change(prometheus): don't expose metrics to internet #3994
  • change(limit-count): ensure redis cluster name is set correctly #3910
  • change: drop support of OpenResty 1.15 #3960

Core#

  • 🌅 feat: support passing different host headers in multiple nodes #4208
  • 🌅 feat: add 50x html for error page #4164
  • 🌅 feat: support to use upstream_id in stream_route #4121
  • 🌅 feat: support client certificate verification #4034
  • 🌅 feat: add nacos support #3820
  • 🌅 feat: patch tcp.sock.connect to use our DNS resolver #4114

Plugin#

  • 🌅 feat(redirect): support uri encoding #4244
  • 🌅 feat(key-auth): allow customizing header #4013
  • 🌅 feat(response-rewrite): allow using variable in the header #4194
  • 🌅 feat(ext-plugin): APISIX can support Java, Go and other languages to implement custom plugin #4183

Bugfix#

  • fix(DNS): support IPv6 resolver #4242
  • fix(healthcheck): only one_loop is needed in the passive health check report #4116
  • fix(traffic-split): configure multiple "rules", the request will be confused between upstream #4092
  • fix: ensure upstream with domain is cached #4061
  • fix: be compatible with the router created before 2.5 #4056
  • fix(standalone): the conf should be available during start #4027
  • fix: ensure atomic operation in limit-count plugin #3991

Release Apache APISIX Ingress Controller 0.6.0

We have added some new features, fixed some bugs, and made some optimizations to the internal code.

Note: The CRDs should be re-applied because of some new features

Core#

  • Support TCP definition #115
  • Add labels to mark resources are pushed by ingress controller #242
  • Add jsonschema validate for ApisixUpstream and ApisixTls resource #371 #372
  • Support to record kubernetes events for resources processing #394
  • Support to report resources status #395
  • Support global_rules for cluster scoped plugins #402

Fix#

  • Remove upstream caching correctly #421
  • Avoid retrying caused by 404 when deleting cache #424
  • Handle cookie exprs correctly #425

Release Apache APISIX Dashboard 2.6

This release mainly improves UI and UE, bugfix and adds test cases.

Manager API 2.6 should be used with Apache APISIX 2.5. It is not recommended to use with other Apache APISIX versions.

Core#

Bugfix#

  • Fix: unable to export route with nil methods field #1673
  • Fix: incorrect conversion between integer types #1753
  • Fix: user login request should remove its own prefix option #1701
  • Fix: show correct health checker #1784

Test Case#

Doc#

  • Docs: add more details and examples to import openapi guide #1672

Release Apache APISIX Ingress Controller 0.5.0

A lot of important features are supported in this release, it makes apisix-ingress-controller more powerful and flexible. Also, several bugs are fixed so the robustness is also enhanced.

We recommend you to use Apache APISIX 2.5 with this release. Note since CRDs are updated, when you upgrade your old release, manual steps are required to apply the new ApisixRoute. Please see the instruction 7 in FAQ for more details.

Core#

  • Support traffic split feature (#308)
  • Support route match exprs (#304, #306)
  • Support to configure Ingress resources in version extensions/v1beta1 (#296, #315)
  • Add name fields when generating APISIX Routes and Upstreams (#333)
  • Support to use remote addrs as route match conditions (#347)
  • Schema for ApisixRoute CRD (#345)

Fix#

  • Sometimes ApisixRoute update is ineffective (#319)
  • Priority field is not passed to APISIX (#329)
  • Route rule name in ApisixRoute can be duplicated (#330)
  • Use PUT instead of PATCH method when updating resources (#353)
  • Secrets controller doesn't push the newest cert and priv key to APISIX (#337)

Test#

  • Use Kind to run e2e suites (#331)
  • Add e2e test cases for plugins redirect, uri-blocker, fault-injection, request-id, limit-count, echo, cors, response-rewrite, proxy-rewrite (#320, #327, #328, #334, #336, #342, #341)

Release Apache APISIX 2.5

The changes marked with ⚠️ are not backward compatible. Please upgrade your data accordingly before upgrading to this version. #3809 Means that empty vars will make the route fail to match any requests.

Change#

  • ⚠️ change: remove unused consumer.id #3868
  • ⚠️ change: remove deprecated upstream.enable_websocket #3854
  • change(zipkin): rearrange the child span #3877

Core#

  • 🌅 feat: support mTLS with etcd #3905
  • ⚠️ feat: upgrade lua-resty-expr/radixtree to support logical expression #3809
  • 🌅 feat: load etcd configuration when apisix starts #3799
  • 🌅 feat: let balancer support priority #3755
  • 🌅 feat: add control api for discovery module #3742

Plugin#

  • 🌅 feat(skywalking): allow destroy and configure report interval for reporter #3925
  • 🌅 feat(traffic-split): the upstream pass_host needs to support IP mode #3870
  • 🌅 feat: Add filter on HTTP methods for consumer-restriction plugin #3691
  • 🌅 feat: add allow_origins_by_regex to cors plugin #3839
  • 🌅 feat: support conditional response rewrite #3577

Bugfix#

  • fix(error-log-logger): the logger should be run in each process #3912
  • fix: use the builtin server by default #3907
  • fix(traffic-split): binding upstream via upstream_id is invalid #3842
  • fix: correct the validation for ssl_trusted_certificate #3832
  • fix: don't override cache relative headers #3789
  • fix: fail to run make deps on macOS #3718

Release Apache APISIX Dashboard 2.5

This release mainly improves basic features, bugfix and adds test cases.

Manager API 2.5 should be used with Apache APISIX 2.4. It is not recommended to use with other Apache APISIX versions.

Core#

  • Feat: add rawDataEditor for route, consumer, upstream and service #1505
  • Feat: online debugging supports file transfer #1465
  • Feat: support etcd prefix as apisix does #1477
  • Feat: support changing number of executing cpu cores for manager api #1569
  • Feat: support plugin template config feature #1540
  • Feat: improve UI and UE (#1491, #1481, #1479, #1472, #1604, #1603, #1589, #1538, #1580, #1651, #1634, #1641)
  • Feat: support yaml to config plugin in plugin config page #1490

Bugfix#

  • Fix: check name exists when creating or updating a resource #1606
  • Fix: cannot unmarshal array into go value of type #1527
  • Fix: change the appended Content-type data to overlay to ensure that the Content-type is unique #1619

Test Case#

Doc#

  • Docs: Updating docs for backend tests #1625