mr-cassop

command module
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 21, 2026 License: Apache-2.0 Imports: 33 Imported by: 0

README

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.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the db v1alpha1 API group +kubebuilder:object:generate=true +groupName=db.ibm.com
Package v1alpha1 contains API Schema definitions for the db v1alpha1 API group +kubebuilder:object:generate=true +groupName=db.ibm.com
cql
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
prober module
tests
integration
This file exists due to the following issue: https://github.com/golang/go/issues/27333
This file exists due to the following issue: https://github.com/golang/go/issues/27333

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL