Code Monkey home page Code Monkey logo

helm-cassandra's Introduction

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

helm-cassandra's People

Contributors

abhijithganesh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.