Helm chart
The maintained Elassandra Helm chart now lives in the dedicated
incloudsio/helm-charts repository under
charts/elassandra.
The chart models one Elassandra JVM per StatefulSet pod, exposes separate CQL and
search services, and optionally deploys OpenSearch Dashboards.
Install with default values
Clone the chart repository and install from the chart directory:
git clone https://github.com/incloudsio/helm-charts.git
helm install elassandra ./helm-charts/charts/elassandra
This default path is intentionally conservative:
one Elassandra pod by default
persistent storage enabled
separate headless, CQL, and search services
OpenSearch Dashboards disabled by default
Install on minikube
Build the local image first from the Elassandra source repository:
./gradlew :distribution:docker:buildDockerImage
minikube image load elassandra:test
Then install the minikube profile:
helm install elassandra ./helm-charts/charts/elassandra \
-f ./helm-charts/charts/elassandra/values-minikube.yaml
The values-minikube.yaml preset keeps the deployment to a single Elassandra pod and
switches the CQL and search services to NodePort for easier local access.
Enable OpenSearch Dashboards
Dashboards stays optional so that local and test installs can remain lightweight. Enable it at install time with either inline values or your own overlay file:
helm install elassandra ./helm-charts/charts/elassandra \
-f ./helm-charts/charts/elassandra/values-minikube.yaml \
--set dashboards.enabled=true
Provider presets
The chart includes provider-specific values files:
helm-charts/charts/elassandra/values-aws.yamlhelm-charts/charts/elassandra/values-gcp.yamlhelm-charts/charts/elassandra/values-azure.yamlhelm-charts/charts/elassandra/values-minikube.yaml
These presets intentionally focus on install-time defaults such as replica count, heap sizing, anti-affinity, and storage class names. They do not yet automate provider identity integrations such as IRSA, GKE Workload Identity, or Azure managed identity.
Example:
helm install elassandra ./helm-charts/charts/elassandra \
-f ./helm-charts/charts/elassandra/values-aws.yaml
AKS / ACR example
The Azure preset references elassandra.azurecr.io/elassandra:1.3.20.
If your AKS cluster is attached to the ACR:
az aks update \
--resource-group <resource-group> \
--name <aks-cluster> \
--attach-acr elassandra
helm upgrade --install elassandra ./helm-charts/charts/elassandra \
--namespace elassandra \
--create-namespace \
-f ./helm-charts/charts/elassandra/values-azure.yaml
If the cluster is not attached to the ACR, create an image pull secret and pass it to the chart:
kubectl create namespace elassandra
kubectl create secret docker-registry elassandra-acr \
--namespace elassandra \
--docker-server=elassandra.azurecr.io \
--docker-username=<acr-username> \
--docker-password=<acr-password>
helm upgrade --install elassandra ./helm-charts/charts/elassandra \
--namespace elassandra \
-f ./helm-charts/charts/elassandra/values-azure.yaml \
--set imagePullSecrets[0].name=elassandra-acr
Rendered resources
The chart creates:
a StatefulSet for Elassandra
a headless service for peer discovery
a CQL/JMX service
an HTTP search service
optional OpenSearch Dashboards deployment and service
Validate before installing
Typical validation commands:
helm lint ./helm-charts/charts/elassandra
helm template elassandra ./helm-charts/charts/elassandra \
-f ./helm-charts/charts/elassandra/values-minikube.yaml