CRDs as a Kubernetes-Native Control Plane for Agents
Carlos Santana argued that Kubernetes serves as a platform engineering control plane for agent workloads. The cluster’s API server, CRDs, controllers, and RBAC provide a management system with structured storage, security policies, and admission webhooks. Organizations already use Kubernetes in production with mature tooling for deployments, secrets, and network policies. CRDs abstract infrastructure, regardless of whether the agent runs in the cluster, in the cloud, or exists only as a database record. This model lets platform teams define agent schemas declaratively and enforce conventions.
Three Projects Modeling Agents with CRDs
Santana highlighted three open-source projects that define agents and their components as Custom Resource Definitions. Kagent, donated to the CNCF by Solo, provides CRDs for agents, models, and MCP servers. It exposes agents via the A2A protocol and includes a CLI and web UI. Kubernetes Agent Sandbox, a SIG project, uses CRDs for sandbox claims and warm pools to run agents in isolated environments like gVisor or Firecracker. Symposium, an experimental project by Alex Jones, models agents as ephemeral Kubernetes jobs with sidecar MCP servers, and supports skill packs, persona packs, and persistent memory for recurring agent teams.
The Registry Problem: Inconsistent MCP Server APIs
Santana pointed out the lack of consistency across MCP server registries in Kubernetes. When different projects install their CRDs, each defines its own schema for status fields. A Kagent MCP server CRD may not expose the service URL in its status, while a Symposium MCP server CRD includes the URL. This inconsistency makes it difficult to compose agents that depend on discovering MCP server endpoints. Without a standard way to query the URL, platform teams must manually stitch together information from different CRDs, which is error-prone and fragile.
Crow: Composable CRDs Without Writing Go Code
Santana introduced Crow (Kubernetes Resource Orchestrator), a CNCF project that allows creating CRDs on the fly without writing Go code. Crow uses Resource Graph Definitions (RGDs) to compose multiple Kubernetes resources into a single custom type. It supports CEL expressions for data manipulation and reconciliation. Crow defines a unified MCP server CRD that wraps a deployment and service, exposing the service URL in its status. Developers instantiate with just a name, image, and port. Crow handles dependencies, order, and readiness checks, providing a stable API that abstracts underlying project schemas.
Demo: Wrapping MCP Servers with Crow
Santana demonstrated how Crow wraps an existing Kagent MCP server CRD to add a consistent status URL. He used an external resource reference to extract the service name and port from the Kagent installation. The new unified MCP server CRD then exposes the URL in its status, making it discoverable by other components. He also showed a complete agent deployment using a single Crow RGD YAML file that deploys a frontend, backend, two MCP servers, an RDS database for RAG, and IAM workload identity—all from Kubernetes without leaving the CLI.
Notable Quotes
So there’s no way to discover those type of things. Carlos Santana · ▶ Watch (11:30)
Kubernetes is um I think 11 years old. I’ve been working with it uh eight years. Carlos Santana · ▶ Watch (3:37)
So the schema is important but since there’s many projects and many organizations when you put this um all those CRDs in a in your Kubernetes cluster then it’s kind of like difficult to to stitch them together. Carlos Santana · ▶ Watch (10:44)
Or it could be developers, a development team that you have like people reviewing code, another person writing code, um another person testing code. Carlos Santana · ▶ Watch (8:15)
Key Takeaways
- Kubernetes CRDs provide a structured, secure registry for agent and MCP server definitions.
- Crow enables platform teams to create unified CRD schemas without writing Go controllers.
- A single Crow RGD YAML can deploy a full agent stack including MCP servers, RAG, and cloud resources.
About the Speaker(s)
Carlos Santana is a Senior Specialist Solutions Architect at AWS, leading container solutions for application modernization. He focuses on Kubernetes, platform engineering, and open source. He is a CNCF Ambassador.