substrate

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2026 License: Apache-2.0

README

Agent Substrate

License

NOTE: This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.

What is Agent Substrate?

Agent Substrate delivers a performant, high density runtime environment for large scale agent deployments. The agent substrate control plane provides full lifecycle management for agent sandboxes, delivering sub-second agent resume/suspend operations, and allows heavy multiplexing of agents onto the same computer infrastructure. It supports multiple sandbox technologies including microVMs and gVisor, enabling consistent lifecycle operations for all sandbox types.

At its core, Agent Substrate maps a larger set of “actors” (applications such as agents) onto a smaller set of ready “workers”, relying on the fact that agent-like applications tend to be idle most of the time to achieve heavy multiplexing. It provides functionality to manage an actor’s lifecycle (e.g. create/destroy, suspend/resume), to assign actors to workers in real time, and to route incoming traffic to them.

Agent Substrate is intended to be a low-opinion system. The workloads it manages don't have to be literal AI agents, but those are the best example of the kind of applications it is designed for. It is not an SDK for building agents, but rather a system for running them at scale.

Agent Substrate leverages Kubernetes for the infrastructure provisioning and worker lifecycle management (Kubernetes Pods). It builds on top of Kubernetes features like Pods and Pod autoscaling, while Agent Substrate provides agent-specific scheduling and control to achieve lower latency. Using Kubernetes as the underlying system enables consistent infrastructure management across all workloads types that are required for end to end agentic deployments and allows holistic infrastructure optimizations for RL scenarios that span agentic, inference and training cycles.

Demo

Agent Substrate Demo

Watch the Agent Substrate cluster multiplex ~250 stateful actors across just 8 physical pods.

This demo highlights the core developer experience and "Agentic Infrastructure" capabilities of Substrate:

  1. Actor Teleport: High-performance suspend and resume of actors onto any available worker in the pool with sub-second activation.
  2. State Persistence: Persistent working memory (volatile RAM) and filesystem state preserved perfectly across hibernation cycles via full-state snapshots.
  3. Agent Multiplexing: Demonstrates 30x+ oversubscription by "juggling" a large registry of stateful actors onto a small pool of shared physical pods.

To reproduce this demo in your own cluster, please refer to the detailed walkthrough in the Counter Demo.

For more videos and walkthroughs, visit our YouTube channel: agent-substrate.

Framework Agnostic & Compatibility

Agent Substrate is designed to be framework and agent harness agnostic. Because it manages standard OCI containers at the kernel level (via gVisor), it can host agents built on any stack.

  • Agent Development Kit (ADK): Support for ADK agents with session state preservation across invocations as actor state. Ideal for all types of agents and stateful tool or subagent calls.
  • LangChain: Ideal execution environment for LangChain agents and tool calls.
  • Claude Code, CodeX, and Antigravity: Support for high-density, stateful coding environments that preserve system state and filesystem state across sessions.
  • Model Context Protocol (MCP): Support for deploying secure, sandboxed MCP servers as Substrate Actors to provide durable tools for any model.

Ecosystem & Examples

  • Agent Executor: A distributed agent runtime that demonstrates building a secure, hyper-scalable agent harness on Agent Substrate (see the announcement blog and integration guide).
  • kagent: A CNCF Sandbox project and Kubernetes-native framework for building, deploying, and managing AI agents that uses Agent Substrate to run sandboxed, stateful agent workloads (see the announcement blog).

Status and compatibility

Agent Substrate is currently in early development. It is not ready for production use, and the APIs are almost guaranteed to change. We are not making any guarantees about backward compatibility at this stage, and everything in this project may be changed.

Supported Kubernetes Releases

Currently we aim to support the latest stable release of Kubernetes, and the previous minor release.

Community

For announcements, technical discussions, and community support, please join the ate-dev Google Group.

We host a weekly community meeting every Thursday from 10:00am - 11:00am PST.

We also have channels in the CNCF slack; request an invite here if you don't have access.

Developing

Please see CONTRIBUTING.md for guidelines on contributing to the project. We welcome contributions of all kinds, but the project is VERY young. Our immediate focus is on building out the core system and demos, so we may not be able to review or merge contributions that don't align with those goals in the near term.

Quickstart (Development)

To quickly set up the complete environment:

  1. Make sure you have Go, kubectl, and docker installed and configured on your dev machine. We will automatically manage other dependencies via Go, including kind.

  2. Run the following steps:

# create cluster and local registry (IPv4; IP_FAMILY=dual|ipv6 overrides)
hack/create-kind-cluster.sh

# install ate, PostgreSQL, rustfs
hack/install-ate-kind.sh --deploy-ate-system

# install counter demo
hack/install-ate-kind.sh --deploy-demo-counter

# install kubectl-ate
go install ./cmd/kubectl-ate

# create a counter actor in the demo's atespace (--template-ref names the
# actor template, resolved in the actor's atespace)
kubectl ate create actor my-counter-1 -a ate-demo-counter --template-ref counter

# port-forward the network router to bind to local port `8000`
kubectl port-forward -n ate-system svc/atenet-router 8000:80
  1. In a separate terminal, send an HTTP request to increment the counter:
curl -X POST -H "Host: my-counter-1.ate-demo-counter.actors.resources.substrate.ate.dev" -i http://localhost:8000/

Worker capacity is versioned: the dataplane (the atelet DaemonSet and the worker pods) schedules only on nodes that carry the ate.dev/substrate-version label, and the install stamps it on every node that exists when it runs. A node added later hosts no workers until you label it with the installed version (kubectl label node <node> ate.dev/substrate-version=<build version>). kubectl get ds -n ate-system -l app=atelet -L ate.dev/substrate-version prints the installed version, off the atelet DaemonSet the install created.

GKE Quickstart (Development)
  1. Create and configure your environment file:

    cp hack/ate-dev-env.sh.example .ate-dev-env.sh
    
    # Edit .ate-dev-env.sh to match your project and preferences, then source it:
    source .ate-dev-env.sh
    
  2. Enable application-default credentials for gcloud:

    gcloud auth application-default login --project=${PROJECT_ID}
    
  3. Provision the required GCP resources (GKE cluster, GCS, and IAM bindings):

    go run ./tools/setup-gcp bootstrap
    

    On a fresh project this step also creates the atelet Workload Identity IAM grants that snapshots depend on — see what create iam actually grants to audit them or apply them manually. If you bring your own cluster instead, note the required Kubernetes beta APIs can only be enabled at cluster creation — see the Create Cluster warning.

  4. Deploy the Agent Substrate system to your cluster:

    ./hack/install-ate.sh --deploy-ate-system
    

    Nodes that GKE adds later (autoscaling, auto-repair, node upgrades) are born with the node pool's labels, so the pool needs ate.dev/substrate-version too; see Node version labels.

  5. You can then deploy the sample applications. See demos/counter/README.md or demos/sandbox/README.md for detailed walkthroughs.

    ./hack/install-ate.sh --deploy-demo-counter
    
Custom Setup and Deployment

You can run individual setup steps to create GCP resources as needed. See go run ./tools/setup-gcp --help for available options. For example:

go run ./tools/setup-gcp create cluster
go run ./tools/setup-gcp create bucket

To run the PostgreSQL store backend on Cloud SQL — with IAM database authentication and no passwords — see tools/setup-gcp/cloud-sql.md.

Similarly, you can deploy or cleanup specific Agent Substrate components using the installation script. See ./hack/install-ate.sh --help for all options.

# Re-deploy only ate-apiserver of the ATE system
./hack/install-ate.sh --deploy-ate-apiserver

# Delete everything (core system and all demos)
./hack/install-ate.sh --delete-all
Tearing down resources (GCP)

If you need to delete the resources created by the setup script, you can use the provided script hack/teardown.sh. This script will delete resources in the reverse order of creation and handles partial failures gracefully.

./hack/teardown.sh --all

Or run individual teardown steps as needed (see ./hack/teardown.sh for available options).

Tearing down local kind resources

If you need to delete the local kind cluster and its registry (if it was created by hack/create-kind-cluster.sh):

./hack/delete-kind-cluster.sh

Demos

We provide several sample applications demonstrating Agent Substrate's capabilities:

  1. Counter Demo: A stateful Go HTTP server demonstrating state preservation across suspends/resumes, and dynamic CRD routing.
  2. Sandbox Demo (Antigravity): A secure, sandboxed execution environment (running Alpine Linux) that allows arbitrary shell execution while preserving filesystem state across sessions.
  3. Claude Code Multiplex: Demonstrates oversubscribing physical hardware by multiplexing multiple Claude Code agents onto a limited pool of workers.
  4. Multi-Template: Two ActorTemplates running different binaries share one WorkerPool, across three namespaces.
  5. Request Parking: An oversubscribed pool where the router holds inbound requests until a worker frees up, instead of returning 503.
  6. Autoscaled WorkerPool: Scales a WorkerPool on its assigned-worker count with an HPA fed by prometheus-adapter.
Documentation & Guides

Tour

Commands
  • cmd/ateapi: The core control plane API server exposing gRPC endpoints to manage actor and worker lifecycles.
  • cmd/atelet: A node-level DaemonSet that supervises physical worker pods, coordinates snapshotting, and manages state transfers.
  • cmd/atecontroller: A Kubernetes controller that reconciles WorkerPool custom resources.
  • cmd/atenet: A combined networking controller providing DNS, Envoy routing, and proxy sidecars.
  • cmd/ateom-gvisor: An interior-pod helper running inside sandboxed worker pods to execute runsc checkpoint and restore commands.
  • cmd/ateom-microvm: The micro-VM peer of ateom-gvisor, running actors as cloud-hypervisor VMs.
  • cmd/podcertcontroller: A "polyfill" that provides Pod Certificate signers that will eventually ship in upstream Kubernetes (with different names).
  • cmd/kubectl-ate: A CLI tool for managing Agent Substrate resources. See its README.
  • cmd/benchmarking: Synthetic workloads used by the load tests, including glutton, which consumes RAM, disk, and file descriptors on demand.
  • tools/setup-gcp: A provisioning utility to set up the necessary GCP infrastructure resources (GKE, GCS, IAM).
  • demos/: Sample applications demonstrating Agent Substrate capabilities.

Directories

Path Synopsis
_LICENSES
cmd
ate-setup command
Command ate-setup installs and tears down Agent Substrate on a Kubernetes cluster.
Command ate-setup installs and tears down Agent Substrate on a Kubernetes cluster.
ate-setup/internal/cmd
Package cmd implements the ate-setup command tree.
Package cmd implements the ate-setup command tree.
ate-setup/internal/config
Package config resolves the environment ate-setup installs into.
Package config resolves the environment ate-setup installs into.
ate-setup/internal/demos
Package demos holds the contract every bundled demo implements, the registry the command tree is built from, and the shared behavior of a demo that is one manifest template.
Package demos holds the contract every bundled demo implements, the registry the command tree is built from, and the shared behavior of a demo that is one manifest template.
ate-setup/internal/demos/all
Package all links every bundled demo into the binary.
Package all links every bundled demo into the binary.
ate-setup/internal/demos/autoscaledworkerpool
Package autoscaledworkerpool installs the counter workload plus the custom-metrics stack that drives a HorizontalPodAutoscaler over its WorkerPool.
Package autoscaledworkerpool installs the counter workload plus the custom-metrics stack that drives a HorizontalPodAutoscaler over its WorkerPool.
ate-setup/internal/demos/claudemultiplex
Package claudemultiplex installs the claude-code-multiplex demo, which runs several Claude Code agents side by side on one WorkerPool.
Package claudemultiplex installs the claude-code-multiplex demo, which runs several Claude Code agents side by side on one WorkerPool.
ate-setup/internal/demos/counter
Package counter installs the counter demo: a counter actor exercising snapshot, resume, and atenet ingress, optionally with an external volume attached so the CSI path is covered end to end.
Package counter installs the counter demo: a counter actor exercising snapshot, resume, and atenet ingress, optionally with an external volume attached so the CSI path is covered end to end.
ate-setup/internal/demos/demotest
Package demotest provides the fixtures the demo packages share in their tests: an Env that needs no cluster, and the assertion that a rendered template is a complete manifest.
Package demotest provides the fixtures the demo packages share in their tests: an Env that needs no cluster, and the assertion that a rendered template is a complete manifest.
ate-setup/internal/demos/egress
Package egress installs the egress demo, which exercises egress policy enforcement through atenet.
Package egress installs the egress demo, which exercises egress policy enforcement through atenet.
ate-setup/internal/demos/multitemplate
Package multitemplate installs the multi-template demo, where two ActorTemplates in two different atespaces share a single WorkerPool.
Package multitemplate installs the multi-template demo, where two ActorTemplates in two different atespaces share a single WorkerPool.
ate-setup/internal/demos/parking
Package parking installs the parking demo, which parks and unparks actors on a small WorkerPool.
Package parking installs the parking demo, which parks and unparks actors on a small WorkerPool.
ate-setup/internal/demos/sandbox
Package sandbox installs the sandbox demo: an ActorTemplate driven on demand by the sandbox client rather than by a long-lived workload.
Package sandbox installs the sandbox demo: an ActorTemplate driven on demand by the sandbox client rather than by a long-lived workload.
ate-setup/internal/images
Package images decides where ate-setup gets container images from.
Package images decides where ate-setup gets container images from.
ate-setup/internal/ko
Package ko builds and publishes images referenced by manifests, replacing the run_ko helper in the shell installer.
Package ko builds and publishes images referenced by manifests, replacing the run_ko helper in the shell installer.
ate-setup/internal/kube
Package kube provides the cluster operations ate-setup needs, replacing the kubectl invocations the install shell scripts made.
Package kube provides the cluster operations ate-setup needs, replacing the kubectl invocations the install shell scripts made.
ate-setup/internal/kustomize
Package kustomize renders the overlays under manifests/ate-install, standing in for `kubectl kustomize <dir> --load-restrictor LoadRestrictionsNone`.
Package kustomize renders the overlays under manifests/ate-install, standing in for `kubectl kustomize <dir> --load-restrictor LoadRestrictionsNone`.
ate-setup/internal/log
Package log prints install progress, preserving the "[step]: name" output the shell scripts produced so existing CI log scrapers keep working.
Package log prints install progress, preserving the "[step]: name" output the shell scripts produced so existing CI log scrapers keep working.
ate-setup/internal/render
Package render expands the demos' *.yaml.tmpl files.
Package render expands the demos' *.yaml.tmpl files.
ate-setup/internal/steps
Package steps holds the install and teardown operations that the shell installer implemented as bash functions.
Package steps holds the install and teardown operations that the shell installer implemented as bash functions.
ateapi command
ateapi/internal/ateletauth
Package ateletauth authenticates RPCs that arrive from an atelet, for the ateapi services served only to atelet.
Package ateletauth authenticates RPCs that arrive from an atelet, for the ateapi services served only to atelet.
ateapi/internal/ateletauth/ateletauthtest
Package ateletauthtest builds the peer contexts that the ateapi services served only to atelet authenticate against.
Package ateletauthtest builds the peer contexts that the ateapi services served only to atelet authenticate against.
ateapi/internal/oidcjwt
Package oidcjwt verifies JWTs using OIDC discovery.
Package oidcjwt verifies JWTs using OIDC discovery.
ateapi/internal/scheduling
Package scheduling decides which worker should host an actor.
Package scheduling decides which worker should host an actor.
ateapi/internal/store
Package store contains common types for the persistence layer.
Package store contains common types for the persistence layer.
ateapi/internal/store/atepg
Package atepg is an ate storage backend built on PostgreSQL.
Package atepg is an ate storage backend built on PostgreSQL.
ateapi/internal/store/dockerenv
Package dockerenv points testcontainers at the active Docker context.
Package dockerenv points testcontainers at the active Docker context.
ateapi/internal/store/storecontract
Package storecontract provides backend-neutral assertions for store.Interface implementations.
Package storecontract provides backend-neutral assertions for store.Interface implementations.
ateapi/internal/store/storetest
Package storetest provides isolated PostgreSQL-backed stores for tests.
Package storetest provides isolated PostgreSQL-backed stores for tests.
ateapi/internal/workercache
Package workercache maintains an in-memory view of all workers, kept current via store.Interface.WatchWorkers.
Package workercache maintains an in-memory view of all workers, kept current via store.Interface.WatchWorkers.
ateapi/internal/workerservice
Package workerservice serves the RPCs a Worker uses to tell the control plane about itself.
Package workerservice serves the RPCs a Worker uses to tell the control plane about itself.
atecontroller command
atecontroller/internal/workersync
Package workersync reconciles Kubernetes worker pods into the Worker registry behind the ateapi Control API.
Package workersync reconciles Kubernetes worker pods into the Worker registry behind the ateapi Control API.
atelet command
atenet command
atenet/internal/router/egress
Package egress implements the ext_proc handler for outbound actor traffic: it authenticates the actor behind an egress CONNECT before the gateway tunnels it out.
Package egress implements the ext_proc handler for outbound actor traffic: it authenticates the actor behind an egress CONNECT before the gateway tunnels it out.
atenet/internal/router/extproc
Package extproc implements the external processing (ext_proc) gRPC server that the atenet router serves to its dataplane gateways.
Package extproc implements the external processing (ext_proc) gRPC server that the atenet router serves to its dataplane gateways.
atenet/internal/router/ingress
Package ingress implements the ext_proc handler for traffic arriving at the ingress gateway: it resolves the actor a request is addressed to, resumes it through the control plane (parking the request while the worker pool is saturated), and points the dataplane at the worker that ends up hosting it.
Package ingress implements the ext_proc handler for traffic arriving at the ingress gateway: it resolves the actor a request is addressed to, resumes it through the control plane (parking the request while the worker pool is saturated), and points the dataplane at the worker that ends up hosting it.
atenet/internal/sdsmint
Delta SDS: the stateful, per-connection half of the server.
Delta SDS: the stateful, per-connection half of the server.
ateom-gvisor command
ateom-gvisor/internal/cdiinject
Package cdiinject applies CDI container edits to an actor's OCI bundle.
Package cdiinject applies CDI container edits to an actor's OCI bundle.
ateom-gvisor/internal/cgroupstats
Package cgroupstats reads resource usage out of a cgroup v2 directory.
Package cgroupstats reads resource usage out of a cgroup v2 directory.
ateom-microvm command
Command ateom-microvm is the kata + cloud-hypervisor micro-VM implementation of the ateompb.Ateom service, a peer to cmd/ateom-gvisor.
Command ateom-microvm is the kata + cloud-hypervisor micro-VM implementation of the ateompb.Ateom service, a peer to cmd/ateom-gvisor.
ateom-microvm/internal/agentstats
Package agentstats turns the kata guest agent's per-container cgroup accounting into the resource-usage sample ateom reports.
Package agentstats turns the kata guest agent's per-container cgroup accounting into the resource-usage sample ateom reports.
ateom-microvm/internal/ch
Package ch drives a single cloud-hypervisor instance over its REST api-socket: pause, snapshot, resume against a running VMM (e.g.
Package ch drives a single cloud-hypervisor instance over its REST api-socket: pause, snapshot, resume against a running VMM (e.g.
ateom-microvm/internal/kata
Package kata holds the helpers ateom uses to boot and drive a kata guest in a cloud-hypervisor micro-VM without the kata shim: ateom boots cloud-hypervisor itself (see internal/ch), then drives the stock kata-agent over its hybrid-vsock ttrpc API (DialAgent / AgentClient) to create the sandbox and run each container on its host-merged rootfs (overlay_linux.go).
Package kata holds the helpers ateom uses to boot and drive a kata guest in a cloud-hypervisor micro-VM without the kata shim: ateom boots cloud-hypervisor itself (see internal/ch), then drives the stock kata-agent over its hybrid-vsock ttrpc API (DialAgent / AgentClient) to create the sandbox and run each container on its host-merged rootfs (overlay_linux.go).
ateom-microvm/internal/reaper
Package reaper collects detached child processes in ateom-microvm.
Package reaper collects detached child processes in ateom-microvm.
benchmarking/boomer-worker command
boomer-worker is the Go re-implementation of the GluttonUser locust test.
boomer-worker is the Go re-implementation of the GluttonUser locust test.
benchmarking/glutton command
glutton is a small benchmarking workload that exposes a gRPC API for consuming RAM, disk, and file descriptors, and for gossiping with other glutton instances.
glutton is a small benchmarking workload that exposes a gRPC API for consuming RAM, disk, and file descriptors, and for gossiping with other glutton instances.
kubectl-ate command
podcertcontroller command
Command podcertcontroller is a pod certificate controller that implements two signers.
Command podcertcontroller is a pod certificate controller that implements two signers.
podcertcontroller/internal/rendezvous
Package rendezvous uses rendezvous hashing to help multiple controller replicas agree on which replica should handle an item.
Package rendezvous uses rendezvous hashing to help multiple controller replicas agree on which replica should handle an item.
demos
claude-code-multiplex/ui command
Demo UI server — substrate multiplex visualization.
Demo UI server — substrate multiplex visualization.
counter command
Command counter is a simple server that will be used as a worker pod.
Command counter is a simple server that will be used as a worker pod.
egress command
Command egress is a small HTTP service for demonstrating per-Actor egress policy.
Command egress is a small HTTP service for demonstrating per-Actor egress policy.
multi-template/fspersist command
Command fspersist is a simple server used as an actor workload.
Command fspersist is a simple server used as an actor workload.
sandbox command
sandbox/client command
internal
actorlog
Package actorlog provides structured JSON logging for actor sandboxes shared by the gVisor and micro-VM ateom runtimes.
Package actorlog provides structured JSON logging for actor sandboxes shared by the gVisor and micro-VM ateom runtimes.
ateapiauth
Package ateapiauth authenticates clients of the ateapi gRPC server, and provides a matching client dial helper.
Package ateapiauth authenticates clients of the ateapi gRPC server, and provides a matching client dial helper.
ateattr
Package ateattr is the single source of truth for substrate's ate.* telemetry attributes: the identity keys stamped on spans/logs, and the bounded value sets used as metric labels.
Package ateattr is the single source of truth for substrate's ate.* telemetry attributes: the identity keys stamped on spans/logs, and the bounded value sets used as metric labels.
atelet
Package atelet contains shared constants and definitions that are used across Substrate components related to atelet.
Package atelet contains shared constants and definitions that are used across Substrate components related to atelet.
ateletdial
Package ateletdial connects a worker Pod to the atelet on its own node over the node-local socket, authenticating both ends by Pod certificate.
Package ateletdial connects a worker Pod to the atelet on its own node over the node-local socket, authenticating both ends by Pod certificate.
ateomcapacity
Package ateomcapacity reports what an ateom can supply to the actors it hosts.
Package ateomcapacity reports what an ateom can supply to the actors it hosts.
ateomnet
Package ateomnet provides shared networking configuration logic for Substrate runtime agents.
Package ateomnet provides shared networking configuration logic for Substrate runtime agents.
ateompath
Ateom and atelet need to agree on many filesystem paths.
Ateom and atelet need to agree on many filesystem paths.
ateomstats
Package ateomstats holds the pieces both ateom runtimes need to answer ateompb.Ateom/GetWorkloadStats.
Package ateomstats holds the pieces both ateom runtimes need to answer ateompb.Ateom/GetWorkloadStats.
atunnel
Package atunnel carries actor ingress and egress through an ateom worker pod.
Package atunnel carries actor ingress and egress through an ateom worker pod.
benchmarking/boomer/dynconfig
Package dynconfig fetches and holds the boomer worker's runtime-mutable settings — the subset of locust flags the operator can change in the web UI form.
Package dynconfig fetches and holds the boomer worker's runtime-mutable settings — the subset of locust flags the operator can change in the web UI form.
benchmarking/boomer/glutton
Package glutton implements the boomer-Go re-implementation of the GluttonUser locust test (see the legacy Python in benchmarking/locust/tests/glutton.py for the reference behavior).
Package glutton implements the boomer-Go re-implementation of the GluttonUser locust test (see the legacy Python in benchmarking/locust/tests/glutton.py for the reference behavior).
benchmarking/boomer/metrics
Package metrics mirrors the Prometheus surface emitted by benchmarking/locust/common/metrics.py — same metric names and labels so dashboards built against the Python locust workers keep working when the load source is a boomer-Go worker.
Package metrics mirrors the Prometheus surface emitted by benchmarking/locust/common/metrics.py — same metric names and labels so dashboards built against the Python locust workers keep working when the load source is a boomer-Go worker.
benchmarking/boomer/trace
Package trace wires the OTLP tracer + W3C propagator used by the boomer load-test workers.
Package trace wires the OTLP tracer + W3C propagator used by the boomer load-test workers.
benchmarking/glutton/fake
Package fake provides an httptest-backed stand-in for a glutton actor.
Package fake provides an httptest-backed stand-in for a glutton actor.
cdi
Package cdi reads a Container Device Interface spec and resolves what a named set of devices asks a container runtime to do.
Package cdi reads a Container Device Interface spec and resolves what a named set of devices asks a container runtime to do.
credbundle
Package credbundle handles credential bundle files written by Kubernetes Pod Certificates.
Package credbundle handles credential bundle files written by Kubernetes Pod Certificates.
deviceplugin
Package deviceplugin advertises host device nodes (for example /dev/kvm) to kubelet as extended resources, so a worker pod can be granted just those devices instead of running privileged.
Package deviceplugin advertises host device nodes (for example /dev/kvm) to kubelet as extended resources, so a worker pod can be granted just those devices instead of running privileged.
e2e
e2e/fixtures/probe command
Command probe is a minimal introspection actor used by the e2e suites.
Command probe is a minimal introspection actor used by the e2e suites.
e2e/fixtures/testserver command
Command testserver is the one binary behind every plain helper pod the egress e2e suites stand up.
Command testserver is the one binary behind every plain helper pod the egress e2e suites stand up.
imagecache
Package imagecache implements the node-local OCI image cache: a content-addressed pool of unpacked image layers shared by every actor on the node, plus the per-bundle overlay spec that tells the ateom runtimes how to compose an actor rootfs from cached layers.
Package imagecache implements the node-local OCI image cache: a content-addressed pool of unpacked image layers shared by every actor on the node, plus the per-bundle overlay spec that tells the ateom runtimes how to compose an actor rootfs from cached layers.
localca
Package localca implements a CA whose state can be stored in a local file or Kubernetes secret.
Package localca implements a CA whose state can be stored in a local file or Kubernetes secret.
localjwtauthority
Package localjwtauthority implements a simple "CA" for JWTs.
Package localjwtauthority implements a simple "CA" for JWTs.
objectstore
Package objectstore manages the existence of the objects an external snapshot is made of: listing them, copying them, and deleting them once nothing owns them any more.
Package objectstore manages the existence of the objects an external snapshot is made of: listing them, copying them, and deleting them once nothing owns them any more.
objectstore/objectstoretest
Package objectstoretest provides an in-memory objectstore.Store for tests that need to observe which external snapshots a flow created and released.
Package objectstoretest provides an in-memory objectstore.Store for tests that need to observe which external snapshots a flow created and released.
ocispec
Package ocispec builds the runtime-neutral OCI spec for actor bundles, which each ateom shapes for its runtime.
Package ocispec builds the runtime-neutral OCI spec for actor bundles, which each ateom shapes for its runtime.
otlprelay
Package otlprelay carries ateom's OTLP telemetry to the collector over a unix socket served by atelet, so a worker pod needs no network path of its own to export spans and metrics.
Package otlprelay carries ateom's OTLP telemetry to the collector over a unix socket served by atelet, so a worker pod needs no network path of its own to export spans and metrics.
pemutil
Package pemutil sanitizes PEM certificate bundles for projection into actors, the way kubelet does for clusterTrustBundle projected volumes.
Package pemutil sanitizes PEM certificate bundles for projection into actors, the way kubelet does for clusterTrustBundle projected volumes.
portforward
Package portforward tunnels to the pods behind a Service.
Package portforward tunnels to the pods behind a Service.
readyz
Package readyz polls a container's HTTP readiness endpoint from inside an ateom.
Package readyz polls a container's HTTP readiness endpoint from inside an ateom.
roottest
Package roottest gates tests that need root privileges (mounts, mknod, trusted.* xattrs, ...).
Package roottest gates tests that need root privileges (mounts, mknod, trusted.* xattrs, ...).
serverboot
Package serverboot collects the startup boilerplate shared by the long-running substrate server binaries (ateapi, atelet, ateom-gvisor, ateom-microvm): slog wiring, OTel tracer + meter providers, a Prometheus + /readyz HTTP surface, and a couple of small helpers for startup fail-fast.
Package serverboot collects the startup boilerplate shared by the long-running substrate server binaries (ateapi, atelet, ateom-gvisor, ateom-microvm): slog wiring, OTel tracer + meter providers, a Prometheus + /readyz HTTP surface, and a couple of small helpers for startup fail-fast.
sizing
Package sizing right-sizes a sandbox to the actor's declared resource limits.
Package sizing right-sizes a sandbox to the actor's declared resource limits.
substratex509
Package substratex509 contains routines for creating and parsing x509 certificates that embed Substrate-specific X.509 extensions communicating the identity of a given workload.
Package substratex509 contains routines for creating and parsing x509 certificates that embed Substrate-specific X.509 extensions communicating the identity of a given workload.
tarutil
Package tarutil archives and restores a directory tree as a tar file, preserving the metadata a workload's data directory depends on: modes, ownership, modification times, symlinks, hardlinks, FIFOs, device nodes, and user.* / trusted.overlay.* extended attributes (as PAX SCHILY.xattr records).
Package tarutil archives and restores a directory tree as a tar file, preserving the metadata a workload's data directory depends on: modes, ownership, modification times, symlinks, hardlinks, FIFOs, device nodes, and user.* / trusted.overlay.* extended attributes (as PAX SCHILY.xattr records).
testenv
Package testenv starts the envtest (kubebuilder) control plane shared by the repo's apiserver-backed test packages.
Package testenv starts the envtest (kubebuilder) control plane shared by the repo's apiserver-backed test packages.
version
Package version exposes build-time identity for substrate binaries.
Package version exposes build-time identity for substrate binaries.
versionlabel
Package versionlabel derives the ate.dev/substrate-version label that keys versioned dataplane objects to a substrate build version.
Package versionlabel derives the ate.dev/substrate-version label that keys versioned dataplane objects to a substrate build version.
versionlabel/cmd command
Command cmd prints "<label value> <object-name suffix>" for a build version, so shell installers and upgrade tooling use the same derivation instead of mirroring it.
Command cmd prints "<label value> <object-name suffix>" for a build version, so shell installers and upgrade tooling use the same derivation instead of mirroring it.
pkg
api/v1alpha1
Package v1alpha1 contains API Schema definitions for the agents v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the agents v1alpha1 API group.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/api/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/api/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
tools
setup-gcp command
validate-image-cache command
validate-image-cache batch-validates that OCI images can be pulled, parsed, and unpacked by internal/imagecache (the atelet-side half of the node-local image cache).
validate-image-cache batch-validates that OCI images can be pulled, parsed, and unpacked by internal/imagecache (the atelet-side half of the node-local image cache).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL