Getting Started
Local development
The fastest way to try arkonis-operator is with the make dev command. It creates a kind cluster and sets everything up in one step with no manual Redis config required.
Prerequisites: Docker, kind, kubectl, Go 1.25+
git clone https://github.com/arkonis-dev/arkonis-operator.git
cd arkonis-operator
make dev ANTHROPIC_API_KEY=sk-ant-...
This will:
- Create a kind cluster
- Build and load both Docker images into the cluster
- Install the CRDs
- Deploy Redis and the operator inside the cluster
- Create the API key secret
When it finishes, deploy your first agent:
kubectl apply -f config/samples/arkonis_v1alpha1_arkonisdeployment.yaml
kubectl get aodep -w
# NAME MODEL REPLICAS READY AGE
# research-agent claude-sonnet-4-20250514 2 2 30s
Tear down when done:
make dev-down
Production install
Prerequisites
- Kubernetes 1.31+
kubectlconfigured against your cluster- An API key for your chosen LLM provider (Anthropic by default)
1. Install the operator
kubectl apply -f https://github.com/arkonis-dev/arkonis-operator/releases/latest/download/install.yaml
This installs the CRDs, RBAC, and the operator deployment in the arkonis-system namespace.
2. Deploy Redis
arkonis-operator uses Redis Streams as the task queue between the operator and agent pods.
kubectl apply -f https://raw.githubusercontent.com/arkonis-dev/arkonis-operator/main/config/prereqs/redis.yaml
3. Create the API key secret
Create one secret per namespace where agents will run. The operator injects the entire secret as environment variables into every agent pod. Add whichever keys your chosen provider requires.
Anthropic (default):
kubectl create secret generic arkonis-operator-api-keys \
--from-literal=ANTHROPIC_API_KEY=sk-ant-... \
--from-literal=TASK_QUEUE_URL=redis.agent-infra.svc.cluster.local:6379
TASK_QUEUE_URL is always required. To use a different provider, also add AGENT_PROVIDER=<name> to the secret.
4. Deploy your first agent
kubectl apply -f https://raw.githubusercontent.com/arkonis-dev/arkonis-operator/main/config/samples/arkonis_v1alpha1_arkonisdeployment.yaml
Verify
kubectl get aodep
# NAME MODEL REPLICAS READY AGE
# research-agent claude-sonnet-4-20250514 2 2 30s
kubectl get pods -l arkonis.dev/deployment=research-agent
# NAME READY STATUS RESTARTS AGE
# research-agent-agent-7d9f-xk2p8 1/1 Running 0 30s
# research-agent-agent-7d9f-mn4q1 1/1 Running 0 30s
Next steps
- ArkonisDeployment reference — full spec for the core resource
- ArkonisService reference — routing tasks to agents
- ArkonisConfig reference — reusable configuration
- ArkonisPipeline reference — multi-agent DAGs
- ArkonisMemory reference — persistent memory backends
- Semantic Health Checks — how readiness probes work
- MCP Servers — connecting tools to agents
- Agent Memory — memory across tasks
- Scaling — replicas and limits