Helm Chart - nareshkumarthota/rootrepo GitHub Wiki
This chart installs TIBCO BusinessEvents application deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites Details
- Kubectl 1.15 or 1.17+
- Helm
- PV provisioner support in the underlying infrastructure
- A Kubernetes cluster: You must have Kubernetes installed. For the latest release of Helm, we recommend the latest stable release of Kubernetes.
Installing the Chart
Clone be-tools repo and navigate to cloud/kubernetes folder
git clone https://github.com/TIBCOSoftware/be-tools.git
cd cloud/kubernetes
- cpType → Refers to Cloud provider type. Valid values are minikube, aws, azure, openshift, gcp or oci.
- cmType → Refers to Cluster management type. Valid values are unclustered, as2, ftl or ignite
- bsType → Refers to Backing Store type. Valid values are none, sharednothing or store
Key Points :
Minikube
is the default provider.- Update the required values in values.yaml.(ex: image,imagePullPolicy etc..,)
- For setting up local mysql database, update mysql->enabled to true in values.yaml
- If you are using external servers(FTL) or databases(ex: MySQL, Cassandra), make sure that the url's are reachable by the cluster.
- If you are using global variable group in cdd file, instead of the slash '
/
' delimiter between global variable group name and global variable name, use "_gv_
". For example,port
is a global variable which is part of theVariableGP
global variable group, then instead of usingVariableGP/port
in values.yaml file, useVariableGP_gv_port
. Also, ensure that you do not use the "gv
" token in any global variable group name or global variable name. - If you want to use custom GV provider, you need pass appropriate environment variables under
env
section of the values.yaml. For more details refer to GV configuration Framework. - If your clusterprovider is
awsfargate
make sure to usebeservice.type
asNodePort
.Also thevolumes.storageClass
should not be an existing storage class, as the storage class will be created on helm deployment.
To install the chart with the release name my-release
in azure
helm install my-release ./helm --set cpType=azure
Note:
At any point to check how to use helm, simply run the help
command
helm --help
Metrics Configuration and Deployment
- BE Helm charts offers provision for time series database setup using InfluxDB and Grafana as dashboard.
Metrics - InfluxDB and Grafana deployment
-
If you want to deploy BE application with InfluxDB and grafana, set metricsType to
influx
helm install my-release ./helm --set metricsType=influx
Dependency chart deployment
-
Using InfluxDB and Grafana dependency charts
helm install my-release ./helm --set metricsType=influx,influxdb.enabled=true,grafana.enabled=true
- After deploying BE app connect to influx pod and create database
- Access grafana in browser using {clusterip}:{grafana-service-port}
- Generate password for grafana
kubectl get secret --namespace default <grafana secret name> -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
- Login to grafana dashboard using username:admin, password obtained from above command
Database creation and Testing
- Please refer to example html file
TIBCO Streaming with dashboards in TIBCO LiveViewWeb
-
If you want to deploy BE application with TIBCO streaming with dashboard in TIBCO LiveViewWeb, set metricsType to
liveview
helm install my-release ./helm --set metricsType=liveview
Custom metrics deployment
-
If you want to deploy BE application with custom metrics(ex:elastic,kibana,prometheus or any other dashboard tool), update the key value pairs in
metricdetails
section of values yaml file and setmetricsType
tocustom
helm install my-release ./helm --set metricsType=custom
Health Check
-
If you want to deploy BE application with health check,such as Readiness probe and Liveliness probe for the cache and inference agents, enable the
healthcheck
section of values yaml file by settinghealthcheck.enable
to true and set appropriate time intervals.helm install my-release ./helm --set healthcheck.enabled=true
Upgrading helm release
-
Upgrade helm release in multiple ways following helm upgrade doc
helm upgrade my-release ./helm
-
Example if you want to update image and upgrade release, run command as follows
helm upgrade my-release ./helm --set image=fdappimage:v1
Uninstalling the Chart
- To delete the my-release deployment
helm delete my-release
The command removes all the Kubernetes components associated with the chart
Testing
- See Testing
Additional Information
Below dependencies are included in BE helm charts
- MySQL chart: It installs MySQL deployment for the database requirements of the backingstore BE applications.
- efs-provisioner chart: Used to fulfill PersistentVolumeClaims with EFS PersistentVolumes for the BE applications.
The persisent volumes are created as folders with in an AWS EFS