Welcome to Scylla Manager repository! Scylla Manager user docs can be found here.
Scylla Manager consists of tree components:
- a server that manages Scylla clusters
- an agent running on each node
sctool
- a CLI interface to the server
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:
- Run
make -C go install TARGET=/path/to/go/sdks/goversion
examplemake install TARGET=~/tools/go/go1.15.5.linux-amd64
- Define
GOROOT
environment variable as<git-root>/go/latest
- Install Docker
- Run installation script
./install-dependencies.sh
If using GoLand update import grouping policy:
- Open File -> Settings -> Editor -> Code Style -> Go
- Go to Imports Pane
- Set "Sorting type" to goimports
- Check every checkbox but "Group current project imports"
- Press OK
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
This command will:
- Build custom Scylla Docker image (testing/scylla)
- Compile server, agent and sctool binaries
- Start Scylla cluster with 2 DCs 3 nodes each (6 containers)
- Start MinIO and Prometheus containers
- Start dedicated Scylla container for Scylla Manager datastore
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 filescylla-api.json
and,managerclient
which contains client for thescylla-manager
API along with Swagger specification filescylla-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).
scylla-manager's People
Forkers
lrascao yaronkaikov tzach lauranovich zimnx zhaoxuji benipeled dgarcia360 gavinje adamstawarz vladzcloudius slavavrn annastuchlik isabella232 art-technologies fee-mendes fruch noellymedina fridgei kulezi annamikhlin hopugop charconstpointer nuivall vc-ccs-cge-incubator michal-leszczynski dkropachev penguintoast tchaikov mykaul ichirutake mikliapko kyawmyinttheinscylla-manager's Issues
repair: merge config
Ghost issue, real issue is here.
copyright
Ghost issue, real issue is here.
dbapi: renamed to scylla
Ghost issue, real issue is here.
move mermaid.UUID into it's own uuid pkg
Ghost issue, real issue is here.
Auto migrate management schema
Ghost issue, real issue is here.
swagger: scylla API in swagger 2.0
Ghost issue, real issue is here.
repair/model: switch ConfigType and Status to numeric enums
Ghost issue, real issue is here.
dbapi initial version
Ghost issue, real issue is here.
makefile: fixes
Ghost issue, real issue is here.
API security
Ghost issue, real issue is here.
Warn the user is the repair cycle takes 90% of the gc_grace_period
Ghost issue, real issue is here.
RPM packaging
Ghost issue, real issue is here.
cql: schema
Ghost issue, real issue is here.
Repair config
Ghost issue, real issue is here.
repair patch 3: repair: repair prepare
Ghost issue, real issue is here.
User can see repair logs
Ghost issue, real issue is here.
change repair service ListUnitIDs to ListUnits
Ghost issue, real issue is here.
dbapi: pool
Ghost issue, real issue is here.
ULID
Ghost issue, real issue is here.
log: added trace id from context
Ghost issue, real issue is here.
mgmtd renamed to scylla-mgmt
Ghost issue, real issue is here.
implement generator for enums
Ghost issue, real issue is here.
Add repair REST API
Ghost issue, real issue is here.
Rolling restart
Ghost issue, real issue is here.
repair patch 2: repair: vendor dependencies
Ghost issue, real issue is here.
syslog integration
Ghost issue, real issue is here.
makefile: fixes
Ghost issue, real issue is here.
makefile: fixes
Ghost issue, real issue is here.
repair: unit
Ghost issue, real issue is here.
migrate
Ghost issue, real issue is here.
vendor dependencies using github.com/golang/dep
Ghost issue, real issue is here.
mermaidtest: exported ClusterHosts
Ghost issue, real issue is here.
repair: unit api
Ghost issue, real issue is here.
paulzhol/schema updates
Ghost issue, real issue is here.
mgmtd command
Ghost issue, real issue is here.
docker: switched to 2.0 builds
Ghost issue, real issue is here.
Repair progress monitoring using Grafana
Ghost issue, real issue is here.
dbapi: token hash moved to repair
Ghost issue, real issue is here.
Track cluster topology changes during a repair
Ghost issue, real issue is here.
log: internal logger package
Ghost issue, real issue is here.
REST API vendoring
Ghost issue, real issue is here.
repair patch 1: dbapi: improvements and missing functions
Ghost issue, real issue is here.
mgmtd vendor
Ghost issue, real issue is here.
trigger repair API
Ghost issue, real issue is here.
makefile: release
Ghost issue, real issue is here.
Automate cluster configuration
Ghost issue, real issue is here.
Scylla multi dc cluster in docker-compose for development
Ghost issue, real issue is here.
repair datamodel
Ghost issue, real issue is here.
Add race detector build flavor for QA builds
Ghost issue, real issue is here.
Repair worker
Ghost issue, real issue is here.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.