commit | a4805a910904019698ae373ac33f88855cf67f3d | [log] [tgz] |
---|---|---|
author | Jon Haddad <jon@jonhaddad.com> | Wed Apr 29 16:48:12 2020 -0700 |
committer | Jon Haddad <jon@jonhaddad.com> | Tue Jul 28 12:36:47 2020 -0700 |
tree | 59ca38f00d0c3633e9c77fd8a757e83792a452c8 | |
parent | c9da4b213946fc6dbe8cdcbbc2445348f14a89af [diff] |
Support for multiple Cassandra versions This patch lays the groundwork to support multiple Cassandra versions. New submodules were created for common libraries as well as specific Cassandra versions. Several dependencies are moved to the common submodule due to their universal nature. Most importantly, this patch introduces Junit Test Template for testing multiple Cassandra versions. Test should be annotated with a @CassandraIntegrationTest. These tests require Docker and Kubernetes be available. A single version is currently supported, 4.0. A dockerfile sets up the image from the beta tarball and initializes the session. Cassandra driver was upgraded to version 3.9, previous versions errored with Java 11. CircleCI tests are run using microk8s. Patch by Jon Haddad; Reviewed by Dinesh Joshi for CASSANDRASC-23
This is a Sidecar for the highly scalable Apache Cassandra database. For more information, see the Apache Cassandra web site and CIP-1.
This is project is still WIP.
After you clone the git repo, you can use the gradle wrapper to build and run the project. Make sure you have Apache Cassandra running on the host & port specified in conf/sidecar.yaml
.
$ ./gradlew run
We rely on Kubernetes for creating docker containers for integration tests.
The easiest way to get started locally is by installing Minikube.
Start minikube with a command similar to the following. Use a netmask appropriate for your local network, and allow minikube to use as much RAM as you can afford to:
minikube start --insecure-registry "192.168.0.0/16" --addons registry --memory 8G --cpus=4
This will create a MiniKub cluster using the default driver. On OSX, this is hyperkit.
Enabling the tunnel is required in certain environments for tests to connect to the instances.
In a separate tab (or background process) run the following:
minikube tunnel
Check the dashboard to ensure your installation is working as expected:
minikube dashboard
Set the environment property for the Minikube container (we recommend you do this as part of your system profile):
You can use an existing Kubernetes environment by setting the appropriate project properties either through environment variables
export SIDECAR_DOCKER_REGISTRY="http://$(minikube ip):5000"
Gradle will register the required test containers with the local docker registry. You can enable this after setting up Minikube by doing the following:
Note: If using MiniKube, the Docker daemon will need to be configured to push to your Minikube repo insecurely.
This should be added to the daemon.json
config, usually found in /etc/docker, or in the Docker Engine section of the docker preferences:
"insecure-registries": [ "192.168.64.14:5000" ]
You can use build
, test
to build & test the project.
Please see the developer documentation in docs/src/development.adoc for more information.
You will need to use the “Add Projects” function of CircleCI to set up CircleCI on your fork. When promoted to create a branch, do not replace the CircleCI config, choose the option to do it manually. CircleCI will pick up the in project configuration.