Helm charts for kubeswarm - AI agents as Kubernetes-native resources.
Full documentation at docs.kubeswarm.io.
- Kubernetes 1.35+
- Helm 3.16+
helm repo add kubeswarm https://kubeswarm.github.io/helm-charts
helm repo update| Chart | Description |
|---|---|
| kubeswarm | Kubernetes operator for running AI agents in production |
# 1. Install the operator (no API key required)
helm install kubeswarm kubeswarm/kubeswarm \
--namespace kubeswarm-system --create-namespace
# 2. Add your LLM API key via a Kubernetes Secret
kubectl create secret generic my-kubeswarm-secrets \
--namespace kubeswarm-system \
--from-literal=ANTHROPIC_API_KEY=sk-ant-...
# or for OpenAI / compatible endpoint (Ollama, vLLM, etc.):
kubectl create secret generic my-kubeswarm-secrets \
--namespace kubeswarm-system \
--from-literal=OPENAI_API_KEY=sk-... \
--from-literal=OPENAI_BASE_URL=http://ollama.ollama.svc:11434/v1
# 3. Point the chart at the secret
helm upgrade kubeswarm kubeswarm/kubeswarm \
--namespace kubeswarm-system \
--set apiKeys.existingSecret=my-kubeswarm-secrets| Value | Default | Description |
|---|---|---|
replicaCount |
1 |
Number of operator replicas (>1 requires leaderElection.enabled=true) |
image.repository |
ghcr.io/kubeswarm/kubeswarm-controller |
Operator image |
image.tag |
(chart appVersion) | Operator image tag |
agentImage |
ghcr.io/kubeswarm/kubeswarm-runtime:0.1.0-alpha.2 |
Agent pod image |
agentImagePullPolicy |
Always |
Pull policy for agent pods |
taskQueueURL |
"" |
Task queue URL (required - e.g. redis://my-redis:6379) |
streamChannelURL |
"" |
Redis URL for SSE token streaming (defaults to taskQueueURL) |
spendStoreURL |
"" |
Redis URL for spend tracking (defaults to taskQueueURL) |
apiKeys.anthropicApiKey |
"" |
Anthropic API key (injected into all agent pods) |
apiKeys.openaiApiKey |
"" |
OpenAI API key (injected into all agent pods) |
apiKeys.existingSecret |
"" |
Use an existing Secret instead of creating one |
agentExtraEnv |
[] |
Extra env vars forwarded to all agent pods |
dashboard.enabled |
false |
Deploy the dashboard web UI |
dashboard.image |
ghcr.io/kubeswarm/dashboard:0.1.0 |
Dashboard image |
leaderElection.enabled |
true |
Enable leader election (required for replicaCount>1) |
triggerWebhook.url |
"" |
External URL of the SwarmEvent webhook server |
admissionWebhooks.enabled |
false |
Enable validating webhooks for inline prompt size guardrails |
otel.endpoint |
"" |
OTLP collector endpoint for metrics and traces |
keda.enabled |
false |
Document that KEDA is installed (operator detects at runtime) |
Full values reference: charts/kubeswarm/values.yaml
- Always use
apiKeys.existingSecret- never pass API keys via--set - Set
taskQueueURLto a managed Redis (ElastiCache, Memorystore, etc.) - Set
replicaCount=2withleaderElection.enabled=true - Set
triggerWebhook.urlto an externally reachable URL forSwarmEventwebhooks - Configure
otel.endpointfor observability
See CONTRIBUTING.md.
This project follows the Contributor Covenant Code of Conduct.
Apache 2.0 - see LICENSE.