wso2/micro-integrator
Helm Chart for deployment of WSO2 Micro Integrator
Contents
- Prerequisites
- Quick Start Guide
Prerequisites
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 in order to run the steps provided in the following quick start guide.
An already setup Kubernetes cluster.
Install NGINX Ingress Controller. Please note that Helm resources for WSO2 product deployment patterns are compatible with NGINX Ingress Controller Git release
nginx-0.30.0
.Add the WSO2 Helm chart repository.
helm repo add wso2 https://helm.wso2.com && helm repo update
Quick Start Guide
Install Chart From WSO2 Helm Chart Repository
1. Deploy Helm chart for WSO2 Micro Integrator deployment
[Option 1] Deploy using Docker images from DockerHub.
helm install --name <RELEASE_NAME> wso2/micro-integrator --version 1.2.0-4 --namespace <NAMESPACE>
[Option 2] Deploy WSO2 Micro Integrator using Docker images from WSO2 Private Docker Registry.
helm install --name <RELEASE_NAME> wso2/micro-integrator --version 1.2.0-4 --namespace <NAMESPACE> --set wso2.subscription.username=<SUBSCRIPTION_USERNAME> --set wso2.subscription.password=<SUBSCRIPTION_PASSWORD>
Note:
NAMESPACE
should be the Kubernetes Namespace in which the resources are deployed.
2. Access Micro Integrator.
Default deployment will expose <RELEASE_NAME>
as the host.
To access the Micro Integrator 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>
NAME HOSTS ADDRESS PORTS AGE
<RELEASE_NAME>-micro-integrator-services mi.wso2.com <EXTERNAL-IP> 80, 443 3m
<RELEASE_NAME>-micro-integrator-mgt mi.mgt.wso2.com <EXTERNAL-IP> 80, 443 3m
b. Add the above host as an entry in /etc/hosts file as follows:
<EXTERNAL-IP> mi.wso2.com
<EXTERNAL-IP> mi.mgt.wso2.com
Install Chart From Source
In the context of this document,
*KUBERNETES_HOME
will refer to a local copy of thewso2/kubernetes-mi
Git repository.
*HELM_HOME
will refer to<KUBERNETES_HOME>/helm/micro-integrator
.
1. Clone the Kubernetes Resources for WSO2 Micro Integrator Git repository.
git clone https://github.com/wso2/kubernetes-mi.git
2. Provide configurations.
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.
WSO2 Subscription Configurations
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
.
Centralized Logging Configurations
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.host |
Elasticsearch endpoint | elastic |
wso2.centralizedLogging.logstash.elasticsearch.username |
Elasticsearch username | elastic |
wso2.centralizedLogging.logstash.elasticsearch.password |
Elasticsearch password | changeme |
Micro Integrator Deployment Configurations
Parameter | Description | Default Value |
---|---|---|
wso2.deployment.wso2microIntegrator.dockerRegistry |
Docker registry of the micro-integrator image | ”” |
wso2.deployment.wso2microIntegrator.imageName |
Image name for micro-integrator node | ”” |
wso2.deployment.wso2microIntegrator.imageTag |
Image tag for micro-integrator node | ”” |
wso2.deployment.wso2microIntegrator.replicas |
Number of replicas for micro-integrator node | 1 |
wso2.deployment.wso2microIntegrator.strategy.rollingUpdate.maxSurge |
Refer to doc | 1 |
wso2.deployment.wso2microIntegrator.strategy.rollingUpdate.maxUnavailable |
Refer to doc | 0 |
wso2.deployment.wso2microIntegrator.livenessProbe.initialDelaySeconds |
Initial delay for the live-ness probe for micro-integrator node | 40 |
wso2.deployment.wso2microIntegrator.livenessProbe.periodSeconds |
Period of the live-ness probe for micro-integrator node | 10 |
wso2.deployment.wso2microIntegrator.readinessProbe.initialDelaySeconds |
Initial delay for the readiness probe for micro-integrator node | 40 |
wso2.deployment.wso2microIntegrator.readinessProbe.periodSeconds |
Period of the readiness probe for micro-integrator node | 10 |
wso2.deployment.wso2microIntegrator.imagePullPolicy |
Refer to doc | Always |
wso2.deployment.wso2microIntegrator.resources.requests.memory |
The minimum amount of memory that should be allocated for a Pod | 1Gi |
wso2.deployment.wso2microIntegrator.resources.requests.cpu |
The minimum amount of CPU that should be allocated for a Pod | 2000m |
wso2.deployment.wso2microIntegrator.resources.limits.memory |
The maximum amount of memory that should be allocated for a Pod | 2Gi |
wso2.deployment.wso2microIntegrator.resources.limits.cpu |
The maximum amount of CPU that should be allocated for a Pod | 2000m |
wso2.deployment.wso2microIntegrator.envs |
The List of environment variables that should configured for a Pod | 2000m |
wso2.deployment.wso2microIntegrator.synapseTest.enabled |
Enable Synapse testing | false |
wso2.ingress.services.hostname |
The Host name for the Micro integrator Services ingress | mi.wso2.com |
wso2.ingress.services.annotations |
Annotations for the Micro Integrator Services Ingress | Nginx ingress annotations |
wso2.ingress.mgt.hostnname |
The Host name for the Micro integrator Management ingress | mi.mgt.wso2.com |
wso2.ingress.mgt.annotations |
Annotations for the Micro Integrator Management Ingress | Nginx ingress annotations |
3. Deploy WSO2 Micro Integrator.
helm install --name <RELEASE_NAME> <HELM_HOME> --namespace <NAMESPACE>
NAMESPACE
should be the Kubernetes Namespace in which the resources are deployed
4. Access Micro Integrator.
Default deployment will expose <RELEASE_NAME>
as the host.
To access the Micro Integrator 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>
NAME HOSTS ADDRESS PORTS AGE
<RELEASE_NAME>-micro-integrator-services mi.wso2.com <EXTERNAL-IP> 80, 443 3m
<RELEASE_NAME>-micro-integrator-mgt mi.mgt.wso2.com <EXTERNAL-IP> 80, 443 3m
b. Add the above host as an entry in /etc/hosts file as follows:
<EXTERNAL-IP> mi.wso2.com
<EXTERNAL-IP> mi.mgt.wso2.com
Enabling Centralized Logging
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
Create a requirements.yaml at and add the following dependencies in the 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