mr-cassop
mr-cassop is a Kubernetes operator for deploying and managing Apache Cassandra clusters.
Overview
mr-cassop automates Cassandra cluster lifecycle management in Kubernetes. It includes controller-driven deployment, backup and restore integration through Icarus, repair scheduling through Reaper, Jolokia-based observability hooks, and Helm packaging.
Status
This repository has been modernized from the original IBM Cassandra operator codebase and is under active maintenance. The current branch builds with Go 1.26, Kubernetes 1.36 libraries, and controller-runtime v0.24.1.
Unit, prober, and envtest integration tests are expected to pass locally. End-to-end tests still require a real Kubernetes cluster, registry access, and runtime validation of the selected Cassandra/Reaper/Icarus matrix before declaring the project production-ready.
Key Features
- Automated deployment through
CassandraCluster custom resources
- Backup and restore resources backed by Icarus
- Repair scheduling through Cassandra Reaper
- Jolokia and Prometheus monitoring integration
- Optional TLS, authentication, network policies, and multi-region topology support
Quick Start
Start with the project documentation:
Local Demo
./build-local.sh --cassandra && \
kubectl create namespace mr-cassop-system && \
helm install mr-cassop ./mr-cassop -n mr-cassop-system -f local-values.yaml
See the Quickstart Guide for detailed setup steps.
Architecture
mr-cassop consists of integrated components working together:
- Operator Controller - Manages cluster lifecycle and reconciliation
- Cassandra Nodes - Core database instances in StatefulSets
- Prober - Health monitoring and metrics collection
- Jolokia - JMX-to-HTTP bridge for observability
- Reaper - Automated repair management
- Icarus - Backup and restore service
See the Architecture Overview for detailed component interactions and system diagrams.
Documentation
Run Documentation Locally
cd docs && npm install && npm start
Requirements
- Kubernetes 1.28+ for deployments; envtest coverage uses Kubernetes 1.32.x assets.
- Cassandra 4.1.11 is the default supported image target.
- Go 1.26+ for local development.
- Node.js 24+ for documentation builds.
- Helm 3.15.4+ for installation and chart validation.
- Persistent volumes are recommended for Cassandra data.
- Minimum Cassandra node sizing depends on workload, but start with at least 2 CPU cores and 4 GiB RAM per node for non-trivial testing.
Contributing
We welcome contributions! Please read CONTRIBUTING.md for development setup and contribution guidelines.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.