CRD overview
Everything Exo runs in your cluster is a Kubernetes custom resource under agentkube.io/v1alpha1. What the kinds are, how to install the definitions, and how to author and inspect objects.
Exo Operator is a real Kubernetes operator, so its primitives are CRDs. You author Agent and Tool objects with kubectl apply (or GitOps, or the exo CLI), and the agentkube-manager reconciles them into running workloads.
Group & version
All kinds live in the API group agentkube.io, version v1alpha1, and are namespaced — so an Agent in team-a and one in team-b are independent, and RBAC scopes naturally by namespace.
The kinds
1Kind Short Purpose2───── ───── ───────3Agent ag A coding/automation agent: runtime, goal, model, schedule4Tool tl A managed connection (db, ssh, http, k8s) with a bastion podInstalling the CRDs
Three equivalent ways to register the definitions:
1# Installer (recommended)2exo-install crds3 4# Helm (CRDs ship in the chart's crds/ directory; install-time only)5helm install agentkube ./agentkube/helm/agentkube --set crds.install=true6 7# Raw — apply the generated definitions8kubectl apply -f agentkube/config/crd-generated/Authoring resources
Apply a manifest with kubectl, or manage objects through the exo CLI (which proxies to the manager):
1kubectl apply -f agent.yaml2kubectl get agents -n team-a3kubectl describe agent triage-bot -n team-a4 5# CLI equivalents6exo agent list -A7exo agent get triage-bot -n team-a8exo tool list -ASample manifests for every kind live in the repo under agentkube/samples/ — start from those.
Reading status
Each kind writes a .status with a phase and a set of conditions. After applying a manifest, read it back — the reconciler reports the resolved view (effective tools, schedule, errors) there. The per-kind pages that follow call out the fields that matter most when something doesn't come up.