Skip to content

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-system

Apply the Custom Resource Definitions:

kubectl apply -f crds/tenant.yaml
kubectl apply -f crds/webhookset.yaml

Optionally, create per-tenant namespaces for isolation:

kubectl create namespace tenant-acme
kubectl create namespace tenant-beta

Create 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.yaml

Deploy the Trigger Operator placeholder and its service:

kubectl apply -f operators/trigger-operator.yaml
kubectl apply -f operators/trigger-operator-svc.yaml

Deploy a mock webhook server to simulate incoming webhooks:

kubectl apply -f mocks/mock-webhook-server.yaml

Port-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 -w

This workflow allows you to simulate dynamic tenant onboarding, webhook set creation, and webhook triggering within a local Kubernetes environment.

Powered by Vyra, Sweat and Tears™