Skip to content

sky-uk/cassandra-operator

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cassandra Operator Build Status

The Cassandra Operator is a Kubernetes operator that manages Cassandra clusters inside Kubernetes.

The project is alpha status and can be used in development environments. It is not yet recommended for use in production environments.

Main features

  • rack awareness
  • scaling out (more racks, more pods per rack)
  • scheduled backups with retention policy
  • periodic cluster definition reconciliation
  • lighweight nodetool status equivalent probes
  • works with official Cassandra Docker images
  • deployable per namespace with RBAC permissions limited to it
  • deployable cluster-wide
  • customisable Cassandra config (cassandra.yaml, jvm.options, extra libs)
  • customisable liveness / readiness probes
  • automated rolling update of Cassandra cluster definition changes
  • interruption of in-progress reconciliations when newer changes are detected
  • cluster and node level metrics
  • a comprehensive e2e test suite

How to use it?

Instructions on how to deploy the Cassandra Operator and provision Cassandra clusters can be found on the WIKI

Project structure

This project is composed of several sub-modules that are either part of the Cassandra Operator or used by it:

  • cassandra-operator: the Kubernetes operator that manages the Cassandra clusters lifecycle inside Kubernetes
  • cassandra-bootstrapper: a component responsible for configuring the Cassandra node before it can be started
  • cassandra-sidecar: a sidecar container running on each Cassandra node exposing node status
  • cassandra-snapshot: a component responsible for taking and deleting snapshots given a schedule and retention policy
  • fake-cassandra-docker: a fake Cassandra image used by the cassandra-operator and cassandra-snapshot to speed it up end-to-end testing
  • test-kubernetes-cluster: a Kind cluster used by the cassandra-operator and cassandra-snapshot to facilitate end-to-end testing

Design

The Cassandra Operator and the components it uses are described here: Cassandra Operator Design

Supported versions

We test the Cassandra Operator against the following Kubernetes / Cassandra versions.

Other Kubernetes versions are likely to work, but we do not actively test against them.

Cassandra Operator Kubernetes Cassandra
0.77.0-alpha 1.12 3.11
0.75.0-alpha 1.11 3.11
0.70.1-alpha 1.10 3.11

Questions or Problems?

  • If you have a general question about this project, please create an issue for it. The issue title should be the question itself, with any follow-up information in a comment. Add the "question" tag to the issue.

  • If you think you have found a bug in this project, please create an issue for it. Use the issue title to summarise the problems, and supply full steps to reproduce in a comment. Add the "bug" tag to the issue.

Contributions

See CONTRIBUTING.md