Installation
Krypton ships as a single Helm chart with four components: manager (controller + scaler), control plane (REST API + UI), gateway (public ingress + activator), and a per-pod proxy sidecar the manager injects into agent pods.
If you just want to kick the tyres on a laptop, jump to
Local testing — that wraps everything below in
make deploy-dev.
1. Install the chart
helm install krypton oci://ghcr.io/kryptonhq/charts/krypton \
--namespace krypton-system \
--create-namespace \
--set controlPlane.databaseUrl="postgres://user:pass@host:5432/db"
This installs the most recent chart; its appVersion pins the
matching image tags. To pin a specific release, pass
--version 0.0.1-rc.2 (latest stable is v0.0.1-rc.2).
controlPlane.databaseUrl points at a managed Postgres for the
agent-registry mirror. Leave empty to use an in-memory store
(acceptable for dev or single-replica installs).
For production, you’ll front the krypton-gateway Service with an L7
ingress (Gateway API, Nginx, etc.) — covered in
Bring your own ingress once you’ve got an agent running.
2. Open the UI and confirm health
The control plane serves a small operator UI:
kubectl -n krypton-system port-forward svc/krypton-control-plane 8090:8090
open http://localhost:8090/ui/
You should land on an Agents list (empty) and an MCP servers list (empty). If the page renders and both lists load without errors, the manager, control plane, and Postgres mirror are all healthy.
Ports refresher:
:8090is operator tooling only. Agent traffic goes through the gateway on:8080— see Ports & endpoints.
3. Deploy the helloworld agent (two commands)
examples/agent/python/helloworld is a no-LLM, no-secrets A2A agent
that just echoes — perfect for confirming the end-to-end path works:
kubectl apply -f https://raw.githubusercontent.com/kryptonhq/runtime/main/examples/agent/python/helloworld/agent.yaml
kubectl -n krypton-system port-forward svc/krypton-gateway 8080:8080 &
Then invoke it:
curl -X POST http://localhost:8080/v1/agents/agents/helloworld/ \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":"1","method":"message/send",
"params":{"message":{"messageId":"m1","role":"user",
"parts":[{"kind":"text","text":"ping"}]}}}'
You’ll get back:
{ "result": { "artifacts": [{ "parts": [{ "kind": "text",
"text": "Hello, World! I have received your request (ping)" }]}],
"status": { "state": "completed" } } }
The agent is also visible in the UI now, with Phase: Ready and the
Invoke widget pre-populated against the same gateway endpoint.
Where to go next
- Build and deploy your own agent (LangGraph, ADK, anything) → Deploying your first Agent
- Deploy an MCP server → Deploying your first MCP
- Production-grade ingress, TLS, rate limiting → Bring your own ingress
- End-to-end local loop with kind → Local testing