How to deploy a TIBCO BusinessEvents (BE) application with Ignite inbuild Cache enabled on Kubernetes

How to deploy a TIBCO BusinessEvents (BE) application with Ignite inbuild Cache enabled on Kubernetes

book

Article ID: KB0071632

calendar_today

Updated On:

Products Versions
TIBCO BusinessEvents Enterprise Edition 6.x

Description

For the agent discovery, Ignite provides the Kubernetes IP Finder, which utilizes a Kubernetes service API to lookup a list of currently running pods.
TIBCO provides sample helm scripts for the deployment as part of our cloud tooling. You can download the deployment scripts on github here: TIBCO Software - be-tools. The helm charts are available under /cloud/kubernetes/helm.

Documentation:
Documentation Helm deployment

Issue/Introduction

How to deploy a TIBCO BusinessEvents (BE) application with Ignite inbuild Cache enabled on Kubernetes

Environment

Kubernetes

Resolution

To use the helm charts/scripts install helm first and then use below commands to add required Helm-Charts:

cd <currDirHelmDeploymentFiles>
helm dependency build
helm repo add helm-charts https://grafana.github.io/helm-charts
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add helm.influxdata.com https://helm.influxdata.com
Before deploy the application edit "values.yaml" file and update the at least below properties.
  • Set cmType=ignite
  • Modify the cpType to the image tag of your BE application
  • Add image credential (if needed)
  • Modify "PU:" to the ProcessUnit configured in your CDD file and the agents "- name", if needed
To validate the current settings execute:
cd <currDirHelmDeploymentFiles>
helm install <deploymentName> --debug --dry-run .
e.g.,
helm install test-be-release --debug --dry-run .
A ServiceAccount, ClusterRole, ClusterRoleBinding and a discoveryService created.
For each agent below environment properties set for the Ignite discovery. The BE startup script loads the environment variables and add them to the tra file.
It is not required to modify the discovery settings in deployed CDD file.
- name: "tra.tibco.env.CUSTOM_EXT_APPEND_CP"
  value: "/opt/tibco/be/6.2/lib/ext/tpcl/apache/ignite/optional/ignite-kubernetes"
- name: "tra.be.ignite.k8s.service.name"
  value: "bediscovery-service"
- name: "tra.be.ignite.discovery.type"
  value: "k8s"
- name: "tra.be.ignite.k8s.namespace"
  # namespace set to your namespace
  value: "default"
To deploy the application execute:
helm install <deploymentName> .
e.g.,
helm install test-be-release


Note:
Once started the log shows that the CacheServers and InferenceAgents join the cluster.
e.g. single InferenceAgent, two CacheAgents,

2023 Feb 27 17:58:54:091 GMT Z test-be-release-inferenceagent-0 INFO [AgentMgr.Thread.1] - [runtime.service] Latest AgentTable View:
Currently known [inference-class] agents = 1
   Member Name: test-be-release-inferenceagent-0.test-be-release-inferenceagent-0, Member Id: d04dba9f-39b6-4a8c-9319-60c0f6aac3b4, Agent name: inference-class, Agent id: 1, Agent priority: 10, Status: PREPARETOACTIVATE
...
Currently known [cache-class] agents = 2
   Member Name: test-be-release-cacheagent-0.test-be-release-cacheagent-0, Member Id: ca66243c-1814-4d08-b9ab-81c4867b4d6b, Agent name: cache-class, Agent id: 0, Agent priority: 10, Status: ACTIVATED
   Member Name: test-be-release-cacheagent-1.test-be-release-cacheagent-1, Member Id: 00142a6b-4e71-4aa1-90c7-df0438689bf1, Agent name: cache-class, Agent id: 2, Agent priority: 10, Status: ACTIVATED