Manually Installing Sisense Helm Chart - Single Node

Last updated: October 21, 2026

Tier Deployment
Enterprise On-Prem

You can install the Sisense Helm chart itself directly on your Kubernetes cluster, meaning installing the Sisense app itself, without using the sisense.sh script.

This page describes a single-node installation, in which Sisense stores its data on the disk of the node (hostPath volumes under /opt/sisense). To install on a multinode or cloud-managed cluster with StorageClasses, see Installing Sisense with Helm on an Existing Cluster (Multinode/Cloud).

Prerequisites

  • General prerequisites: Checking the Prerequisites and Planning Your Configuration.
  • You must have a pre-installed Kubernetes. Have your own kubernetes cluster or Install the kubernetes cluster (you can use the Sisense installation to only install k8s). You also must be connected to your Kubernetes cluster (i.e., you can do kubectl commands such as kubectl get pod, and others).
    For example: To install Kubernetes via the sisense.sh script, modify the installer/extra_values/installer/installer-values.yaml file, and make sure install_k8s_only: true, which will only install Kubernetes and will exit without Sisense installation.

  • Helm 3.13 or later (required to preview an installation or upgrade with --dry-run=server).

  • If your cluster enforces Pod Security Admission, the Sisense namespace must allow the privileged level. A single-node installation uses hostPath volumes, which the baseline and restricted levels do not allow. See Privileges and Permissions for Self-Deployment.

  1. Create the directory /opt/sisense and mount it on a self dedicated disk.

    1. Create the following sub-directories and give them ownership according to your running user ID. Note that the ZooKeeper directory is /opt/<namespace>/zookeeper, where <namespace> is the namespace that you install Sisense into.

      Copy
      NAMESPACE=sisense #for example
      run_as_user=${run_as_user:-1000}
      run_as_group=${run_as_group:-1000}

      sudo mkdir -p /opt/${NAMESPACE}/zookeeper
      sudo mkdir -p /opt/sisense/mongodb
      sudo mkdir -p /opt/sisense/storage
      sudo mkdir -p /opt/sisense/dgraph-io
      sudo mkdir -p /opt/sisense/alertmanager
      sudo mkdir -p /opt/sisense/grafana/grafana-${NAMESPACE}
      sudo mkdir -p /opt/sisense/prometheus/prometheus-db
      sudo mkdir -p /opt/sisense/alertmanager/alertmanager-db

      sudo chown -R ${run_as_user}:${run_as_group} /opt/sisense /opt/${NAMESPACE}/zookeeper
  2. Label your Kubernetes node as sisense.sh does. If the node has a control-plane NoSchedule taint, remove it so that Sisense pods can run on the node:

Copy
kubectl label node ${node_name} node=single --overwrite=true

# Check the taints of the node:
kubectl describe node ${node_name} | grep Taints
# If needed, remove the taint, for example:
kubectl taint nodes ${node_name} node-role.kubernetes.io/master:NoSchedule-

Note:

If you are using a cloud managed K8s or OpenShift, you may not be able to use the kubectl label node or oc label node command, and you will have to modify the node labels via the Cloud/OpenShift provider’s UI or CLI command.

  1. Create your Sisense namespace (project).

    Copy
    NAMESPACE=sisense #for example
    kubectl create ns ${NAMESPACE}
  1. If you would like to use the internal monitoring app, see Installing/Updating Sisense Internal Monitoring.

Sisense Helm Chart Installation

  1. Add the Sisense helm repo, and run a quick update to sync with the remote repo:

    Copy
    helm repo add sisense-fusion https://data.sisense.com/linux/helm/charts/fusion
    helm repo update
  2. List the available chart versions. Use the value in the CHART VERSION column, for example 2026.4.0, as the chart version in the following commands.

    Copy
    helm search repo sisense-fusion/sisense --versions | head

Upgrading an Existing Sisense Installation

  1. If you already have your own predefined singlenode-values.yaml file (which you used from previous installations), and you are only upgrading the Sisense version, perform the following command:

Copy
NAMESPACE=sisense            # your namespace
RELEASE=sisense              # the release name of the existing installation (see: helm list -n ${NAMESPACE})
SISENSE_SEMVER=<new chart version>
# Example:
# SISENSE_SEMVER=2026.4.0

helm upgrade ${RELEASE} sisense-fusion/sisense --version ${SISENSE_SEMVER} -n ${NAMESPACE} -f singlenode-values.yaml
  • Always pass your complete values file. Do not use --reuse-values: new chart versions can change default values, and --reuse-values keeps the old ones.

  • To preview the upgrade, run the same command with --dry-run=server.

  • Check the release notes for the versions between your current version and the new one. If the running MongoDB is older than version 7, the chart stops the upgrade with the message Your current Sisense version is too old. Please first upgrade to Sisense version L2025.2.0, and then proceed with the newer installation. Upgrade to L2025.2.0 first, and then to the new version.

  1. Continue with Post Installation.

First Sisense Installation

If this is the first time you are installing Sisense, follow these instructions.

  1. Download the singlenode-values.yaml file to your server: singlenode-values.yaml.

  2. Edit any values that you need to set. See Sisense Helm Chart Parameters. Keep global.clusterMode.enabled: false and global.storageClass: manual: with these values, the chart creates hostPath PersistentVolumes for MongoDB, ZooKeeper, Dgraph, and Grafana on the node.

  3. If you have installed Sisense Internal Monitoring, set the following values in the singlenode-values.yaml file (they are commented out in the file):

    • global.monitoring.internal: true

    • mongodb.metrics.enabled, rabbitmq.metrics.enabled, and zookeeper.metrics.enabled: true, and mongodb.metrics.serviceMonitor.namespace: your monitoring namespace. These settings require the Prometheus Operator CRDs that internal monitoring installs.

    • The Grafana Prometheus datasource url: http://sisense-prom-operator-kube-prometheus.<monitoring-namespace>.svc:9090.

  1. If you are installing Sisense on a namespace other than sisense, change grafana.persistence.selectorLabels.app in the singlenode-values.yaml file to grafana-<namespace>. This is the only namespace-dependent value in the file.

    Example for the namespace mynamespace:

    Copy
    grafana:
      ...
      persistence:
        storageClassName: manual
        selectorLabels:
          app: "grafana-mynamespace"

    If you reuse a values file from an earlier version of this page, remove its zookeeper.configuration block. The chart builds the ZooKeeper configuration from zookeeper.replicaCount, the release name, and the namespace.

  2. Install Sisense using the values file. Use the namespace name as the release name, as sisense.sh does:

    Copy
    NAMESPACE=sisense            # your namespace; also used as the release name
    SISENSE_SEMVER=<chart version>
    # Example:
    # SISENSE_SEMVER=2026.4.0

    helm upgrade --install ${NAMESPACE} sisense-fusion/sisense --version ${SISENSE_SEMVER} -n ${NAMESPACE} -f singlenode-values.yaml

After ~30 seconds, the following message appears (the message could be slightly different, depending on given values; for example, if using a LoadBalancer):

HelmInstallSuccess

Post Installation

When you see the message above, the Sisense app is undergoing the deployment process. Use the following command to follow its progress until it is completed:

kubectl logs -f --namespace ${NAMESPACE} -l app.kubernetes.io/name=validator

Initially, you can see the services as they are being deployed:

ServicesDeployment

When all of the services are up, the message Sisense installation process completed successfully appears.

SingleHelm InstallSuccess

Once the installation is complete, some Sisense pods will remain in the Init state until the license activation. To activate the license, navigate to the Sisense web application URL (without extra paths such as /app/account/login) in your browser and enter your license credentials.

Enter your Sisense address, and run the activation.

Activation