Installing Sisense on OpenShift Offline


Prerequisites


  1. Linux OS supported by Sisense. See Minimum Requirements for Sisense in Linux Environments for more information.
  2. Storage supported by Sisense (for example: NFS, etc.). See Minimum Requirements for Sisense in Linux Environments for a complete list.
  3. A licensed Red Hat Pull Secret
  4. Access to your cloud CLI and credentials
  5. OpenShift environment. If you have not already prepared an OpenShift environment, see Preparing an OpenShift Environment.

Sisense Installation

To install Sisense on OpenShift offline:

  1. When installing Sisense offline with a private docker registry, perform the following additional steps:
    1. Retrieve your Docker secret file.
    2. Create a Sisense namespace.
      oc create ns ${NAMESPACE_NAME}
    3. Apply the Kubernetes secret within the namespace.
      oc create -f secret.yml -n ${NAMESPACE_NAME}
  2. Contact your Sisense Customer Success Manager to obtain a link to download the Sisense offline installer with the command:
    wget {$PACKAGE_URL}
  3. Extract the Sisense package.
    tar zxf ${PACAKGE_NAME}
  4. Navigate to the Sisense directory.
    cd sisense-*
  5. Edit the oepnshift_config.yaml file.
    vim openshift_config.yaml
  6. Modify the following parameters. The following parameters are mandatory and you must configure these:
    • k8s_nodes: Must be defined with the name of the Sisense nodes (best practice is to configure non-master nodes - oc get nodes | grep -v master)
    • is_openshift: Set to true
    • offline_installer: Set to true
    • docker_registry: Docker registry to upload all Sisense docker images
    • pull_secrets_name: When using private repositories, specify the docker Kubernetes secret
    • storage_type: Set to nfs-server for testing
      • rwx_sc_name: RWX Access Mode StorageClass nam, Configure nfs-server for testing
      • rwo_sc_name: RWO Access Mode StorageClass nam, Configure nfs-server for testing
    ParametersValue

    k8s_nodes

    K8S node/nodes are the set of machines that will be used to run Sisense. These nodes must have the name of the Sisense nodes.

    The installation machine is used only during installation to run the installation scripts. The Installation machine can be one of the K8S nodes, but it can also be a different machine (remote installation)

    node: Enter the name of your nodes to be included in the cluster. You can retrieve their values with the command:
    kubectl get nodes

    role: Define the role of the node. There are three possible values: query, application and build.

    is_openshift

    Set to true when you are installing Sisense Linux on OpenShift.

    offline_installer

    Set to true when you are using an offline installer.

    docker_registry

    Enter the address of your server.

    pull_secrets_nameEnter your pull secret name to configure you docker-secret when your registry is private.

    application_dns_name

    Enter your DNS name. The default is the first node of your external IP. If you have not defined a secure connection (No SSL), Sisense uses the external IP of your first node when accessing Sisense.

    This value can only be defined when installing or upgrading Sisense. After defining this value, you can view it on the Admin page under General Settings.

    linux_user

    Enter the name of your Linux user. This user must not be the "root" user, but should have sudo privileges.

    ssh_key

    If you have a secure connection to your server, enter the SSH key of the Linux user-defined in sisense_user. The SSH key should be in .pem format.

    cloud_load_balancer

    Enter true if you have defined a load balancer. For more information, see Setting Up a Load Balancer.

    storage_type

    Enter one of the following values:

    nfs: NFS Client will be installed. When using an external NFS server as shared storage, you must define nfs_server and nfs_path and have root read/write permissions on the path from the cluster hosts.

    nfs-server: NFS Server will be installed in OpenShift. It will use the RWO Storage class. You can configure "nfs-server" for both rwo_sc_name and rwx_sc_name or leave them blank, and the installation will choose the nfs-server storage class.

    ceph: When using Ceph RBD, you must provide your own shared storage and enter the storage class name as the value of rwx_sc_name.

    trident: When using NetApp Trident, you must provide your own shared storage and enter the storage class name as the value of rwx_sc_name.

    rwx_sc_nameEnter the name of your ReadWriteMany storage class.
    rwo_sc_nameEnter the name of your ReadWriteOnce storage class.

    nfs_server

    Enter the address (IP or DNS) of your NFS server.

    nfs_path

    Enter the location of your NFS server.

    The mounting point for each logical disk (Sisense app, MongoDB, and Zookeeper) will be created under this path.

    sisense_disk_size

    Important! You must provide enough space to support your Sisense ElastiCube models, at least two times the amount of data in all ElastiCubes.

    Every namespace takes additional logical disk space from the physical disks. If you have not allocated enough space, the installation will fail.

    You can use the following equation:

    sisense_disk_size = 50GB x 3. (In a three node deployment)

    If you allocate space for the application DB and configuration DB (the values of mongodb_disk_size and zookeeper_disk_size) this should be considered as well. If you enter 150GB as the value, this allocates 50GB in a 3 node deployment minus 3 times (the values of mongodb_disk_size and zookeeper_disk_size).

    Sisense also recommends that you specify an additional 5GB free space for the value of sisense_disk_size.

    mongodb_disk_size

    The amount of disk space allocated for the Sisense application database.

    This value should be multiplied by the number of nodes your deployment has.

    It is recommended to leave the default of 3 GB.

    zookeeper_disk_size

    The amount of disk space allocated for the ZooKeeper service.

    This value should be multiplied by the number of nodes your deployment has.

    It is recommended to leave the default of 1 GB.

    namespace_name

    Enter the name of the Kubernetes namespace.

    If you have multiple deployments, for example, for a development and production environment, you should have a unique namespace for each deployment.

    In addition, for multiple deployments, each should have a unique gateway_port value.

    Note: Kubernetes Ports should be released (Non-listening mode)

    gateway_port

    Enter the port of the API gateway for your deployment.

    If you are not implementing SSL, this will be the port used to connect to Sisense.

    is_ssl

    Enter true for secure connections to Sisense. Enter false if you have not implemented SSL.

    If you select true, see Setting Up SSL for Sisense on Linux for more information.

    ssl_key_path

    If you connect to your server securely, enter the SSL keypath.

    When SSL is defined, the Sisense API Gateway Port will be 443 and not the value defined in gateway_port.

    ssl_cer_path

    If you connect to your server securely, enter the SSL certificate path (.cer file).

    external_monitoring

    Enter false to disable external monitoring.

    uninstall_sisense

    Enter true to uninstall Sisense services, but leave your Kubernetes infrastructure in case it's needed in the future. This can also be used if you need to remove Sisense from your own cloud-based cluster without impacting the cluster itself. Only Sisense the application is removed.

    remove_user_data

    Enter true to delete all user data. This deletes your ElastiCube models, application database, message broker, and plug-ins.

    timezone: "UTC"

    Enter the system time zone. Applicable to the time zone of the relative date-time filters. Format: TZ database name (i.e., UTC, US/Central, Asia Tokyo, Etc/GMC+6).

  7. Run the configuration script.
    ./sisense.sh openshift_config.yaml

    Once the installation is complete, activate Sisense according to the instructions Activating Sisense on Linux.