The VMware Event Broker Application (VEBA) is a popular VMware Event-Driven Automation solution that can be consumed using either the open source or commercial offering from VMware. The commercial offering of VEBA is already available to customers today via our Tanzu Application Platform (TAP) offering, which I have previously written about here. The open source offering of VEBA can be consumed in either a pre-packaged Virtual Appliance or a native Kubernetes Application called for those with an existing Kubernetes cluster.
Deploying the VEBA Virtual Appliance is well documented (here and here) and I wanted to spend some time covering the native Kubernetes deployment model, as it there are actually a couple of options and most recently, this came up in a customer discussions as they were interested in forwarding vSphere Events from VEBA to AWS EventBridge.
In the open source version of VEBA, there is a component called the VMware Event Router, which is responsible for connecting to an event source such as vCenter Server and then forwarding those events to a processor which can either be a a function that you have written to react to a specific event using Knative or to AWS EventBridge to integrate with other AWS native services like CloudWatch as an example.
To demonstrate the two different ways to deploy the VMware Event Router, I have created the following Github repo https://github.com/lamw/vsphere-event-driven-automation-vmware-event-router that provides an example to easily deploy the VMware Event Router to an existing Kubernetes cluster. For my environment, I will be using VMware Cloud on AWS and the managed Kubernetes offering called Tanzu services, which is included as part of the base offering and there is no additional cost of running the Kubernetes infrastructure, which is certainly an added bonus 😀
AWS EventBridge
For customers that wish to forward vCenter Server events to AWS EventBridge, you can follow the detailed instructions at https://github.com/lamw/vsphere-event-driven-automation-vmware-event-router/tree/master/aws-eventbridge. A minimal Tanzu Kubernetes Grid (TKG) Cluster (TKC) configuration file is also available within the repo for those interested.
Prior to deployment, customers will need to first create an AWS EventBridge Bus and the desired filter Rules such as the example below which will only forward these vCenter events.
{ "detail": { "subject": ["VmPoweredOnEvent", "VmPoweredOffEvent", "VmReconfiguredEvent", "DrsVmPoweredOnEvent"] } }
Here is a screenshot of the VMware Event Router that has been successfully deployed to a managed Tanzu Kubernetes Grid (TKG) Cluster running on VMware Cloud on AWS.
In my environment, I used the CloudWatch log group as the target when the vCenter Server event arrives and you can see the payload is now available for further processing within AWS EventBridge.
Knative
For customers that wish to build their own event-driven automation using functions written in PowerShell, PowerCLI, Python or Go, ,you can follow the detailed instructions at https://github.com/lamw/vsphere-event-driven-automation-vmware-event-router/tree/master/knative. A minimal Tanzu Kubernetes Grid (TKG) Cluster (TKC) configuration file is also available within the repo for those interested.
Here is a screenshot of the VMware Event Router that has been successfully deployed to a managed Tanzu Kubernetes Grid (TKG) Cluster running on VMware Cloud on AWS.
At this point, you are now ready to deploy your functions, which you can select from the various examples found here or create your own!
Regardless if you intend to use AWS EventBridge or Knative, the VMware Event Router is an easy way to enable event-driven automation within your organization, especially if you are a VMware Cloud on AWS customer as the managed Kubernetes offering is simple there waiting for you to take advantage of!
Thanks for the comment!