GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - strapdata/elassandra-operator: Elassandra Kubernetes Operator

BranchesTags
Open more actions menu

Latest commit

 

History

827 Commits
827 Commits

Folders and files

NameName
Last commit message
Last commit date
.idea
.idea
 
 
buildSrc
buildSrc
 
 
docker
docker
 
 
docs
docs
 
 
gradle/wrapper
gradle/wrapper
 
 
helm
helm
 
 
integ-test
integ-test
 
 
java
java
 
 
prometheus
prometheus
 
 
reaper
reaper
 
 
.gitignore
.gitignore
 
 
.travis.yml
.travis.yml
 
 
Changelog.md
Changelog.md
 
 
LICENSE.AGPL
LICENSE.AGPL
 
 
README.md
README.md
 
 
build.gradle
build.gradle
 
 
cl1-cacert.pem
cl1-cacert.pem
 
 
dev.env
dev.env
 
 
download-sources.sh
download-sources.sh
 
 
gradle.properties
gradle.properties
 
 
gradlew
gradlew
 
 
gradlew.bat
gradlew.bat
 
 
license-normalizer-bundle.json
license-normalizer-bundle.json
 
 
settings.gradle
settings.gradle
 
 
skaffold.yaml
skaffold.yaml
 
 
sources-url.csv
sources-url.csv
 
 

Repository files navigation

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:

  • Manage one Kubernetes StatefulSet per Cassandra rack to ensure data consistency across availability zones.
  • Manage multiple Elassandra/Cassandra datacenters in the same or different Kubernetes clusters, in one or multiple namespaces.
  • Manage rolling configuration changes, rolling upgrade/downgrade of Elassandra, rolling restarts.
  • Scale up/down Elassandra datacenters.
  • Park/Unpark Elassandra datacenters (and associated Kibana and Cassandra Reaper instances).
  • Implements Elassandra tasks to add/remove datacenters from an Elassandra cluster.
  • Deploy Cassandra Reaper and register keyspaces to run continuous Cassandra repairs.
  • Deploy multiple Kibana instances with a dedicated Elasticsearch index in Elassandra.
  • Expose Elassandra metrics for the Prometheus Operator.
  • Publish DNS names of Elassandra broadcast IP addresses using ExternalDNS.
  • Automatically generates SSL/TLS certificates and strong passwords stored as Kubernetes secrets.
  • Create Cassandra roles and automatically grants the desired permissions on Cassandra keyspaces.
  • Automatically adjust the Cassandra Replication Factor for managed keyspaces, repair and cleanup after scale up/down.
  • Provide a java AddressTranslator for the Cassandra driver allowing to run applications in the same Kubernetes cluster as the Elassandra datacenter (similar to the EC2MultiRegionAddressTranslator but for any Kubernetes cluster).

Status

Elassandra Operator version 0.1 is currently Alpha.

  • Docker images are available on dockerhub.
  • HELM charts are available at https://charts.strapdata.com

Documentation

  • Please see the Elassandra-Operator documentation.
  • Quickstart is available here

Minimum Requirements

  • Kubernetes cluster, 1.15 or newer.
  • HELM 2

Support

  • Commercial support is available through Strapdata.
  • Community support available via Elassandra Google Groups.
  • Post feature requests and bugs on https://github.com/strapdata/elassandra-operator/issues

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:

  • Java 8
  • Docker
  • HELM 2
  • Kind (for kubernetes tests)

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 ([email protected])

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

  • Kubernetes is a trademark of THE LINUX FOUNDATION
  • Elasticsearch, Logstash, Beats and Kibana are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.
  • Apache Cassandra, Apache Lucene, Apache, Lucene and Cassandra are trademarks of the Apache Software Foundation.
  • Elassandra is a trademark of Strapdata SAS.

About

Elassandra Kubernetes Operator

Resources

Readme
Activity
Custom properties

Stars

11 stars

Watchers

1 watching

Forks

4 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.