Install >

Helm


Prerequisites

1

Install Helm (and Tiller) and Kubernetes client.

2

An already setup Kubernetes cluster with NGINX Ingress Controller enabled.

3

A pre-configured Network File System (NFS) to be used as the persistent volume for artifact sharing and persistence.

In the NFS server instance, create a Linux system user account named wso2carbon with user id 802 and a system group named wso2 with group id 802. Add the wso2carbon user to the group wso2.

groupadd --system -g 802 wso2
useradd --system -g 802 -u 802 wso2carbon

Minimum High Availability Deployment


1

Download installation archive for WSO2 Stream Processor Kubernetes Resources. In the context of this document, KUBERNETES_HOME will refer to a local extracted archive and HELM_HOME will refer to <KUBERNETES_HOME>/advanced/helm/pattern-distributed.

2

Setup a Network File System (NFS) to be used for persistent storage.

Create and export unique directory within the NFS server instance for the following Kubernetes Persistent Volume resource defined in the <HELM_HOME>/pattern-distributed/values.yaml file:

  • sharedSiddhiFilesLocationPath

Grant ownership to wso2carbon user and wso2 group, for each of the previously created directories.

sudo chown -R wso2carbon:wso2 <directory_name>

Grant read-write-execute permissions to the wso2carbon user, for each of the previously created directories.

chmod -R 700 <directory_name>
3

Provide configurations.

a. The default product configurations are available at <HELM_HOME>/pattern-distributed/confs folder.
b. Open the <HELM_HOME>/pattern-distributed/values.yaml and provide the following values.

Parameter Description
username “” - For open source deployments, this field should be empty.
password “” - For open source deployments, this field should be empty.
email “” - For open source deployments, this field should be empty.
serverIp NFS Server IP
sharedDeploymentLocationPath NFS location path for shared Siddhi file directory (<<SP_HOME>/deployment/siddhi-files/)
4

Deploy product database(s) using MySQL in Kubernetes.

helm install --name sp-rdbms -f <HELM_HOME>/mysql/values.yaml stable/mysql --namespace wso2

For a serious deployment (e.g. production grade setup), it is recommended to connect product instances to a user owned and managed RDBMS instance.

5

Deploy the fully distributed deployment of WSO2 Stream Processor.

helm install --name <RELEASE_NAME> <HELM_HOME>/pattern-distributed
7

Access product management consoles.

Obtain the external IP (EXTERNAL-IP) of the Ingress resources by listing down the Kubernetes Ingresses.

kubectl get ing -n wso2

Add the above host as an entry in /etc/hosts file as shown below:

<EXTERNAL-IP> wso2sp-dashboard
<EXTERNAL-IP> wso2sp-manager-1
<EXTERNAL-IP> wso2sp-manager-2

Try navigating to https://wso2sp-dashboard/monitoring from your favorite browser.