ArkEvent
ArkEvent defines an event source that triggers one or more ArkFlow pipelines. Three source types are supported: HTTP webhook, cron schedule, and the output of another flow. A single event can fan out to multiple flows in parallel.
Webhook trigger
Listens for inbound HTTP POST requests. The operator creates a unique bearer-token secret per trigger and writes the full URL to .status.webhookURL.
apiVersion: arkonis.dev/v1alpha1
kind: ArkEvent
metadata:
name: pipeline-trigger
namespace: ai-team
spec:
source:
type: webhook
targets:
- pipeline: my-flow
Fire synchronously (waits for the flow to complete and returns the output):
TOKEN=$(kubectl get secret pipeline-trigger-webhook-token -n ai-team \
-o jsonpath='{.data.token}' | base64 -d)
curl -X POST \
"http://ark-operator.ai-team.svc.cluster.local:8092/triggers/ai-team/pipeline-trigger/fire?mode=sync&timeout=120s" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"topic": "quantum computing"}'
Fire asynchronously (returns immediately with a flow run ID):
curl -X POST \
"http://ark-operator.ai-team.svc.cluster.local:8092/triggers/ai-team/pipeline-trigger/fire" \
-H "Authorization: Bearer $TOKEN" \
-d '{}'
Cron trigger
Fires the target flow on a standard 5-field cron schedule (UTC).
apiVersion: arkonis.dev/v1alpha1
kind: ArkEvent
metadata:
name: daily-report
namespace: ai-team
spec:
source:
type: cron
cron: "0 8 * * *" # every day at 08:00 UTC
targets:
- pipeline: report-flow
Flow-output trigger
Fires when another flow completes. Useful for chaining independent pipelines without embedding them in a single ArkFlow DAG.
apiVersion: arkonis.dev/v1alpha1
kind: ArkEvent
metadata:
name: post-research-trigger
namespace: ai-team
spec:
source:
type: flow-output
flow: research-flow
targets:
- pipeline: summarize-flow
- pipeline: publish-flow # fan-out: both fire in parallel
spec reference
| Field | Type | Required | Description |
|---|---|---|---|
spec.source.type | string | yes | webhook, cron, or flow-output |
spec.source.cron | string | cron only | Standard 5-field cron expression (UTC) |
spec.source.flow | string | flow-output only | Name of the upstream ArkFlow in the same namespace |
spec.targets[].pipeline | string | yes | Name of the ArkFlow to trigger |
Status
status:
webhookURL: "http://ark-operator.ai-team.svc.cluster.local:8092/triggers/ai-team/pipeline-trigger/fire"
conditions:
- type: Ready
status: "True"
reason: WebhookReady
message: waiting for webhook POST