Welcome to Scylla Manager repository! Scylla Manager user docs can be found here.
Scylla Manager consists of tree components:
sctool
- a CLI interface to the serverScyllaDB version | Workflows | Limitations |
---|---|---|
2024.1.12 | Restoration of schema into cluster with consistant_cluster_management: true is not supported |
|
2023.1.11 | Restoration of schema into cluster with consistant_cluster_management: true is not supported |
|
6.2.0 | Restoration of Authentication and Service Levels is not supported Restoration of schema containing Alternator tables is not supported |
|
latest-enterprise | Restoration of Authentication and Service Levels is not supported Restoration of schema containing Alternator tables is not supported |
The desired Go version is specified in .go-version
file.
You can install or update Go version by running make install
in go
directory.
It would install the required version alongside your current version assuming that go is extracted from an official tar package.
If you do not have any Go installed at this point you can pass TARGET variable to specify a directory where to install Go.
Procedure:
make -C go install TARGET=/path/to/go/sdks/goversion
example make install TARGET=~/tools/go/go1.15.5.linux-amd64
GOROOT
environment variable as <git-root>/go/latest
./install-dependencies.sh
If using GoLand update import grouping policy:
In order to run a Scylla it's required to increase the number of async i/o operations limit.
echo "fs.aio-max-nr = 1048576" > /etc/sysctl.d/50-scylla.conf
Let's start the development environment.
make start-dev-env
for IPv6 environment:
IPV6=true make start-dev-env
for SSL scylla cluster:
SSL_ENABLED=true make start-dev-env
This command will:
Additionally, you can start container with scylla-manager server.
make run-server
Docker compose environment for test cluster is located in the testing
directory.
Once scylla-manager
is bootstrapped use ./sctool
to add information about the cluster to the manager:
./sctool cluster add --host=192.168.100.11 --auth-token token --name my-cluster
You can ask Scylla Manager to give the status of the cluster:
./sctool status
For other commands consult user manual.
Make is self-documenting run make
or make help
to see available targets with descriptions.
More Makefile targets are available in testing
directory.
If test environment is running correctly you can run tests with:
make test
This runs both unit and integration tests. You can run them separately with:
make unit-test
make integration-test
make pkg-integration-test PKG=pkg/service/foo
For IPv6 environment:
make unit-test
IPV6=true make integration-test
IPV6=true make pkg-integration-test PKG=pkg/service/foo
Project testing heavily depends on integration tests, which are slow. Tests should run for a couple of minutes. All tests should succeed.
There are two HTTP APIs that are specified with Swagger format, the API of the Scylla node and the API of the scylla-manager
itself.
Client implementations are separated into packages:
scyllaclient
which contains client for the Scylla API along with Swagger specification file scylla-api.json
and,managerclient
which contains client for the scylla-manager
API along with Swagger specification file scylla-manager-api.json
.Both clients are generated automatically by shell scripts. To refresh generated packages from Swagger specification run:
make generate
# Or for generating specific client package ex.
go generate ./managerclient
go generate ./scyllaclient
Develop on dedicated branch rooted at master. Pull master regularly and rebase your work upon master whenever your dev branch is behind. You are allowed and required to force push to your branches to keep the history neat and clean.
Document your work in commit messages. Explain why you made the changes and mention IDs of the affected issues on GitHub.
Before pushing please run make check
and make test
to make sure all tests pass.
When satisfied create a pull request onto master. All pull requests have to go through review process before they are merged.
Scylla Manager Source Code is available under Scylla Source Available License (SSAL).