Member-only story
Argo Workflow: WebHook
In a few previous articles, we have covered how to use argo workflow. The argo project consists of a few sub projects. Argo workflow is one of them. Argo Event is another sub-project that enables argo workflows to be triggered.
In this article, we will show step-by-step guide on how to trigger argo workflows using webhook.
Now, let’s start from the first deployment article. We already deployed argo workflow. We will go through the following steps to set up a webhook for argo workflows.
- Deploy argo-events using helm chart
- Deploy an EventBus using kubectl
- Deploy an EventSource using kubectl
- Deploy a Sensor using kubectl
Deploying Argo Events using Helm Chart
We already added argo helm repo during argo workflow deployment. Let’s just update repo and get argo-events helm chart.
helm repo update argo
helm search repo argo/argo-events # Most recent version
helm search repo argo/argo-events --versions # All the versions
helm fetch argo/argo-events --version 2.4.9 --untar # We use version 2.4.9
We do not have any values to be overridden. So, we go ahead with helm install command.
helm install argo-events ./argo-events -n argo-events --create-namespace
This will deploy a deployment named argo-events-controller-manager in the argo-events namespace.

Deploy an EventBus using kubectl
Now, we are ready to create an event-bus. We will back our event-bus using nats.
---
apiVersion: argoproj.io/v1alpha1
kind: EventBus
metadata:
name: default
namespace: argo-events
spec:
nats:
native:
# Optional, defaults to 3.
# If it is < 3, set it to 3, that is the minimal requirement.
replicas: 3
# Optional, authen strategy, "none" or "token", defaults to "none"
auth: token
For more information on EventBus, see this official page.
We apply this manifest. This will deploy a stateful set and a ClusterIP service.
kubectl apply -f yamls/eventbus.yaml