Table of Contents

1.4.1

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

This is a Patch version release.

Highlights

Roadmap

In next release(v1.5), custom resource's API version v2 will be GA released. Please go to #707 for detail.

Bug fixes

  • fix: consumer name contain “-” #828
  • fix: fix typo in ApidixRoute CRD #830
  • fix: add v2beta3 register resources #833
  • fix: ApisixClusterConfig e2e test case #859
  • fix: objects get from lister must be treated as read-only #829
  • fix ingress delete panic #872
  • fix json unmarshal error when list plguins #888
  • fix: check if stream_routes is disabled #868
  • fix: avoid create pluginconfig in the tranlsation of route #845
  • fix: filter useless pod update event #894
  • fix: fix ep resourceVersion comparison and clean up #901
  • fix: ingress update event handler not filter by watching namespaces #947

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

Contributors

  • Jintao Zhang
  • Nic
  • cmssczy
  • nevercase
  • JasonZhu
  • Sarasa Kisaragi
  • Xin Rong
  • Yu.Bozhong
  • champly
  • chen zhuo

Changes

  • 8a257c4 chore: fix dead links
  • c90b602 ci: trigger v1.4.0 branch jobs
  • d0bc591 chore: revert isWatchingNamespace to namespaceWatching
  • e259826 fix ApisixConsumerBasicAuthValue password-yaml field error (#960)
  • 4d087b3 fix: ingress update event handler not filter by watching namespaces (#947)
  • 46da0e2 docs: upgrade apiVersion from v2beta1 to v2beta3 (#916)
  • 9a8c7ce chore: clean up useless code (#902)
  • eb90123 fix: fix ep resourceVersion comparison and clean up (#901)
  • db250da chore: shorten the route name for Ingress transformations (#898)
  • 3f14edd fetching newest Endpoint before sync (#821)
  • 8329b7c fix: filter useless pod update event (#894)
  • cbcae44 fix: avoid create pluginconfig in the tranlsation of route (#845)
  • e0518a4 fix: check if stream_routes is disabled (#868)
  • 90dd10e fix json unmarshal error when list plguins (#888)
  • 88cc0b3 fix ingress delete panic (#872)
  • 64eb176 chore: clean up v1 version related code (#867)
  • bf1d10e fix: objects get from lister must be treated as read-only (#829)
  • d1bb4ac fix: ApisixClusterConfig e2e test case (#859)
  • fd76c2a feat: ensure that the lease can be actively released before program shutdown to reduce the time required for failover (#827)
  • 4c94c76 chore: update ingress/comapre.go watchingNamespac from v2beta1 to v2beta3 (#832)
  • f9c60c2 fix: add v2beta3 register resources (#833)
  • 4a2ebaf chore: fix typo in ApidixRoute CRD (#830)
  • 46fcf3f fix: consumer name contain “-” (#828)
  • b7dd90a chore: v1.4 release

Dependency Changes

This release has no dependency changes

Previous release can be found at 1.4.0

1.4.0

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

This is a GA release.

Highlights

Roadmap

In next release(v1.5), custom resource's API version v2 will be GA released. Please go to #707 for detail.

Breaking Changes

  • In this release(v1.4), all custom resource's API version has been upgraded to apisix.apache.org/v2beta3, and we deleted apisix.apache.org/v2beta3 and apisix.apache.org/v2alpha1. Please see #746

New Features

  • We have introduced the apisix.apache.org/v2beta3 API version for all custom resources and deleted v2alpha1 and v1 API version #746
  • Initial support for Gateway API #789
  • Add a new ApisixPluginConfig CRD for reuse common plugin configurations. #638
  • Support regex in Ingress path #779
  • We can update the load balancing IP of the Ingress, and it can work in various public cloud environments #740

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

Contributors

  • Jintao Zhang
  • kv
  • nevercase
  • LXM
  • Nic
  • chen zhuo
  • Mayo Cream
  • Nic
  • Alex Zhang
  • Baoyuan
  • Brhetty
  • Canh Dinh
  • Jintao Zhang
  • Sindweller
  • Yu.Bozhong
  • huzais520
  • oliver
  • rupipal
  • zhang lun hai

Changes

  • a1ef639 feat: add ApisixPluginConfig controller loop and e2e test case (#815)
  • 819b003 fix: delete the cluster object when give up the leadership (#774)
  • 970df2b feat: Initial support for Gateway API (#789)
  • 7b62375 fix: some wrong or invalid logs (#804)
  • 52b2e2c docs(READEME.md): change img size (#805)
  • eeb7a49 chore: specify the K8S cluster version used for the test (#797)
  • d9fa775 chore: remove ApisixPluginConfig v2beta2 version (#795)
  • 6110bf5 feat: implement apisix healthz check (#770)
  • 4a6509c chore: Issue & PR template (#771)
  • d4c5b09 fix: When the spec field of the ApisixUpstream resource is empty, it will panic (#794)
  • 472fbcd feat: add ApisixPluginConfigs crd to v2beta3 (#792)
  • 413e7ca feat: implement pluginconfig clients (#638) (#772)
  • fe4a824 fix: ingress LB status records (#788)
  • 1b2bc34 docs: Optimize installation documentation (#785)
  • 4e84eb8 feat: support regex in path (#779)
  • 1bbadf0 feat: add v2beta3 (#746)
  • 26d5c5c Docs: add more config example (#777)
  • 1141e15 fix: test case param error (#780)
  • 0c6de2d feat: update Ingress LB status (#740)
  • f470867 fix: ingress do not watching any namespace when namespaceSelector is empty (#742)
  • 62d7897 fix: If resource synchronization retry occurs, other events of the same resource will be blocked (#760)
  • b127ff4 feat: init ApisixPluginConfig crd #4 (#638) (#694)
  • 703c6b2 fix: ApisixRoute backendPoint duplicate (#732) (#734)
  • 9fe7298 remove route timeout default value (#733)
  • 81f5ea1 feat: support https and grpcs as upstream scheme as well as mTLS mode (#755)
  • 9f2cd7f feat: support environment variable in config file (#745)
  • bdf6721 Fix bug typo in yaml (#763)
  • 719c42f docs: update proxy-the-httpbin-service.md (#757)
  • 580e7d4 feat: expose more prometheus metrics (#670)
  • 774077a docs: Customize the namespace used for installation (#747)
  • 4a862e2 fix: use independent dns service for UDP e2e test (#753)
  • 62b7162 fix: wrong var type in response_rewrite e2e (#754)
  • da30386 fix field tag omitempty (#723)
  • 7063189 docs: add upgrade guide (#735)
  • 65f7c88 feat: add label-selector for watching namespace (#715)
  • dc196ef fix unmarshal apisix/upstream field nodes be null (#724)
  • 2a73216 fix: verify generation in record status (#706)
  • 97fdc90 fix: ignore delete pod cache error msg (#714)
  • fa27b03 chore: fix spelling error in modules.png (#717)
  • 68125e3 chore: v1.3 release (#716)

Dependency Changes

  • github.com/gin-gonic/gin v1.6.3 -> v1.7.7
  • github.com/hashicorp/go-memdb v1.0.4 -> v1.3.2
  • github.com/hashicorp/go-multierror v1.1.0 -> v1.1.1
  • github.com/prometheus/client_golang v1.10.0 -> v1.11.0
  • github.com/spf13/cobra v1.1.1 -> v1.2.1
  • go.uber.org/multierr v1.3.0 -> v1.7.0
  • go.uber.org/zap v1.13.0 -> v1.19.1
  • golang.org/x/net 4163338589ed -> fe4d6282115f
  • k8s.io/api v0.21.1 -> v0.22.4
  • k8s.io/apimachinery v0.21.1 -> v0.22.4
  • k8s.io/client-go v0.21.1 -> v0.22.4
  • k8s.io/code-generator v0.21.1 -> v0.22.1
  • sigs.k8s.io/gateway-api v0.4.0 new

Previous release can be found at 1.3.0

1.3.0

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

This is a GA release.

Highlights

Roadmap

In next release(v1.4), all custom resource versions will be upgraded to version v2beta3, and version v2 will be GA released in version v1.5. Please go to #707 for detail.

Breaking Changes

  • In this release(v1.3), the CRD version has been upgraded to apiextensions.k8s.io/v1, which means that the minimum version of Kubernetes supported by APISIX Ingress is v1.16 and later.
  • The ValidatingWebhookConfiguration version has been upgraded to admissionregistration.k8s.io/v1, which means that if you want using the default Dynamic Admission Control, you need ensure that the Kubernetes cluster is at least as new as v1.16.

New Features

  • We have introduced the v2beta2 version of ApisixRoute and will drop support for v2alpha1 ApisixRoute #698
  • Add cert-manager support #685
  • Add full compare when APISIX Ingress startup #680
  • Support TLS for Ingress v1 #634
  • Add admission server and a validation webhook for plugins #573
  • Add timeout field for ApisixRoute CR #609
  • Add new metrics apisix_ingress_controller_check_cluster_health and apisix_ingress_controller_sync_success_total #627

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

Contributors

  • kv
  • Hoshea Jiang
  • Jintao Zhang
  • Sarasa Kisaragi
  • Baoyuan
  • SergeBakharev
  • Sindweller
  • chen zhuo
  • liuxiran
  • oliver

Changes

  • a290f12 docs: correct helm repo (#657)
  • a01888b feat: Change field retries to value from pointer. (#647)
  • 6f46ac2 Make webhook cover ApisixRoute v2beta2 (#705)
  • 9dd4f40 feat: add webhooks for consumer/tls/upstream (#667)
  • 657a1fd doc: add grpc proxy (#699)
  • 88be11a fix: CRD v1 preserve unknown fields (#702)
  • d46b248 feat: upgrade ApisixRoute v2beta2 apiversion. (#698)
  • 736aba3 feat: upgrade admission apiversion to v1 (#697)
  • 0630ac5 feat: upgrade CRD version to v1 (#693)
  • 957c315 feat: add full compare when ingress startup (#680)
  • 1b71fa3 feat: support cert-manager (#685)
  • 3e9bdbf fix: the fields in UpstreamPassiveHealthCheckUnhealthy should be timeouts (#687)
  • 5c9cdbe fix: remove the step of deleting httpbinsvc (#677)
  • 7216532 Remove volumeMounts when webhook is disabled (#679)
  • 1e1be74 add metric: check_cluster_health and sync_operation_total (#627)
  • 6a8658d fix: add initContainers to verify if apisix is ready (#660)
  • d4a832c feat: route crd add timeout fields (#609)
  • a9960c2 Add API for getting schema of route, upstream and consumer (#655)
  • 75a2aaa feat: Implement the admission server and a validation webhook for plugins (#573)
  • 270a176 fix: e2e failure due to count returned by APISIX (#640)
  • c284f38 docs: update practices index for website (#654)
  • 9ab367f docs: Supplement FAQ for the error log ‘no matches for kind “ApisixRoute” in version “apisix.apache.org/v2beta1”’ (#651)
  • 62b7590 feat: support TLS for ingress v1 (#634)
  • 68b7d7d chore: release v1.2.0 (#633)
  • d537ddc feat: add link check (#635)
  • d7128a1 chore: skip CodeQL if go files have no changes (#636)
  • d8854c3 docs: fix config.json (#628)

Dependency Changes

  • github.com/fsnotify/fsnotify v1.5.0 new
  • github.com/prometheus/client_golang v1.7.1 -> v1.10.0
  • github.com/slok/kubewebhook/v2 v2.1.0 new
  • github.com/stretchr/testify v1.6.1 -> v1.7.0
  • github.com/xeipuuv/gojsonschema v1.2.0 new
  • golang.org/x/sys 0f9fa26af87c -> bce67f096156

Previous release can be found at 1.2.0

1.2.0

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

This is a GA release.

Highlights

New Features

  • Support ingress v1beta1 HTTPS #596
  • Implement schema API #601

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

Contributors

  • kv
  • Jintao Zhang
  • Baoyuan
  • Hoshea Jiang
  • chen zhuo
  • okaybase
  • yuanfeng0905
  • 天使莫忆

Changes

  • 3ab162b chore: bump version v1.2.0
  • 3ad1a1c docs: fix install docs (#579)
  • 499962b docs: ApisixRoute v2alpha1 is deprecated (#623)
  • c1de18f docs: update mTLS support in ApisixTls reference (#624)
  • 3cd6892 fix: ApisixRoute printcolumns (#626)
  • 91d985e fix field tag omiteempty (#622)
  • f78248a fix: sync apisix failed when use v2beta1 ApisixRoute (#620)
  • 00ff017 ci: add ingress log when e2e failed (#616)
  • e5441a3 feat: implement schema API (#601)
  • 5635652 fix: timer leak memory (#591)
  • 812e4bd docs: add declarations for the version of APISIX (#595)
  • 915a5d1 test: add assert for test cases (#613)
  • d12a900 fix: add v2beta1 logic (#615)
  • ac25764 feat: support ingress v1beta1 https (#596)
  • 866d0bf docs: modify the format of FAQ.md (#605)
  • 2d12c3f docs: add v2beta1 description (#602)
  • 7291212 fix: do not need to record status when ApisixUpstream removed (#589)
  • c78c823 chore: merge from v1.1 (#583)
  • e649c50 chore: add udp usage & upgrade the verion of ApisixRoute (#585)
  • 57ec6da fix: misspell in FAQ (#577)

Dependency Changes

  • github.com/google/uuid v1.2.0 new
  • github.com/onsi/ginkgo v1.16.4 new
  • golang.org/x/net 3d97a244fca7 -> 4163338589ed
  • golang.org/x/sys 0f9fa26af87c new
  • golang.org/x/tools v0.1.5 new

Previous release can be found at 1.1.0

1.1.0

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

This is a GA release.

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

Highlights

New Features

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

Contributors

  • Alex Zhang
  • Fang
  • kv
  • Jintao Zhang
  • Shuyang Wu
  • benson211

Changes

  • 67f3fd9 chore: endpointslice controller (#574)
  • 1c17b41 feat: add logic for ApisixRoute v2beta1 (#576)
  • a754f69 feat: abstract the endpoints-related logic (#563)
  • 4b16e28 chore: cleanup apisixservice. (#566)
  • 534fab3 feat: add v2beta1 structure for ApisixRoute (#572)
  • c871bdf test: dump the namespace content when e2e test cases failed (#571)
  • dbc8133 doc: update k3s-rke.md (#568)
  • 70d0100 chore: update config of installation by Kustomize (#557)
  • 2122d76 docs: clarify installation by Kustomize (#558)
  • b4a6889 Update default version in Makefile (#556)
  • f5cc76e chore: remove cancel-workflow.yml since no use (#550)

Dependency Changes

  • github.com/fsnotify/fsnotify v1.4.9 new
  • github.com/gruntwork-io/terratest v0.32.8 new
  • github.com/hashicorp/go-multierror v1.0.0 -> v1.1.0
  • k8s.io/api v0.20.2 -> v0.21.1
  • k8s.io/apimachinery v0.20.2 -> v0.21.1
  • k8s.io/client-go v0.20.2 -> v0.21.1

Previous release can be found at 1.0.0

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

  • 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

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

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)

0.4.0

This release mainly improves the program robustness and adds some features.

Core

  • Support Kubernetes Ingress resources #250
  • Support ApisixRoute v2alpha1 #262
  • Support healthchecks definition #117
  • Support secret controller #284
  • Project optimization #92

Test

  • Add test cases for pkg/kube #99

0.3.0

This release mainly improves the program robustness and adds some features.

Core

  • Support Leader election to let only the leader process resources #173;
  • Let Controller itself generates resource ids instead of relying on APISIX #199;
  • Change go module name from github.com/api7/ingress-controller to github.com/apache/apisix-ingress-controller #220;
  • Re draw the design diagram #214;
  • Support gRPC scheme in ApisixUpstream #225;
  • SSL resource cache optimization #203;

Deploy

  • Complete the compatibility tests on Amazon EKS, Google Cloud GKE, Ali Cloud ACK and etc #177, #180, #183;
  • Refactor the helm charts, merging ingress-apisix and ingress-apisix-base into apisix-ingress-controller #213;

Test

  • Now CI runs e2e test suites in parallel #172;

0.2.0

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

Core

  • Enhanced documentation, easier to read and execute #129
  • API specification for CRDs #151
  • Support Canary plugin (Base on the feature in Apache APISIX) #13
  • Support prometheus metrics #143
  • Support install ingress controller by Helm Chart #153
  • Support reconcile loop. #149 #157 #163
  • Support namespaces filtering. #162
  • Some Refactor. #147 #155 #134

Test case

more e2e case #156 #142

Back to TOC

0.1.0

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

Core

  • Enriched documentation.
  • CI Integration. #75 #80 #84 #87 #89 #97
  • Support retry when sync failed. #103
  • Support using kustomize install all resources. #72
  • Support command line configuration. #61
  • Support to define SSL by CRD. #95

Test case

  • Add E2E test environment. #101

Bugfix

  • invalid memory address or nil pointer dereference. #9

Back to TOC