NAME

IO::K8s::AgentSandbox - AgentSandbox CRD resource map provider for IO::K8s

VERSION

version 1.108

SYNOPSIS

my $k8s = IO::K8s->new(with => ['IO::K8s::AgentSandbox']);

my $sandbox = $k8s->new_object('Sandbox',
    metadata => { name => 'my-sandbox', namespace => 'default' },
    spec => { ... },
);

print $sandbox->to_yaml;

DESCRIPTION

Resource map provider for AgentSandbox Custom Resource Definitions, matching upstream AgentSandbox v1.0.0. Registers 4 short names covering 4 CRD kinds:

  • agents.x-k8s.io: Sandbox (main API group)

  • extensions.agents.x-k8s.io: SandboxClaim, SandboxTemplate, SandboxWarmPool

The v1beta1 track (D5/D6) is modeled to full depth: spec and, where upstream declares one, status are typed field-by-field, nested classes carry their upstream Go type names, and embedded core types (Core::V1::PersistentVolumeClaimSpec, Meta::V1::Condition, Networking::V1::NetworkPolicyIngressRule/ EgressRule, ...) are referenced rather than re-modeled. 28 classes across the 4 Kinds: 24 further IO::K8s::AgentSandbox::V1beta1::* classes below the 4 Kind roots, one per upstream Go structure. A Go type shared across Kinds (PodTemplate, PodMetadata, PersistentVolumeClaimTemplate, EmbeddedObjectMetadata -- Sandbox and SandboxTemplate both embed agent-sandbox's SandboxBlueprint inline) is one shared class, not a copy per Kind.

Each kind ships two API versions on disk — v1alpha1 (served through the v0.5.x line and removed upstream at v1.0.0: agent-sandbox's v1.0.0 tag ships no api/v1alpha1 directory at all, so there is no manifest left to render it from) and v1beta1 (the current, and now only, upstream-served version). The v1alpha1 classes are kept here as back-compat for clusters still on agent-sandbox v0.5.x, unmodeled below the top level (D7) and excused from maint/crd-drift-check.pl --check via ignore_unrendered. The short-name resource_map below resolves to the v1beta1 class for each kind; the v1alpha1 classes remain available for direct use by their full class name (IO::K8s::AgentSandbox::V1alpha1::*) or via domain-qualified lookup (e.g. agents.x-k8s.io/v1alpha1/Sandbox).

AgentSandbox manages isolated, stateful, singleton workloads for AI agent runtimes.

Not loaded by default — opt in via the with constructor parameter of IO::K8s or by calling $k8s->add('IO::K8s::AgentSandbox') at runtime.

Included CRDs (agents.x-k8s.io/v1beta1, agents.x-k8s.io/v1alpha1)

  • Sandbox -- an individual, stateful pod with a stable hostname and network identity, and persistent storage that survives restarts: the unit an agent runtime actually executes in.

Included CRDs (extensions.agents.x-k8s.io/v1beta1, extensions.agents.x-k8s.io/v1alpha1)

Three Kinds that build a self-service workflow on top of Sandbox: a SandboxTemplate defines what to create, a SandboxWarmPool keeps instances of it ready in advance, and a SandboxClaim is how a caller actually gets one.

  • SandboxTemplate -- a reusable template for creating Sandboxes, so many similar Sandboxes don't each need their own hand-written spec.

  • SandboxWarmPool -- pre-provisions and maintains a pool of Sandboxes built from a SandboxTemplate, cutting the time it takes to get a new Sandbox up and running.

  • SandboxClaim -- requests a Sandbox from a SandboxWarmPool, abstracting away the underlying Sandbox configuration from the caller.

SEE ALSO

IO::K8s

AgentSandbox repository

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/pplu/io-k8s-p5/issues.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHORS

  • Torsten Raudssus <getty@cpan.org>

  • Jose Luis Martinez Torres <jlmartin@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2018-2026 by Jose Luis Martinez Torres <jlmartin@cpan.org>.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004