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 :
Minikubeis 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,portis a global variable which is part of theVariableGPglobal variable group, then instead of usingVariableGP/portin 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
envsection of the values.yaml. For more details refer to GV configuration Framework. - If your clusterprovider is
awsfargatemake sure to usebeservice.typeasNodePort.Also thevolumes.storageClassshould 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
influxhelm 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
liveviewhelm 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
metricdetailssection of values yaml file and setmetricsTypetocustomhelm 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
healthchecksection of values yaml file by settinghealthcheck.enableto 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