Skip to content

Local cluster

From a checkout, with Docker and either kind or minikube installed:

Terminal window
make demo # kind; CLUSTER_TOOL=minikube for minikube

It builds the images, creates a cluster named agent-demo, installs the subsystem from deploy/, and runs the story-writer example, printing the agent’s output when the run reaches Succeeded. With ANTHROPIC_API_KEY set in your shell, the run calls the real model; without it (or with MOCK=1), a deterministic mock agent stands in, so the demo needs no key and no network from the run pod.

VariableEffect
CLUSTER_TOOLkind (default) or minikube. Use minikube where kind’s containerd OOMs the init container.
CLUSTERCluster or profile name, default agent-demo.
EXAMPLESSpace-separated names from examples/*.yaml, or all. Default story-writer.
KEEP=1Keep the cluster afterwards (it is deleted by default).
REBUILD=1Rebuild the images even if they exist locally.
MOCK=1Use the mock agent even when ANTHROPIC_API_KEY is set.

CI runs make itest-examples, which is MOCK=1 EXAMPLES=all make demo: every example is schema-checked against the CRDs and run end to end, so a broken example fails the build.

Any local Kubernetes works. The two most common choices are kind and minikube. The controller auto-detects whether it runs in-cluster or against a local kubeconfig, so the same image works in both.

Terminal window
kind create cluster --name ai-agents
kubectl config use-context kind-ai-agents

Because the agent runtime is injected at run time, your Station images only need to be glibc-based (for example debian:bookworm-slim). Load locally built images into the cluster with:

Terminal window
kind load docker-image ai-agent:dev --name ai-agents
Terminal window
minikube start -p ai-agents
kubectl config use-context ai-agents

To use locally built images without a registry, build against minikube’s Docker daemon:

Terminal window
eval "$(minikube -p ai-agents docker-env)"
# docker build ... ai-agent:dev

With a cluster running, continue to Install.