Home

Awesome

Elassandra Operator Build Status GitHub release Twitter

Elassandra Logo

The Elassandra Kubernetes Operator automates the deployment and management of Elassandra clusters deployed in multiple Kubernetes clusters. By reducing the complexity of running a Cassandra or Elassandra clusters under Kubernetes, it gives you the flexibility to migrate your data to any Kubernetes cluster with no downtime and the freedom to choose your cloud provider or run on-premise.

Features

Elassandra Operator features:

Status

Elassandra Operator version 0.1 is currently Alpha.

Documentation

Minimum Requirements

Support

Contributing

The Elassandra-Operator is licensed under AGPL and you can contribute to bug reports, documentation updates, tests, and features by submitting github issues or/and pull requests as usual.

General design

The Elassandra Operator rely on the Micronaut framework and the Kubernetes java client in a reactive programming style. It does not require any Cassandra/Elassandra sidecar container, but requires a dedicated Elassandra docker image that warps the docker entrypoint for customization purposes.

Developer setup

Requirements:

Build from source

Publish the docker images (operator + elassandra + cassandra reaper):

./gradlew dockerPush -PregistryUsername=$DOCKER_USERNAME -PregistryPassword=$DOCKER_PASSWORD -PregistryUrl=$REGISTRY_URL

Publish in local insecure registry

./gradlew dockerPush -PregistryUrl="localhost:5000" -PregistryInsecure

Build parameters are located in gradle.properties.

Testing

We uses TravisCI to build and run automated integration tests on Kind. You can also run these integration tests on GKE or AKS.

Setup test cluster using Kind:

integ-test/setup-cluster.sh
integ-test/install_elassandra_operator.sh

Run integration tests:

integ-test/test-admission.sh
integ-test/test-hostnetwork.sh
integ-test/test-reaper-registration.sh
integ-test/test-scaleup-park-unpark.sh
integ-test/test-multiple-dc-1ns.sh
integ-test/test-multiple-dc-2ns.sh
integ-test/test-rolling-upgrade.sh
integ-test/test-replace-pvc.sh

License

Copyright (C) 2020 Strapdata SAS (support@strapdata.com)

The Elassandra-Operator is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

The Elassandra-Operator is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with the Elassandra-Operator. If not, see http://www.gnu.org/licenses/.

Acknowledgments