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.yaml`` - ``helm-charts/charts/elassandra/values-gcp.yaml`` - ``helm-charts/charts/elassandra/values-azure.yaml`` - ``helm-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 \ --name \ --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= \ --docker-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