-
In order to use WSO2 Helm resources, you need an active WSO2 subscription. If you do not possess an active WSO2 subscription already, you can sign up for a WSO2 Free Trial Subscription from here . Otherwise you can proceed with docker images which are created using GA releases.
-
Install Git, Helm (and Tiller) and Kubernetes client (compatible with v1.10) in order to run the steps provided in the following quick start guide.
-
An already setup Kubernetes cluster.
-
Install NGINX Ingress Controller.
-
Add the WSO2 Helm chart repository
helm repo add wso2 https://helm.wso2.com && helm repo update
In the context of this document,
KUBERNETES_HOME
will refer to a local copy of thewso2/kubernetes-ei
Git repository.HELM_HOME
will refer to<KUBERNETES_HOME>/advanced/ei-pattern-1
.
git clone https://github.com/wso2/kubernetes-ei.git
a. The default product configurations are available at <HELM_HOME>/confs
folder. Change the configurations as necessary.
b. Open the <HELM_HOME>/values.yaml
and provide the following values.
Parameter | Description | Default Value |
---|---|---|
wso2.mysql.enabled |
Enable MySQL chart as a dependency | true |
wso2.mysql.host |
Set MySQL server host | wso2ei-rdbms-service-mysql |
wso2.mysql.username |
Set MySQL server username | wso2carbon |
wso2.mysql.password |
Set MySQL server password | wso2carbon |
wso2.mysql.driverClass |
Set JDBC driver class for MySQL | com.mysql.jdbc.Driver |
wso2.mysql.validationQuery |
Validation query for the MySQL server | SELECT 1 |
Parameter | Description | Default Value |
---|---|---|
wso2.subscription.username |
Your WSO2 Subscription username | "" |
wso2.subscription.password |
Your WSO2 Subscription password | "" |
If you do not have active WSO2 subscription do not change the parameters wso2.deployment.username
, wso2.deployment.password
.
Parameter | Description | Default Value |
---|---|---|
wso2.centralizedLogging.enabled |
Enable Centralized logging for WSO2 components | true |
wso2.centralizedLogging.logstash.imageTag |
Logstash Sidecar container image tag | 7.2.0 |
wso2.centralizedLogging.logstash.elasticsearch.username |
Elasticsearch username | elastic |
wso2.centralizedLogging.logstash.elasticsearch.password |
Elasticsearch password | changeme |
wso2.centralizedLogging.logstash.indexNodeID.wso2ISNode |
Elasticsearch EI Node log index ID(index name: ${NODE_ID}-${NODE_IP}) | wso2 |
Parameter | Description | Default Value |
---|---|---|
wso2.monitoring.enabled |
Enable Prometheus monitoring | false |
wso2.monitoring.prometheus.blackBoxNamespace |
Prometheus blackbox exporter namespace | <RELEASE_NAMESPACE> |
wso2.monitoring.prometheus.jmxJobName |
Prometheus job name | jmx |
wso2.monitoring.prometheus.serviceMonitor.labels |
Prometheus labels for identifying Service Monitor | "release: monitoring" |
Parameter | Description | Default Value |
---|---|---|
wso2.deployment.wso2ei.imageName |
Image name for EI node | wso2ei |
wso2.deployment.wso2ei.imageTag |
Image tag for EI node | 6.6.0 |
wso2.deployment.wso2ei.replicas |
Number of replicas for EI node | 1 |
wso2.deployment.wso2ei.minReadySeconds |
Refer to doc | 1 75 |
wso2.deployment.wso2ei.strategy.rollingUpdate.maxSurge |
Refer to doc | 1 |
wso2.deployment.wso2ei.strategy.rollingUpdate.maxUnavailable |
Refer to doc | 0 |
wso2.deployment.wso2ei.livenessProbe.initialDelaySeconds |
Initial delay for the live-ness probe for EI node | 40 |
wso2.deployment.wso2ei.livenessProbe.periodSeconds |
Period of the live-ness probe for EI node | 10 |
wso2.deployment.wso2ei.readinessProbe.initialDelaySeconds |
Initial delay for the readiness probe for EI node | 40 |
wso2.deployment.wso2ei.readinessProbe.periodSeconds |
Period of the readiness probe for EI node | 10 |
wso2.deployment.wso2ei.imagePullPolicy |
Refer to doc | Always |
wso2.deployment.wso2ei.resources.requests.memory |
The minimum amount of memory that should be allocated for a Pod | 1Gi |
wso2.deployment.wso2ei.resources.requests.cpu |
The minimum amount of CPU that should be allocated for a Pod | 2000m |
wso2.deployment.wso2ei.resources.limits.memory |
The maximum amount of memory that should be allocated for a Pod | 2Gi |
wso2.deployment.wso2ei.resources.limits.cpu |
The maximum amount of CPU that should be allocated for a Pod | 2000m |
Note: The above mentioned default, minimum resource amounts for running WSO2 Enterprise Integrator server profiles are based on its official documentation.
Parameter | Description | Default Value |
---|---|---|
wso2.deployment.wso2eiAnalyticsWorker1.imageName |
Image name for EI Analytics Worker node | wso2ei-analytics-worker |
wso2.deployment.wso2eiAnalyticsWorker1.imageTag |
Image tag for EI Analytics Worker node | 6.6.0 |
wso2.deployment.wso2eiAnalyticsWorker1.replicas |
Number of replicas for EI node | 1 |
wso2.deployment.wso2eiAnalyticsWorker1.minReadySeconds |
Refer to doc | 30 |
wso2.deployment.wso2eiAnalyticsWorker1.strategy.rollingUpdate.maxSurge |
Refer to doc | 2 |
wso2.deployment.wso2eiAnalyticsWorker1.strategy.rollingUpdate.maxUnavailable |
Refer to doc | 0 |
wso2.deployment.wso2eiAnalyticsWorker1.livenessProbe.initialDelaySeconds |
Initial delay for the live-ness probe for EI Analytics Worker node | 20 |
wso2.deployment.wso2eiAnalyticsWorker1.livenessProbe.periodSeconds |
Period of the live-ness probe for EI Analytics Worker node | 10 |
wso2.deployment.wso2eiAnalyticsWorker1.readinessProbe.initialDelaySeconds |
Initial delay for the readiness probe for EI Analytics Worker node | 20 |
wso2.deployment.wso2eiAnalyticsWorker1.readinessProbe.periodSeconds |
Period of the readiness probe for EI Analytics Worker node | 10 |
wso2.deployment.wso2eiAnalyticsWorker1.imagePullPolicy |
Refer to doc | Always |
wso2.deployment.wso2eiAnalyticsWorker1.resources.requests.memory |
The minimum amount of memory that should be allocated for a Pod | 4Gi |
wso2.deployment.wso2eiAnalyticsWorker1.resources.requests.cpu |
The minimum amount of CPU that should be allocated for a Pod | 2000m |
wso2.deployment.wso2eiAnalyticsWorker1.resources.limits.memory |
The maximum amount of memory that should be allocated for a Pod | 4Gi |
wso2.deployment.wso2eiAnalyticsWorker1.resources.limits.cpu |
The maximum amount of CPU that should be allocated for a Pod | 2000m |
Parameter | Description | Default Value |
---|---|---|
wso2.deployment.wso2eiAnalyticsWorker2.imageName |
Image name for EI Analytics Worker node | wso2ei-analytics-worker |
wso2.deployment.wso2eiAnalyticsWorker2.imageTag |
Image tag for EI Analytics Worker node | 6.6.0 |
wso2.deployment.wso2eiAnalyticsWorker2.replicas |
Number of replicas for EI node | 1 |
wso2.deployment.wso2eiAnalyticsWorker2.minReadySeconds |
Refer to doc | 30 |
wso2.deployment.wso2eiAnalyticsWorker2.strategy.rollingUpdate.maxSurge |
Refer to doc | 2 |
wso2.deployment.wso2eiAnalyticsWorker2.strategy.rollingUpdate.maxUnavailable |
Refer to doc | 0 |
wso2.deployment.wso2eiAnalyticsWorker2.livenessProbe.initialDelaySeconds |
Initial delay for the live-ness probe for EI Analytics Worker node | 20 |
wso2.deployment.wso2eiAnalyticsWorker2.livenessProbe.periodSeconds |
Period of the live-ness probe for EI Analytics Worker node | 10 |
wso2.deployment.wso2eiAnalyticsWorker2.readinessProbe.initialDelaySeconds |
Initial delay for the readiness probe for EI Analytics Worker node | 20 |
wso2.deployment.wso2eiAnalyticsWorker2.readinessProbe.periodSeconds |
Period of the readiness probe for EI Analytics Worker node | 10 |
wso2.deployment.wso2eiAnalyticsWorker2.imagePullPolicy |
Refer to doc | Always |
wso2.deployment.wso2eiAnalyticsWorker2.resources.requests.memory |
The minimum amount of memory that should be allocated for a Pod | 4Gi |
wso2.deployment.wso2eiAnalyticsWorker2.resources.requests.cpu |
The minimum amount of CPU that should be allocated for a Pod | 2000m |
wso2.deployment.wso2eiAnalyticsWorker2.resources.limits.memory |
The maximum amount of memory that should be allocated for a Pod | 4Gi |
wso2.deployment.wso2eiAnalyticsWorker2.resources.limits.cpu |
The maximum amount of CPU that should be allocated for a Pod | 2000m |
Parameter | Description | Default Value |
---|---|---|
wso2.deployment.wso2eiAnalyticsDashboard.imageName |
Image name for EI node | wso2ei |
wso2.deployment.wso2eiAnalyticsDashboard.imageTag |
Image tag for EI node | 6.6.0 |
wso2.deployment.wso2eiAnalyticsDashboard.replicas |
Number of replicas for EI node | 2 |
wso2.deployment.wso2eiAnalyticsDashboard.minReadySeconds |
Refer to doc | 1 30 |
wso2.deployment.wso2eiAnalyticsDashboard.strategy.rollingUpdate.maxSurge |
Refer to doc | 2 |
wso2.deployment.wso2eiAnalyticsDashboard.strategy.rollingUpdate.maxUnavailable |
Refer to doc | 0 |
wso2.deployment.wso2eiAnalyticsDashboard.livenessProbe.initialDelaySeconds |
Initial delay for the live-ness probe for EI node | 20 |
wso2.deployment.wso2eiAnalyticsDashboard.livenessProbe.periodSeconds |
Period of the live-ness probe for EI node | 10 |
wso2.deployment.wso2eiAnalyticsDashboard.readinessProbe.initialDelaySeconds |
Initial delay for the readiness probe for EI node | 20 |
wso2.deployment.wso2eiAnalyticsDashboard.readinessProbe.periodSeconds |
Period of the readiness probe for EI node | 10 |
wso2.deployment.wso2eiAnalyticsDashboard.imagePullPolicy |
Refer to doc | Always |
wso2.deployment.wso2eiAnalyticsDashboard.resources.requests.memory |
The minimum amount of memory that should be allocated for a Pod | 4Gi |
wso2.deployment.wso2eiAnalyticsDashboard.resources.requests.cpu |
The minimum amount of CPU that should be allocated for a Pod | 2000m |
wso2.deployment.wso2eiAnalyticsDashboard.resources.limits.memory |
The maximum amount of memory that should be allocated for a Pod | 4Gi |
wso2.deployment.wso2eiAnalyticsDashboard.resources.limits.cpu |
The maximum amount of CPU that should be allocated for a Pod | 2000m |
Note: The above mentioned default, minimum resource amounts for running WSO2 Stream Processor server profiles (Dashboard and Worker)are based on its official documentation. Also, see the official documentation on WSO2 Stream Processor based Performance Analysis and Resource recommendations and tune the limits according to your needs, where necessary
Parameter | Description | Default Value |
---|---|---|
kubernetes.svcaccount |
Kubernetes Service Account in the namespace to which product instance pods are attached |
wso2svc-account |
The parameters above indicate configuration values for the Integrator profile. Similar configurations are used in the Analytics Dashboard and Worker profiles as well.
helm install --dep-up --name <RELEASE_NAME> <HELM_HOME>/ei-pattern-1 --namespace <NAMESPACE>
NAMESPACE
should be the Kubernetes Namespace in which the resources are deployed.
Default deployment will expose <RELEASE_NAME>-integrator
, <RELEASE_NAME>-gateway
and <RELEASE_NAME>-analytics-dashboard
hosts.
To access the console in the environment,
a. Obtain the external IP (EXTERNAL-IP
) of the Ingress resources by listing down the Kubernetes Ingresses.
kubectl get ing -n <NAMESPACE>
e.g.
NAME HOSTS ADDRESS PORTS AGE
wso2ei-pattern-1-analytics-dashboard-ingress <RELEASE_NAME>-analytics-dashboard <EXTERNAL-IP> 80, 443 2m
wso2ei-pattern-1-integrator-gateway-tls-ingress <RELEASE_NAME>-gateway <EXTERNAL-IP> 80, 443 2m
wso2ei-pattern-1-integrator-ingress <RELEASE_NAME>-integrator <EXTERNAL-IP> 80, 443 2m
b. Add the above host as an entry in /etc/hosts file as follows:
<EXTERNAL-IP> <RELEASE_NAME>-analytics-dashboard
<EXTERNAL-IP> <RELEASE_NAME>-gateway
<EXTERNAL-IP> <RELEASE_NAME>-integrator
c. Try navigating to https://<RELEASE_NAME>-integrator/carbon
and https://<RELEASE_NAME>-analytics-dashboard/portal
from your favorite browser.
Centralized logging with Logstash and Elasticsearch is disabled by default. However, if it is required to be enabled, the following steps should be followed.
- Set
centralizedLogging.enabled
totrue
in the values.yaml file. - Add elasticsearch Helm repository to download sub-charts required for Centralized logging.
helm repo add elasticsearch https://helm.elastic.co
- Add the following dependencies in the requirements.yaml file.
dependencies:
- name: kibana
version: "7.2.1-0"
repository: "https://helm.elastic.co"
condition: wso2.centralizedLogging.enabled
- name: elasticsearch
version: "7.2.1-0"
repository: "https://helm.elastic.co"
condition: wso2.centralizedLogging.enabled
- Add override configurations for Elasticsearch in the values.yaml file.
wso2:
( ... )
elasticsearch:
clusterName: wso2-elasticsearch