Manually Installing Sisense Helm Chart - Single Node

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.

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.

  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:

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

      sudo mkdir -p /opt/sisense/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
  2. Manually label your Kubernetes nodes as below, and remove node taint node-role.kubernetes.io/master:NoSchedule from that node:

Copy
kubectl label node ${node_name} node=single --overwrite=true
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 oc label node command, and you will have to modify the node labels via the Cloud/OpenShift provider’s UI or CLI command.

  1. Only if you are installing Sisense without cluster visibility, create your Sisense project (namespace).

    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. Search the available chart version via one of the following commands:

    Copy
    SISENSE_VERSION=<YOUR SISENSE VERSION>
    # Example:
    # SISENSE_VERSION=L2024.1.0.46

    helm search repo sisense-fusion -l | grep ${SISENSE_VERSION}
    sisense-fusion/sisense               2024.1.046               L2024.1.0.46         Sisense Linux Deployment

    # In the case above, you'll need to install sisense version 2024.1.046 (Following the SemVer 2 convention)

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
# You can use other namespace if you wish
NAMESPACE=sisense
SISENSE_SEMVER=<You Sisense version in format SemVer 2>
# Example, for Sisense version "L2024.1.0.46":
# SISENSE_SEMVER=2024.1.046

helm upgrade -n ${NAMESPACE} sisense sisense-fusion/sisense --version ${SISENSE_SEMVER} -f singlenode-values.yaml
  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.

  3. If you have installed Sisense Internal Monitoring, then in the singlenode-values.yaml file, find each location (there are four) with the following comment, and follow the instructions in the comments:

    # If installed Sisense Prometheus ...

    Examples:

    Copy
    global:
      ...
        monitoring:
        # If installed Sisense Prometheus, set below to "true"
          internal: false

    mongodb:
      ...
      # If installed Sisense Prometheus, uncomment below "mterics" section, and make sure of the correct monitoring "namespace"
      #metrics:
      #  enabled: true
      #  collector:
      #    all: true
      #  compatibleMode: true
      #  extraFlags: "--discovering-mode"
      #  serviceMonitor:
      #    enabled: true
      #    namespace: monitoring
      #    labels:
      #      release: sisense-prom-operator
  1. If you are installing Sisense on a namespace other than sisense, then in the values.yaml file, find each location (there are three) with the following comment, and follow the instructions in the comments:

    # If installed Sisense on a different namespace than "sisense" ...

    Examples:

    Copy
    zookeeper:
      ...
      # If installed Sisense on a different namespace than "sisense", then in the last line of "configuration:", switch "sisense" to correct namespace
      # Example for namespace "mynamespace"
      # server.1=mynamespace-zookeeper-0.mynamespace-zookeeper-headless.mynamespace.svc.cluster.local:2888:3888
      configuration: |-
        tickTime=2000
        initLimit=10
        ...
        server.1=sisense-zookeeper-0.sisense-zookeeper-headless.sisense.svc.cluster.local:2888:3888

    grafana:
      ...
      persistence:
        storageClassName: manual
        selectorLabels:
          # If installed Sisense on a different namespace than "sisense", switch the below from "sisense" to correct namespace
          app: "grafana-sisense"
  2. Install Sisense using the values file:

    Copy
    # You can use other namespace if you wish
    NAMESPACE=sisense
    SISENSE_SEMVER=<You Sisense version in format SemVer 2>
    # Example:
    # SISENSE_SEMVER=2024.1.046

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

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

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:

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

Enter your Sisense address, and run the activation.