Vyra SOAR Minikube Mock
Repository link: trigger-operator
This repository sets up a local Kubernetes environment to simulate core Vyra SOAR functionality. It’s meant to give a feel for how tenants, webhook sets, and event-driven workflows work together. You can onboard tenants dynamically, configure webhooks, and see how triggers flow through the system.
The setup includes CRDs for tenants and webhook sets, namespaces for tenant isolation, a placeholder Trigger Operator, and a mock webhook server. Each tenant can have its own webhook sets with associated playbooks. The placeholder operator is just a stub for now and can be swapped out later for the real operator logic that watches CRs and routes events to workflows.
Usage
Start a fresh Minikube cluster and create the system namespace:
minikube delete
minikube start
kubectl create namespace soar-systemApply the Custom Resource Definitions:
kubectl apply -f crds/tenant.yaml
kubectl apply -f crds/webhookset.yamlOptionally, create per-tenant namespaces for isolation:
kubectl create namespace tenant-acme
kubectl create namespace tenant-betaCreate tenants and webhook sets by applying the YAML files or dynamically using inline manifests:
kubectl apply -f tenants/acme.yaml
kubectl apply -f webhooksets/acme-webhooks.yamlDeploy the Trigger Operator placeholder and its service:
kubectl apply -f operators/trigger-operator.yaml
kubectl apply -f operators/trigger-operator-svc.yamlDeploy a mock webhook server to simulate incoming webhooks:
kubectl apply -f mocks/mock-webhook-server.yamlPort-forward the mock server to test webhook requests locally:
kubectl port-forward deployment/mock-webhook-server -n tenant-acme 8080:8080
curl -X POST localhost:8080/webhook -H "Content-Type: application/json" -d '{"alert": "suspicious-login"}'Monitor tenants and webhook sets dynamically:
kubectl get tenants -n tenant-acme -w
kubectl get webhooksets -n tenant-acme -wThis workflow allows you to simulate dynamic tenant onboarding, webhook set creation, and webhook triggering within a local Kubernetes environment.