Skip to content

CRD overview

Everything Industric runs in your cluster is a Kubernetes custom resource under autonomic.sh/v1alpha1. What the kinds are, how to install the definitions, and how to author and inspect objects.

Industric 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 autonomic-manager reconciles them into running workloads.

Group & version

All kinds live in the API group autonomic.sh, version v1alpha1, and are namespaced. An Agent in team-a and one in team-b are independent, and RBAC scopes by namespace.

The kinds

KindShortPurpose
AgentFSafsPersistent filesystem for agents
AgentagAgent runtime, goal, model, and schedule
App—Application with a development server
CommandPolicycpolAgent command, filesystem, and network policy
DevboxdboxCoding workspace and persistent runner
GatewayPolicygpolModel input and output policy
LLMGatewayllmgwProvider proxy and model traffic controls
MCPPolicympolMCP access, tool, and argument policy
McpProxy—Composite MCP endpoint
MCP—Remote MCP server registration
RuntimePolicyrpolPolicy bundle of typed members and coverage; also accepts legacy documents
SandboxsbSandbox runtime configuration
ToolPolicytpolTool command and SQL policy
TooltlManaged database, cloud, host, or API connection
WebAgentwaManaged browser workspace

Installing the CRDs

The installer and chart bundle reviewed on 11 November 2026 contain 13 definitions, omitting App and WebAgent. The matching operator source has all 15. Install from that release's autonomic/config/crd/ directory when you need the complete set:

terminal· bash
kubectl apply -f autonomic/config/crd/
exo-install crds
Upgrades are manual for CRDs
Helm installs CRDs on first install but never upgrades them. When a release adds fields, re-apply the published manifests/crds.yaml yourself. See Upgrades.

Authoring resources

Apply a manifest with kubectl, or manage objects through the exo CLI (which proxies to the manager):

terminal· bash
kubectl apply -f agent.yaml
kubectl get agents -n team-a
kubectl describe agent triage-bot -n team-a
exo agent list
exo agent get triage-bot -n team-a
exo tool list

Sample manifests for every kind live in the repo under autonomic/samples/. Start from those.

Reading status

Each kind writes a .status the reconciler updates as it works. After applying a manifest, read it back to see the resolved view and any errors. The per-kind pages that follow call out the fields that matter most when something doesn't come up.