Installing Qlik Sense Enterprise on Kubernetes to a Red Hat OpenShift platform

To install Qlik Sense Enterprise on a Red Hat OpenShift Kubernetes platform there are a few additional considerations:

  • OpenShift default namespace is myproject
  • OpenShift typically comes with its own docker image registry. All charts now support global.imageRegistry so that customers can point all image pulls from their own image registry.
  • OpenShift does not allow containers to run as root by default.
  • OpenShift discourages cluster wide access.
  • OpenShift expects services to be exposed by routes.
  • OpenShift has it's own certified container registry and discourages non-certified containers.
  • OpenShift deployments do not typically require internet access. Qlik Sense Enterprise on Kubernetes does require internet access.

Once you have set up your Kubernetes cluster and prepared your local tools, you are ready to install Qlik Sense Enterprise into your Kubernetes cluster. See Installing Qlik Sense Enterprise on Kubernetes.

Note: Qlik supports deployments of Qlik Sense Enterprise on Kubernetes to Red Hat OpenShift platforms, however the deployment is not currently certified by Red Hat.

Using MiniShift

To get an OpenShift platform running use MiniShift to create a virtual machine (VM) and provision a local, single-node OpenShift cluster in the VM. RedHat provides MiniShift as a simple to run OpenShift platform. MiniShift is available at https://github.com/minishift/minishift.

  1. Download the latest version of MiniShift.
  2. Unzip it to a directory, and add this directory to your path.
  3. Install helm (mandatory) and kubectl (optional).
  4. Set the resource settings for MiniShift to ensure that there are adequate resources to fully deploy Qlik Sense Enterprise on Kubernetes, using the following commands:

    minishift config set memory 8192

    minishift config set cpus 4

  5. Start up MiniShift using the following command:

    minishift start --vm-driver=virtualbox

  6. Configure your environment using the following command:

    minishift oc-env

  7. Create a new project. A project is the OpenShift equivalent of a kubernetes namespace.

    Note: Note that in this example we use oc instead of kubectl. In most cases they do the same thing, however oc does some things that cannot be done with kubectl.

    oc new-project tiller

  8. Set a variable so helm knows where to find tiller.

    $Env:TILLER_NAMESPACE="tiller"

  9. Configure the helm client.

    helm init --client-only

  10. Installing tiller on OpenShift requires a special process. OpenShift provides a yaml file to do that. Run the following command:

    oc process -f https://github.com/openshift/origin/raw/master/examples/helm/tiller-template.yaml -p TILLER_NAMESPACE="$Env:TILLER_NAMESPACE" -p HELM_VERSION=v2.9.1 | oc create -f -

  11. To confirm it is ready run the following command:

    oc rollout status deployment tiller

  12. Create a project for the Qlik deployment using the following command:

    oc new-project qlik

  13. To configure security you must log in as a system admin using the following command:

    oc login -u system:admin

  14. Configure the security settings needed by running the following commands:

    oc policy add-role-to-user edit "system:serviceaccount:$($Env:TILLER_NAMESPACE):tiller"

    oc policy add-role-to-user cluster-admin "system:serviceaccount:$($Env:TILLER_NAMESPACE):tiller"

    oc adm policy add-scc-to-user anyuid "system:serviceaccount:$($Env:TILLER_NAMESPACE):tiller"

    oc adm policy add-cluster-role-to-user cluster-admin "system:serviceaccount:$($Env:TILLER_NAMESPACE):tiller"

    oc adm policy add-scc-to-group anyuid system:authenticated

    oc adm policy add-scc-to-user privileged "system:serviceaccount:$($Env:TILLER_NAMESPACE):tiller"

    oc adm policy add-scc-to-user privileged system:serviceaccount:qlik:default

    oc adm policy add-role-to-user admin system:serviceaccount:qlik:default

  15. Define the storage and make it writable using the following command:

    minishift ssh -- "sudo chmod -R o+rwx /var/lib/minishift/base/openshift.local.pv*"

  16. Log in as a developer using the following command:

    oc login -u developer

  17. Add the Qlik helm repository and update it using the following commands:

    helm repo add qlik https://qlik.bintray.com/stable

    helm repo update

  18. You can now deploy Qlik Sense Enterprise on Kubernetes using the minishift.yaml file.

    helm upgrade --install qsefe qlik/qsefe --set devMode.enabled=true,engine.acceptEULA="yes" -f C:\dev\minishift.yaml

  19. To monitor deployments you can run kubectl get pods, or oc get pods.

Did this information help you?

Thanks for letting us know. Is there anything you'd like to tell us about this topic?

Can you tell us why it did not help you and how we can improve it?