Require at least one approval before merging
1 file changed
tree: 3051c33df6c20ec9874cbb7f6c54e1e14e1dd68e
  1. .github/
  2. cmd/
  3. config/
  4. consts/
  5. controller/
  6. docs/
  7. logger/
  8. metadata/
  9. metrics/
  10. scripts/
  11. server/
  12. storage/
  13. util/
  14. version/
  15. webui/
  16. .asf.yaml
  17. .gitignore
  18. .golangci.yml
  19. build.sh
  20. Dockerfile
  21. go.mod
  22. go.sum
  23. LICENSE
  24. Makefile
  25. NOTICE
  26. README.md
  27. VERSION.txt
README.md

Apache Kvrocks Controller

Build Status Go Report Card codecov

Apache Kvrocks Controller is a cluster management tool for Apache Kvrocks, including the following key features:

  • Failover - controller will failover or remove the master/slave node when probing failed
  • Scale out the cluster in one line command
  • Manage many clusters in one controller cluster
  • Support multi metadata storages like etcd and so on

Build and Running

Requirements

  • Go >= 1.16

Build binaries

$ git clone https://github.com/apache/kvrocks-controller
$ cd kvrocks-controller
$ make # You can find the binary file in the `_build` dir if all goes good
# ---
# If you do not have a suitable Golang compilation environment locally, you can also use 'make BUILDER_IMAGE=<golang:version>' to choose a Golang image for compilation.
# $ make BUILDER_IMAGE=golang:1.20.3

Overview

image For the storage, the ETCD is used as the default storage now. Welcome to contribute other storages like MySQL, Redis, Consul and so on. And what you need to do is to implement the persistence interface.

1. Run the controller server

# Use docker-compose to setup the etcd
$ make setup
# Run the controller server
$ ./_build/kvctl-server -c config/config.yaml

image

2. Create the namespace and cluster via kvctl

image

For the HTTP API, you can find the HTTP API(work in progress) for more details.