Skip to content

Releases: apache/kvrocks-controller

1.2.0

12 Oct 05:44

Choose a tag to compare

Highlights: this release introduces a brand-new Web UI experience with a complete redesign and several functional enhancements:

  • Modernized navigation and layout with dark mode support.
  • Redesigned pages across cluster, shard, namespace, node, and homepage.
  • Improved usability with breadcrumb navigation, refined spacing, and updated visuals.
  • New features in the UI, including shard master failover and cluster slot migration directly from the interface.

In addition, this release brings support for PostgreSQL as a storage engine, slot-range-based migration, enhanced logging, and improved cluster synchronization.


New Features

  • Add Docker instructions to README (#261)
  • Add support for PostgreSQL as a store engine (#255)
  • Save logs to a file and rotate it (#270)
  • Update the latest cluster info from the node whose version is larger than the local cluster version (#271)
  • Add support for migrating with slot range (#304)
  • Build the kvrocks container to allow running multiple instances (#305)
  • Enhance the migration test cases with the slot range (#309)
  • Return its ID when creating a new node (#307)
  • Add the failover API into docs (#311)
  • Sync cluster info to nodes concurrently (#320)
  • Validate the preferred node ID format in the failover API (#323)
  • Enhance the slave node promotion (#340)
  • Replace min_alive_size to max_ping_count in config.yaml (#350)

WebUI Feature Work / Redesigns:

  • Redesigned webpage (#281)
  • feat(webui): redesign the footer element (#287)
  • feat(webui): make the top navbar more modern (#297)
  • feat(webui/header): move tabs to right & add breadcrumb navigation (#314)
  • feat(webui/homepage&footer): Redesign homepage and footer with dark mode (#316)
  • feat(webui/namespace): redesign namespace and sidebar (#319)
  • feat(webui/cluster): redesign cluster page (#322)
  • feat(webui/shard): redesign shard page (#325)
  • feat(webui/node): redesign node page (#327)
  • feat(webui/node): redesign node detailed page (#330)
  • feat(webui): refined all pages, added border radius, fixed spacing issues (#336)
  • feat(webui): implemented shard master failover, added delete icon in list view (#337)
  • feat(webui): implemented cluster slot migration (#341)

Bug Fixes

  • Fix wrong check if the migrating slot in the source node (#269)
  • Fix typo in the main UI heading (#279)
  • Fix log for slot migration success (#277)
  • fix consul engine bug when calling Set and List (#283)
  • Fixed the top Navigation Bar blue color while reloading (#290)
  • fixing license checker path (#294)
  • Fix npm build error and build web ui in CI (#296)
  • Fix migration info may be empty when fetching migrating_state from node fails (#300)
  • Fix the migrating slot was not compatible with the old format (#310)
  • Fix data race when migrating slots (#324)
  • Fix nil pointer when printing the MigratingSlot string function (#332)
  • Fix HasOverlap might return the wrong result (#335)
  • The failover command previously gave EOF (#344)
  • Fix test case failure after hardening the promote master behavior (#354)
  • Fix flaky test in cluster failover (#355)
  • Fix leader change hasn't updated prevTermLeader when losing the leader (#353)
  • Fix the data race when migrating slots on multi-shards (#352)
  • Marshal the value into the null value if the slot is not migrating (#346)

Misc

  • Update copyright date in NOTICE (#260)
  • Update godeps (#259, #262, #263, #264, #275, #289, #299)
  • Add Prettier and format all files (#288)
  • Use gotestsum to beautify the test output (#326)
  • Require CI must be passed before merging (#338)
  • Enable dismiss_stale_reviews in .asf.yaml (#343)
  • Add branch 1.0 and 1.1 as protected branches in .asf.yaml (#345)
  • Enable the auto-merge and the update branch feature in CI (#356)

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

28 Jan 07:18

Choose a tag to compare

Highlights

We are excited to announce the release of the embedded raft storage in this version. Users don't have to introduce other external components to store the metadata. Also, we now support Hashicorp Consul as our metadata storage, big thanks to the contributor @borismartinovic01.

New Features

Bug Fixes

  • Fix client list command didn't handle API response error correctly by @ninuxer in #199
  • Fix should use json.Unmarshal instead of gin.BindJSON by @git-hulk in #196
  • Replace docker-compose with docker compose by @jihuayu in #198
  • Fix wrong slot range check condition when migrating slot by @git-hulk in #208
  • Fix empty slot range is not allowed when importing a cluster by @git-hulk in #212
  • Fix data race while updating the cluster info by @git-hulk in #217
  • Fix some wording about Raft in the README by @PragmaTwice in #234
  • Fix flaky test case in raft engine by @git-hulk in #235
  • Avoid syncing the cluster information to the node if it's restoring by @git-hulk in #236
  • Copy licenses to Dockerfile by @PragmaTwice in #193
  • Move build.sh into the scripts dir by @git-hulk in #194
  • Improve readme by @caicancai in #203
  • Extract mocked Engine to a separate file by @torwig in #205
  • Fix should update cluster information to the remote store first by @git-hulk in #237
  • Relax the cluster version check when updating the cluster by @git-hulk in #238
  • Fix nil pointer when cloning the cluster by @git-hulk in #242
  • Remove the detection of GOARCH and GOOS when building by @git-hulk in #218
  • Introduce etcd's raft to implement the KV store by @git-hulk in #222
    *Fix typo: dail -> dial by @fukua95 in #224
  • Fix missing yaml tag in raft config and List API didn't work correctly by @git-hulk in #228
  • Fix data race when updating the raft snapshot and compact threshold by @git-hulk in #253

Misc

New Contributors

Full Changelog: v1.0.0...v1.1.0-rc1

v1.0.0

14 Jul 12:05

Choose a tag to compare

What's Changed

This is the first official release since entering ASF. the new release contains many improvements and fixes, as well as new features.

New Features

  • Add support of the terminal client for the server by @git-hulk in #171
  • Add support of the failover command by @git-hulk in #173
  • Add the support of using Apache Zookeeper as an alternative storage by @jihuayu in #126

Bug Fixes

  • Remove the migration and failover history from the storage by @git-hulk in #121
  • Add import cluster API for adding existing clusters by @git-hulk in #120
  • Fix missing password if it's set by @git-hulk in #122
  • Don't exit the process while receiving the SIGHUP signal by @git-hulk in #123
  • Fix typo in API.md by @jihuayu in #128
  • Fix missing ERR prefix in error message by @xiaobiaozhao in #145
  • Fix create cluster API field replica to replicas by @cyningsun in #148
  • Fix the request method error in Import Cluster doc. by @jihuayu in #150
  • Don't add the node into the failover candidates if it's not a master node by @git-hulk in #164
  • Fix flaky test in controller module by @git-hulk in #170
  • Fix the error check after Kvrocks removes the ERR prefix by @git-hulk in #188
  • Avoid creating too many Redis clients by reusing by @erwadba in #187
  • Fix possible slot range loss in the importing API by @git-hulk in #189

Improvements

New Contributors

Full Changelog: v0.3.1...v1.0.0

v0.2.0

17 Jul 04:05
b3e1a67

Choose a tag to compare

Fix don't allow the domain name when creating the cluster (#97)

Release v0.1.0

14 May 12:36
54a4bb7

Choose a tag to compare

This release mainly contains below features:

  • Create / List / Delete namespace
  • Create / List / Delete cluster
  • Create / List / Delete shard
  • Health check and auto-failover between master and slaves

The slot migration is still working in progress, will release them in the next version.

NOTICE: This version is still NOT stable for production.