-
Notifications
You must be signed in to change notification settings - Fork 7
Helm Chart
This chart installs TIBCO BusinessEvents application deployment on a Kubernetes cluster using the Helm package manager.
- 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.
Clone be-tools repo and navigate to cloud/kubernetes folder
git clone https://github.com/TIBCOSoftware/be-tools.git
cd cloud/kubernetes
helm dep update ./helm
- cpType → Refers to Cloud provider type.Use this flag for awsfargate deployments. For other cloudproviders it is not required.
- cmType → Refers to Cluster management type.
- omType → Refers to Object manage type.
- bsType → Refers to Backing Store type.
- storeType → Refers to store type. It has significance only when bsType=store OR omType=store. Valid values: RDBMS(Oracle/SQLServer/DB2/MySql/PostgreSQL)/AS4/Cassandra
Following table illustrates how to use helm switches to select particular deployment option out of 13 possible options:
| Topology Name | cmType | omType | bsType | storeType |
|---|---|---|---|---|
| Unclustered Inmemory * | unclustered | inmemory | na | na |
| Unclustered store AS4 | unclustered | store | na | AS4 |
| Unclustered store Cassandra | unclustered | store | na | cassandra |
| clustered store AS4 | ftl | store | na | as4 |
| clustered store Cassandra | ftl | store | na | cassandra |
| clustered Cache AS2 None * | as2 | cache | none | na |
| clustered Cache AS2 sharednothing * | as2 | cache | sharednothing | na |
| clustered Cache AS2 store * | as2 | cache | store | rdbms |
| clustered Cache FTL None | ftl | cache | none | na |
| clustered Cache FTL sharednothing | ftl | cache | sharednothing | na |
| clustered Cache FTL store RDBMS | ftl | cache | store | rdbms |
| clustered Cache FTL store AS4 | ftl | cache | store | as4 |
| clustered Cache FTL store Cassandra | ftl | cache | store | cassandra |
| clustered Cache IGNITE None | ignite | cache | none | na |
| clustered Cache IGNITE sharednothing | ignite | cache | sharednothing | na |
| clustered Cache IGNITE store RDBMS | ignite | cache | store | rdbms |
| clustered Cache IGNITE store AS4 | ignite | cache | store | as4 |
| clustered Cache IGNITE store Cassandra | ignite | cache | store | cassandra |
Key Points :
-
*in above table indicates, topologies that were supported in 5.x.x -
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
- For setting up AWS EFS file storage, update aws-efs->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
- BE Helm charts offers provision for time series database setup using InfluxDB and Grafana as dashboard.
-
If you want to deploy BE application with InfluxDB and grafana, set metricsType to
influxhelm install my-release ./helm --set metricsType=influx
-
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
- Please refer to example html file
-
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
-
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
-
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
To uninstall/delete the my-release deployment:
$ helm delete my-release
The command removes all the Kubernetes components associated with the chart
- See Testing
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