Installation
Prerequisites
Section titled “Prerequisites”- A Kubernetes cluster. ctxmesh itself needs 1.29 or newer (the chart enforces it); your Knative Serving release may need newer.
- Knative Serving. Agents run as Knative Services, so this is the one add-on the default install needs.
- Knative Eventing — only if you use
executionModel: eventing. The default (serving) andjobagents need nothing from it, and the control plane starts and runs normally on a cluster without it. Install it when you want event-driven agents, then restart the ctxmesh controller so it picks the capability up; until then an eventing agent fails explicitly and tells you this. - KEDA — only for queue-depth or custom-metric scaling (
AgentScalingPolicy). - Helm 3.8 or newer.
- Access to at least one model provider, or the bundled mock provider for local development.
The data plane (PostgreSQL, an object store, Valkey and NATS) is bundled for development and trial installs; production installs bring their own.
Install (overview)
Section titled “Install (overview)”ctxmesh installs as a set of custom resource definitions plus a control plane (a controller, a gateway, and a console/BFF), delivered as a Helm chart:
helm install ctxmesh oci://ghcr.io/ctxmesh/charts/ctxmesh \ --version 0.1.0-beta.8 \ --namespace ctxmesh --create-namespace \ --wait --timeout 20mThe chart is an OCI artifact on GHCR — there is no helm repo add step, and Helm 3.8+
pulls oci:// references natively. --version is the chart version; the images it
references carry the matching appVersion, so an install is reproducible from that one
number. See compatibility for which SDK goes with it.
On a fresh local cluster, measured runs took 7 to 18 minutes from an empty cluster to a running agent (typically 7 to 11), most of it pulling images.
Sign in to the console
Section titled “Sign in to the console”kubectl -n ctxmesh port-forward svc/ctxmesh-bff 9090:9090 # then open http://localhost:9090/The console signs you in with a Kubernetes bearer token and acts with that identity’s RBAC. To make
one for a namespace you will build agents in (default here), bind the chart’s developer role to a
ServiceAccount and ask for a token:
kubectl -n default create serviceaccount ctxmesh-builderkubectl -n default create rolebinding ctxmesh-builder --clusterrole=ctxmesh-developer --serviceaccount=default:ctxmesh-builderkubectl -n default create token ctxmesh-builder --duration=8hPaste the token into the console’s sign-in. The same token reaches an agent through the control plane, which mints the run’s capability:
curl -s -X POST http://localhost:9090/api/invoke -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' -d '{"agent":"my-agent","namespace":"default","input":"hello"}'The install brings up:
- the CRDs (
AgentDeployment,GuardrailPolicy,ApprovalPolicy,FeedbackStore,EvalSuite, and more); - the controller that reconciles them;
- the gateway that routes model traffic and enforces budgets;
- the console for operating agents (runs, traces, cost, approvals, governance).
Local development
Section titled “Local development”A single-command local loop (a bundled launcher + mock model provider) lets you build and test an agent without a cloud provider. See the Quickstart.