Zero-dependency quickstart — no API keys needed.
- DAG basics — defining a multi-step batch Story
- Parallel execution —
fetch-ipandfetch-headersrun at the same time - Step dependencies —
summarizewaits for both upstream steps - Template expressions — the summary POST body interpolates output from upstream steps
- Story output mapping — results from individual steps collected into a single
storyrun.status.output
flowchart LR
fetch-ip --> summarize
fetch-headers --> summarize
- BubuStack installed on your cluster
- EngramTemplate:
http-request
# 1. Create the namespace
kubectl apply -f bootstrap.yaml
# 2. Deploy the Engrams
kubectl apply -f engrams.yaml
# 3. Deploy the Story
kubectl apply -f story.yaml
# 4. Trigger a run
kubectl apply -f storyrun.yaml
# 5. View the output
kubectl get storyrun hello-world-run -n hello-world \
-o jsonpath='{.status.output}' | jq .# Check deployed resources
kubectl get engrams,stories -n hello-world
# Watch the StoryRun progress
kubectl get storyruns -n hello-world -w
# Check individual StepRun phases
kubectl get stepruns -n hello-worldkubectl delete namespace hello-world-
kubectl apply -f story.yamlcreates a Story CRD — a DAG definition with 3 steps. The Story controller validates the DAG is acyclic and registers it. -
kubectl apply -f storyrun.yamlcreates a StoryRun CRD — an execution instance. The StoryRun controller sets phase toPending, resolves all template expressions against inputs, and transitions toRunning. -
The StoryRun controller creates StepRun CRDs for steps with no unmet dependencies (
fetch-ip,fetch-headers). Each StepRun controller spawns a Kubernetes Job running thehttp-requestEngram container. -
When both StepRuns reach
Succeeded, their.status.outputis written back. The StoryRun controller detects thatsummarize's dependencies are met, creates its StepRun. -
Once
summarizesucceeds, the StoryRun controller evaluates the Story'soutputtemplate — collecting IP, headers status, and summary body from each step — and stores the result instoryrun.status.output. The StoryRun transitions toSucceeded.
CRDs involved: Story, StoryRun, StepRun, Engram, EngramTemplate (http-request)
