Skip to content

This is a helm-chart intended to spin up a cassandra cluster without much load. It is optimized for low performance devices and is not for actual datacenter loads

License

Notifications You must be signed in to change notification settings

AbhijithGanesh/helm-cassandra

Repository files navigation

The image for cassandra on Kubernetes

Authored by: Abhijith Ganesh

This was a passion project to spin up a cassandra cluster without any external dependencies provided by other vendors, it is a sandbox project and heavily inspired by Bitnami's Cassandra Operator.

Installation process


Follow the steps exactly, with precision. Donot miss out any steps

Apply the Persistent Volume Claim first. This will allow the chart to register the PVC accordingly. You can read about Persistent volumes, statefulsets and other important kubernetes architecture related terms here

Statefulsets: This provision allows us to establish a stateful workload on Kubernetes, it allows the developer to configure storage provision according to your hardware, size and helps us define the reclaim policy and other parameters for the various persistent volumes. The Persistent volumes can be configured according to the use case.

To apply persistent Volume Claim, you need to run kubectl apply -f https://github.com/AbhijithGanesh/helm-cassandra/blob/master/persistentVolumeClaim.yaml

Following this, you need to add the helm repo locally: helm repo add <name> https://abhijithganesh.github.io/helm-cassandra

The value adds rancher labs local-path storage class as for the Persistent Volume, if you intend to use someother storage class, change the persistentVolumeClaim.yaml values. The storage class should accordingly be changed.

To add the local-path run command: kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/deploy/local-path-storage.yaml

Finally, you can run the helm command to set the cluster up.

helm install <cluster-name> <name>

You can get the secrets by running the commands: kubectl get secrets

This will list all your secrets, instead of cassandra-custom-chart replace it with your instance name.

To get username and password run the following commands kubectl get secret cassandra-custom-chart -o jsonpath="{.data.cassandra-superuser}" kubectl get secret cassandra-custom-chart -o jsonpath="{.data.cassandra-password}"

Parameters that can be updated with Values

Autoscaling


Variable Description
enabled boolean: true or false
minReplicas minimum number of replicas default: 1
maxReplicas Maximum number of replicas default: 100
targetCPUUtilizationPercentage Target utilization of CPU. default: 80

Naming

(Sub directory of metadata, the tree follows this structure: metadata->names)


Variable Description
pod_Name Names for all pods. default: cassandra-pods
namespace Defines Namespace for the pods.
service_Name Defines service name for the pods

Persistent Volume


Variable Description
name Defines name for persistent Volume. default: cass-persistent
claimName Defines claim name for the persistent volume. default: cass-pvc-claim

Statefulset


Variable Description
replicas Boolean variable for enabling replicasets. default: 1
prometheusEnabled Boolean variable for enabling prometheus. default: true
serviceName Service name for the statefulset. default:cass-stateful-set
listenAddr Listening address configured for the Cassandra pod. default: auto

Images

This is the sub parameter of the stateful set

Variable Description
repository Defines the repository name default: bitnami/cassandra-exporter
tag Defines the tag for the image being pulled. default: latest
imagepullPolicy Defines the pull policy (like Always, Never, IfNotPresent) for the metric. default: {}

Metrics


Variable Description
enabled Defines boolean for the metrics service. default: true
namespace Defines the namespace for the metric. default: {}

Images

This is the sub parameter of the metrics

Variable Description
registry Defines the registry from which the image is pulled. default: true
imagepullPolicy Defines the pull policy (like Always, Never, IfNotPresent) for the metric. default: {}
repository Defines the repository name default: bitnami/cassandra-exporter
tag Defines the tag for the image being pulled. default: latest

About

This is a helm-chart intended to spin up a cassandra cluster without much load. It is optimized for low performance devices and is not for actual datacenter loads

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages