Skip to content

Helm Chart

Lakshmi Narayana Mekala edited this page Jun 27, 2023 · 14 revisions

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 the VariableGP global variable group, then instead of using VariableGP/port in values.yaml file, use VariableGP_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 config provider, you need pass appropriate environment variables under env section of the values.yaml. For more details refer to Config Provider Framework.
  • If your clusterprovider is awsfargate make sure to use beservice.type as NodePort.Also the volumes.storageClass should not be an existing storage class, as the storage class will be created on helm deployment.

Run helm dependency update before installing BE helm chart

helm dep up

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 set metricsType to custom

    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 setting healthcheck.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

Additional Information

Below dependencies are included in BE helm charts

  1. MySQL chart: It installs MySQL deployment for the database requirements of the backingstore BE applications.
  2. 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

StatefulSet and persistent volumes Details

Clone this wiki locally