pub struct SandboxSpec {Show 19 fields
pub id: Option<String>,
pub labels: HashMap<String, String>,
pub kernel: String,
pub rootfs: String,
pub boot_args: String,
pub vcpus: u32,
pub memory_mib: u64,
pub cmd: Vec<String>,
pub env: HashMap<String, String>,
pub working_dir: String,
pub user: String,
pub mounts: Vec<SandboxMountSpec>,
pub network: SandboxNetworkSpec,
pub ttl_seconds: u32,
pub ssh_public_key: Option<String>,
pub idle_timeout_seconds: u32,
pub on_idle: IdleAction,
pub template_warm: Option<TemplateWarmRef>,
pub ready_probe: Option<ReadyProbeSpec>,
}Expand description
Full sandbox creation parameters.
The initial workload fields (cmd, env, working_dir, user) are
consumed by the boot task: a non-empty cmd is launched automatically
once the sandbox is ready, through the same path as Run.
mounts, image, and ssh_public_key are validated at the service
boundary (see the guest agent’s SandboxService::create).
Fields§
§id: Option<String>Caller-supplied ID; auto-generated (UUID) when None or empty.
labels: HashMap<String, String>Arbitrary key-value metadata (filtering, listing).
kernel: StringKernel image path (empty = daemon default).
rootfs: StringRoot filesystem image path (empty = daemon default).
boot_args: StringKernel command-line arguments (empty = daemon default).
vcpus: u32Number of vCPUs (0 = daemon default).
memory_mib: u64Memory in MiB (0 = daemon default).
cmd: Vec<String>Initial command launched automatically after boot (empty = none).
env: HashMap<String, String>Environment variables for the initial command.
working_dir: StringWorking directory for the initial command.
user: StringUser to run the initial command as.
mounts: Vec<SandboxMountSpec>Bind mounts into the sandbox.
network: SandboxNetworkSpecNetwork configuration.
ttl_seconds: u32Auto-destroy TTL in seconds (0 = no limit).
ssh_public_key: Option<String>SSH public key injected via MMDS (None = no SSH setup).
idle_timeout_seconds: u32Apply Self::on_idle after this many seconds without a running
execution (0 = no idle detection). Re-armed on every Ready edge;
file activity does NOT re-arm (CORE-21).
on_idle: IdleActionWhat to do when the idle timeout expires.
template_warm: Option<TemplateWarmRef>The catalog template’s pre-warmed snapshot, when the create resolved
one (CORE-107). A boot-recipe input like rootfs: the create path
restores it instead of cold-booting when eligible, and it rides the
journaled effective spec so crash replay keeps working. None for
non-catalog templates and warm-less catalog entries.
ready_probe: Option<ReadyProbeSpec>The catalog template’s readiness probe (CORE-107): READY is withheld
until it passes; expiry fails the boot. None = ready on
exec-acceptance. Filled from the resolved template, never the request.
Trait Implementations§
Source§impl Clone for SandboxSpec
impl Clone for SandboxSpec
Source§impl Debug for SandboxSpec
impl Debug for SandboxSpec
Source§impl Default for SandboxSpec
impl Default for SandboxSpec
Source§impl<'de> Deserialize<'de> for SandboxSpecwhere
SandboxSpec: Default,
impl<'de> Deserialize<'de> for SandboxSpecwhere
SandboxSpec: Default,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for SandboxSpec
Source§impl PartialEq for SandboxSpec
impl PartialEq for SandboxSpec
Source§impl Serialize for SandboxSpec
impl Serialize for SandboxSpec
impl StructuralPartialEq for SandboxSpec
Auto Trait Implementations§
impl Freeze for SandboxSpec
impl RefUnwindSafe for SandboxSpec
impl Send for SandboxSpec
impl Sync for SandboxSpec
impl Unpin for SandboxSpec
impl UnsafeUnpin for SandboxSpec
impl UnwindSafe for SandboxSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.