Executive Overview
In the fast-evolving landscape of cloud-native artificial intelligence infrastructure, architectural boundaries are constantly being re-evaluated to accommodate specialized paradigms. A significant structural shift occurred regarding Agent Substrate—a high-velocity platform engineered to orchestrate intelligent workloads. As of September 2, 2026, the ActorTemplate object has been officially deprecated and removed from its previous existence as a native Kubernetes Custom Resource Definition (CRD).
For developers and platform engineers accustomed to managing every facet of cluster architecture through standard Kubernetes manifests, this modification marks a fundamental paradigm shift. Historically, the ActorTemplate served as the golden template, establishing the definitive configurations, runtime settings, and security parameters that individual actors required to execute reliably. However, continuing to house this construct within the Kubernetes API exposed foundational friction: it leaked platform-specific identities, namespace mechanics, lifecycle behaviors, and authorization schemes into a public interface where they did not inherently belong.
This comprehensive technical report examines the rationale behind the removal of the Kubernetes-native ActorTemplate, details the new mechanics of handling templates natively within the Substrate API (ateapi), and provides a step-by-step walkthrough for deploying actors in this post-Kubernetes era. By migrating template management into the ateapi control plane, Agent Substrate achieves a cleaner separation of concerns, empowering CLIs, SaaS control planes, and gRPC clients to share a unified, decoupled schema that can evolve independently of Kubernetes’ release cycles.

Detailed Chronology & Architectural Rationale
To fully understand why the ActorTemplate was excised from Kubernetes, one must analyze the challenges of adapting general-purpose orchestration tools to specialized AI workloads. Kubernetes excels at orchestrating stateless and stateful containerized workloads via standard primitives—deployments, pods, services, and CRDs. However, agentic workloads—characterized by complex state management, rapid lifecycles, and specialized isolation boundaries—often stretch these native conventions beyond their intended design parameters.
The Leaky Abstraction Problem
When ActorTemplate was first introduced, it operated as a standard Kubernetes object. While this integration offered immediate familiarity for platform engineers utilizing tools like kubectl apply, it introduced critical architectural liabilities:
- Identity Pollution: The resource inherited Kubernetes-centric naming conventions, rigid namespace boundaries, and authorization contexts. These traits conflicted with multi-tenant SaaS and remote gRPC clients that required identity models decoupled from cluster topology.
- Lifecycle Mismatches: Kubernetes objects adhere to reconciliation loops that do not always align with the ephemeral, event-driven, and highly dynamic lifecycle of autonomous software agents.
- API Coupling: Tying the template schema directly to Kubernetes CRDs meant that any evolution in the Substrate API had to navigate Kubernetes versioning constraints, slowing down feature velocity.
The Transition to ateapi
To resolve these frictions, core maintainers made the strategic decision to migrate the template construct entirely into the ateapi domain. Because Actors themselves are natively managed objects within ateapi, aligning their foundational templates to the same API surface creates structural symmetry.

The ate-api-server now assumes full ownership of template lifecycles, exposing a dedicated set of control methods via ateapi.Control:
CreateActorTemplateGetActorTemplateListActorTemplatesDeleteActorTemplate
While certain low-level operational components and infrastructure primitives remain anchored as Kubernetes CRDs, the semantic definitions governing agent behavior have successfully broken free. This split responsibility ensures that Kubernetes remains focused on foundational cluster orchestration, while the Substrate API manages the intelligent behavior, snapshotting, and sandboxing requirements of modern AI agents.
Supporting Context & Metrics: The Speed of AI Infrastructure
The Agent Substrate project operates within an ecosystem defined by unprecedented acceleration. In the broader technology sector, few domains match the velocity of artificial intelligence development. New model architectures, context-window expansions, and multi-agent coordination frameworks emerge on a weekly, if not daily, basis.

When infrastructure frameworks lag behind application-layer innovations, developer friction increases exponentially. Maintaining a tightly coupled Kubernetes CRD for template definitions introduced administrative overhead that conflicted with the agility required by AI engineering teams. By decoupling the Substrate API from Kubernetes’ native object model, the platform achieves several distinct advantages:
- Cross-Client Uniformity: SaaS dashboards, command-line interfaces, and programmatic gRPC agents now consume the exact same schema, eliminating discrepancies between local development and cloud-scale production environments.
- Independent Schema Evolution: The Substrate control plane can introduce new snapshot configurations, security sandboxes, or resource limit parameters without waiting for Kubernetes upstream API updates or requiring cluster-admin CRD upgrades.
- Reduced Cluster Noise: Removing non-standard constructs from the Kubernetes etcd database reduces overall object bloat, keeping cluster states lean and operational metrics performant.
Hands-On Guide: Deploying Substrate Actors Post-Kubernetes
For engineers adapting to this new architecture, managing actors without a Kubernetes-native ActorTemplate requires shifting interaction patterns from standard kubectl manifest apply loops to the unified ateapi workflow. Below is a comprehensive guide to preparing templates, establishing atespaces, and instantiating actors.
Step 1: Preparing the Template Configuration
Templates are now authored as standalone YAML configurations destined for ingestion by the ateapi. Consider the following production-grade configuration for a counter workload:

metadata:
atespace: ate-demo-counter
name: counter
workerSelector:
matchLabels:
workload: counter
containers:
- name: counter
image: <digest-pinned image>
command:
- /ko-app/counter
readyz:
httpGet:
path: /readyz
port: 80
volumeMounts:
- name: data
mountPath: /home/counter
resources:
limits:
- name: cpu
quantity: "1"
- name: memory
quantity: 512Mi
snapshotsConfig:
onPause: SNAPSHOT_CONTENT_SCOPE_FULL
onCommit: SNAPSHOT_CONTENT_SCOPE_FULL
storageLocation: gs://$BUCKET_NAME/ate-demo-counter/
sandboxConfig:
sandboxClass: SANDBOX_CLASS_GVISOR
configName: gvisor-default
volumes:
- name: data
durableDir:
Key Elements of the New Template Schema:
- Metadata & Scoping: The configuration explicitly binds itself to a designated
atespace(ate-demo-counter) and assigns a unique template identifier (counter). - Container Isolation & Sandboxing: Leveraging
sandboxConfigwithSANDBOX_CLASS_GVISORensures that agent code executes within a robust kernel-isolated boundary, protecting the underlying host environment. - Durable Storage & Snapshots: The inclusion of
snapshotsConfigand durable directory volume mounts enables seamless state pausing, committing, and disaster recovery—critical capabilities for long-running autonomous agents.
Step 2: Creating the Atespace and Template
Once the configuration file is saved locally (e.g., as counter-template.yaml), you utilize the kubectl ate plugin interface to provision the logical boundaries and register the template directly into the Substrate API server:
# Create the isolated execution atespace
kubectl ate create atespace ate-demo-counter
# Register the actor template via the ateapi control plane
kubectl ate create actor-template -f counter-template.yaml
This sequence bypasses the traditional Kubernetes object reconciliation pipeline for the template, routing the definition directly through ateapi.Control methods.
Step 3: Instantiating the Actor
With the template successfully registered in the target atespace, instantiating an individual actor is streamlined. Actor IDs must adhere to standard DNS-1123 label specifications. You reference the newly created template using the --template-ref flag:

kubectl ate create actor my-counter-1
--atespace ate-demo-counter
--template-ref counter
Upon execution, the Substrate control plane pulls the configurations defined in the referenced counter template, provisions the necessary worker nodes matching the workerSelector labels, mounts the specified durable storage volumes, and brings the actor online within its designated sandbox environment.
Future Outlook
The removal of the Kubernetes-native ActorTemplate is not merely a refactoring exercise; it represents a mature evolution in how cloud-native infrastructure interacts with artificial intelligence primitives. As agentic systems grow more autonomous, distributed, and resource-intensive, they demand specialized control planes that transcend the general-purpose assumptions of traditional container orchestrators.
Looking forward, the separation of concerns established by moving templates into ateapi paves the way for advanced multi-cluster federation, enhanced security sandboxing models, and near-instantaneous state snapshotting mechanisms. Platform engineers and developers embracing this shift will find themselves better equipped to build, scale, and manage the next generation of intelligent, highly resilient software agents without being constrained by the limits of legacy API boundaries.
