# Installing Sisense using Provisioner and Helm

> Provisioner provides an elegant and efficient solution for installing, upgrading and/or maintaining Sisense on an existing Kubernetes cluster. The Provisioner application deploys Sisense using a single Helm Chart, the simplest way of getting started with our applications on Kubernetes.

*Source: https://docs.sisense.com/main/SisenseLinux/installing-sisense-using-provisioner-and-helm.htm*

---

Last updated: June 10, 2026

|  |  |
| --- | --- |
| [Tier](https://www.sisense.com/pricing/#pricing) | [Deployment](https://docs.sisense.com/main/SisenseLinux/introduction-to-sisense-cloud-managed-services.md#ComparisonofManagedCloudandSelfHosted) |
| Enterprise | On-Prem |

Provisioner provides an elegant and efficient solution for installing, upgrading and/or maintaining Sisense on an existing Kubernetes cluster. The Provisioner application deploys Sisense using a single Helm Chart, the simplest way of getting started with our applications on Kubernetes.

Provisioner is provided to simplify the process of installing Sisense-related Helm Charts, as described in .

## Introduction

This single Helm Chart bootstraps the Sisense installation on an existing Kubernetes cluster, including monitoring and logging stacks.

## Chart Details

The Helm Chart provides the following deployments on an existing Kubernetes cluster:

- Sisense application
- Prometheus operator
- Logging solution (fluentd, fluentd-bit)
- ReadWriteMany storage solution (AWS FSx, NFS ..)
- Cluster auto-scaler for Managed Kubernetes
- NGINX for Terminating SSL for Sisense

## Prerequisites

- Supported Kubernetes Version (1.17 + )
- Helm installed, versions 3.5.1 up to 3.8.1
- RBAC Cluster-admin privileges
- RWX Cluster Storage (FSx, NFS, NetApp ...)

- RWO Cluster Storage supported (gp2, gcd, azure disk ...)

## SSL Prerequisites

Sisense uses the NGINX Gateway Fabric (NGF) for SSL termination on Layer 4.   
Before installing Provisioner, perform the following steps:

1. Either:  
   Create the TLS secret in namespace `default`:

   1. Run the following command:

      ```
        $ kubectl create ns <default>
      ```
   2. Run the following command:

      ```
        $ kubectl create secret tls <tlsSecretName>  
        --namespace <default> \  
        --key <ssl_key_filemne> \  
        --cert <ssl_cer_filename>
      ```

   Or:

   1. If you want to install NGF on a different namespace, then create that namespace + create the TLS secret in that namespace + set the following value in the Provisioner Helm chart installation:

      [Copy](javascript:void(0);)

      ```
      installer-values:  
        httpRoute:  
          gatewayNamespace: <your ngf namespace name>
      ```
2. On the Provisioner, set the tlsSecretName values using the tlsSecretName from the previous step.

## Preparation

Run the following command to install HELM 3 on a machine with cluster access (either by bastion or with one of the cluster's nodes):

```
  curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 && \  
    chmod +x get_helm.sh && \  
    DESIRED_VERSION=v3.5.1 ./get_helm.sh
```

## Parameters

This section lists the Provisioner's chart configurable parameters.

| Parameter | Description | Default |
| --- | --- | --- |
| labeling.labelAllNodes | Label all Ready Kubernetes nodes for Sisense ability | false |
| labeling.kubernetesNodes | Enter the node names for each of the nodes being deployed.  Make sure you enter the actual name assigned to the node  (e.g., NAME shown using *kubectl get nodes)*  **Note:**  Node names may not include uppercase letters. Node names can only include lowercase letters, digits and hyphens. Hyphens cannot be the last character in the node name. | {{node1...},  {node2...},  {node3...}} |
| deploymentSize | Deployment size is used to determine the maximum pod limits allocated for applicationability | false |
| debug.verbose | Enable Ansible verbosity | false |
| debug.sleepMode | Enable Pod execute ability | false |
| pullSecretsName | Configure offline installation (Requires private docker registry) | nil |
| highAvailability | Loading sisense service in active/active redundancy | true |
| exposeNodePorts | Exposing NodePorts for MongoDB. RabbitMQ, Zookeeper, Query, Management, Translation and Build | false |
| gatewayPort | The exposed port of Sisense service (NodePort, in Non-Secure mode) | 30845 |
| timeZone | Sisense Application Time Zone | UTC |
| cloud.loadBalancer | Configure traffic using Service type | true |
| cloud.autoScaler | Install and configure Cluster auto scaler | true |
| persistence.enabled | Persistence Storage for Sisense HA, When false, it will use hostPath "/opt/sisense/storage" (Non-HA) | true |
| persistence.storageType | storageTypes: fsx, efs, nfs (client), nfs-server, cephfs, trident. | fsx |
| persistence.sisenseDiskSize | Sisense Persistence volume size (GB) | 70 |
| persistence.mongodbDiskSize | MongoDB Persistence volume size (GB) | 20 |
| persistence.zookeeperDiskSize | ZooKeeper Persistence volume size (GB) | 1 |
| persistence.fsxDnsName | AWS FSx DNS name | nil |
| persistence.fsxMountName | AWS FSx mount name | nil |
| persistence.efsFileSystemId | AWS EFS File system ID | nil |
| persistence.efsAwsRegion | AWS EFS Region | nil |
| persistence.nfsServer | NFS Server IP Address | nil |
| persistence.nfsPath | NFS Server Path | nil |
| persistence.rwxScName | SELF-SELECTION: ReadWriteMany StorageClass name (e.g: trident, nfs, nfs-client, cephfs) | nil |
| persistence.rwoScName | SELF-SELECTION: ReadWriteOnce StorageClass name (e.g: gp2, default, standard) | nil |
| SecurityContext.runAsUser | Defines the SecurityContext.runAsUser for all Sisense services. See [Installing RKE with a Specified UID](https://docs.sisense.com/main/SisenseLinux/installing-rke-with-a-specified-uid.md). | 1000 |
| SecurityContext.runAsGroup | Defines the SecurityContext.runAsGroup for all Sisense services. See [Installing RKE with a Specified UID](https://docs.sisense.com/main/SisenseLinux/installing-rke-with-a-specified-uid.md). | 1000 |
| SecurityContext.fsGroup | Defines the SecurityContext.fsGroup for all Sisense services. See [Installing RKE with a Specified UID](https://docs.sisense.com/main/SisenseLinux/installing-rke-with-a-specified-uid.md). | 1000 |
| tlsSecretName | When using SSL Termination for Sisense service (Using NGF) set TLS Secret name (Prerequisite) | nil |
| installer-values.httpRoute.gatewayNamespace | Namespace to install NGF + Gateway | default |
| installer-values.httpRoute.gatewayName | Name of Gateway | sisense-gateway |
| applicationDnsName | DNS Name for Sisense service (CN Name) | nil |
| monitoring.internal | Install Grafana, Prometheus for metrics and fluent-bit for logs  **Notes:**   - If SecurityContext.runAsUser has a UID other than 1000, monitoring.internal must be **false**. - For OpenShift installations, monitoring is **not** supported **and must be disabled**, (set to `false`). Please consider using OpenShift built-in monitoring tools instead. | false |
| installer-values.hpa.enabled | Horizontal Pod Autoscaling (HPA) | false |
| uninstall.namespacedResources | Uninstall Sisense namespaced resources | false |
| uninstall.clusterResources | Uninstall Sisense cluster resources (Prometheus, NFS,...) | false |
| uninstall.removeUserData | Remove Sisense related Persistence Volumes and data | false |

## To install Sisense using Provisioner on an existing Kubernetes:

1. Download the Provisioner Helm Chart supported version (Replace SISENSE\_VERSION with Sisense external version):

   ```
     wget https://data.sisense.com/linux/provisioner-<SISENSE_VERSION>.tgz
   ```
2. Run the following to export the Helm chart's default configuration/values file:

   ```
     helm inspect values provisioner-<SISENSE_VERSION>.tgz > values.yaml
   ```
3. Edit Sisense Provisioner configuration for your setup:

   ```
     vim values.yaml
   ```
4. Install or upgrade Sisense Provisioner Helm Chart:

   ```
     helm upgrade prov-$NAMESPACE -f values.yaml   
     ./provisioner-<SISENSE_VERSION>.tgz --namespace=$NAMESPACE   
     --install --create-namespace
   ```
5. Observe the Sisense Provisioner provisioning process via its logs:

   ```
     kubectl logs -f --namespace $NAMESPACE -l   
     app.kubernetes.io/name=provisioner
   ```
6. 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.

## Using the Extra-Values Feature to Override Extended Configuration

You can override any values within Sisense Helm Charts by using the Extra-Values Feature.   
Select a target Helm Chart and create your own override values file for each of the following supported Helm Charts:

- installer-values
- sisense
- prometheus-operator
- cluster-metrics
- logging
- nginx
- alb-controller
- cluster-autoscaler
- nfs-client
- nfs-server
- aws-ebs-csi
- kube-prometheus-stack

Run the following command to install the selected Helm Chart:

```
  helm install prov-sisense $CHART_URL \  
  --namespace=$NAMESPACE \  
  --create-namespace \  
  --set-file <TARGET-VALUES-NAME-FROM-THE-LIST>=<YOUR-OWN-VALUES-FILE-PATH> \  
  --set-file <TARGET-VALUES-NAME-FROM-THE-LIST>=<YOUR-OWN-VALUES-FILE-PATH>
```

For example, sisense-override-values.yml for overriding the "sisense" major Helm Chart values:

```
  sisense-override-values.yml  
  api-gateway:  
    replicaCount: 4  
    affinity:  
      podAntiAffinity: null  
      nodeAffinity:  
        requiredDuringSchedulingIgnoredDuringExecution:  
          nodeSelectorTerms:  
          - matchExpressions:  
            - key: "node-sisense-Application"  
              operator: In  
              values:  
              - "true"
```

Run the following command for the above example:

```
  helm install prov-sisense $CHART_URL \  
  --namespace=$NAMESPACE \  
  --create-namespace \  
  --set-file sisense=./sisense-override-values.yml
```

### Adding Custom Labels to Sisense Pods

Sisense also provides the ability to add custom labels to each type of Sisense pods (Sisense service).

**To add custom labels to Sisense pod types:**

1. Create a YAML file for the custom labels.
2. Enter only the pod types whose label you want to change, and their new custom label in the following format:   

   ```
     adminmongo:  
      labels:  
        your: newlabel  
     ai-integration:  
      labels:  
        your: newlabel  
     analyticalengine:  
      labels:  
        your: newlabel  
     api-gateway:  
      labels:  
        your: newlabel  
     blox:  
      labels:  
        your: newlabel  
     build:  
      labels:  
        your: newlabel  
     compute-service:  
      labels:  
        your: newlabel  
     configuration:  
      labels:  
        your: newlabel  
     connectors:  
      labels:  
        your: newlabel  
     customcode:  
      labels:  
        your: newlabel  
     droppy:  
      labels:  
        your: newlabel  
     exporter-xlsx:  
      labels:  
        your: newlabel  
     exporting:  
      labels:  
        your: newlabel  
     external-plugins:  
      labels:  
        your: newlabel  
     filebrowser:  
      labels:  
        your: newlabel  
     galaxy:  
      labels:  
        your: newlabel  
     identity:  
      labels:  
        your: newlabel  
     intelligence:  
      labels:  
        your: newlabel  
     jobs:  
      labels:  
        your: newlabel  
     knowledgegraph:  
      labels:  
        your: newlabel  
     management:  
      labels:  
        your: newlabel  
     migration:  
      labels:  
        your: newlabel  
     model-graphql:  
      labels:  
        your: newlabel  
     model-logspersistence:  
      labels:  
        your: newlabel  
     nlq-compile:  
      labels:  
        your: newlabel  
     nlq-duckling:  
      labels:  
        your: newlabel  
     nlq-rt:  
      labels:  
        your: newlabel  
     oxygen:  
      labels:  
        your: newlabel  
     pivot2-be:  
      labels:  
        your: newlabel  
     plugins:  
      labels:  
        your: newlabel  
     query-proxy:  
      labels:  
        your: newlabel  
     quest:  
      labels:  
        your: newlabel  
     recommendation:  
      labels:  
        your: newlabel  
     reporting:  
      labels:  
        your: newlabel  
     storage:  
      labels:  
        your: newlabel  
     tracking:  
      labels:  
        your: newlabel  
     translation:  
      labels:  
        your: newlabel  
     usage:  
      labels:  
        your: newlabel  
     warehouse:  
      labels:  
        your: newlabel
   ```
3. From the directory where the YAML file resides, run the following command:   

   ```
     helm install prov-sisense $CHART_URL \  
     --namespace=$NAMESPACE \  
     --create-namespace \  
     --set-file sisense=./<sisense-custom-labels>.yml
   ```

## Upgrading Sisense using the Existing Provisioner Installation

Run the following command to upgrade the provisioner:

```
  $ helm upgrade prov-sisense $CHART_URL \  
  --reuse-values \      
  --namespace=$NAMESPACE 
```

## Uninstalling Sisense

Run the following command to uninstall Sisense:

```
  $ helm upgrade prov-sisense $CHART_URL \  
  --set uninstall.namespacedResources=true \  
  --set uninstall.clusterResources=false \  
  --set uninstall.removeUserData=true \  
  --namespace=$NAMESPACE \  
  --reuse-values \  
  --force \  
  --install
```

Note:

Setting `removeUserData=true` will erase user data.

## Uninstalling the Provisioner Chart

Run the following command to uninstall the Provisioner Chart:

```
  helm uninstall prov-sisense -n sisense
```
