pub struct KubernetesSandbox { /* private fields */ }Expand description
Kubernetes Pod-based sandbox
Implementations§
Source§impl KubernetesSandbox
impl KubernetesSandbox
Sourcepub fn new(name: &str, config: &OrchestratorConfig) -> Self
pub fn new(name: &str, config: &OrchestratorConfig) -> Self
Create a new Kubernetes sandbox from orchestrator configuration
Trait Implementations§
Source§impl Sandbox for KubernetesSandbox
impl Sandbox for KubernetesSandbox
Source§fn start<'life0, 'life1, 'async_trait>(
&'life0 mut self,
config: &'life1 SandboxConfig,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start<'life0, 'life1, 'async_trait>(
&'life0 mut self,
config: &'life1 SandboxConfig,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Start the sandbox with the given configuration
Source§fn exec<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
cmd: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<ExecResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn exec<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
cmd: &'life1 [&'life2 str],
) -> Pin<Box<dyn Future<Output = Result<ExecResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Execute a command in the sandbox
Source§fn exec_with_env<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
cmd: &'life1 [&'life2 str],
env: &'life3 [String],
) -> Pin<Box<dyn Future<Output = Result<ExecResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn exec_with_env<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
cmd: &'life1 [&'life2 str],
env: &'life3 [String],
) -> Pin<Box<dyn Future<Output = Result<ExecResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Execute a command with environment variables
Source§fn stop<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stop<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stop the sandbox and clean up resources
Source§fn backend_type(&self) -> BackendType
fn backend_type(&self) -> BackendType
Get the backend type
Source§fn is_running(&self) -> bool
fn is_running(&self) -> bool
Check if the sandbox is running
Source§fn write_file_unchecked<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
content: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_file_unchecked<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
content: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Internal write implementation (no validation, called by write_file)
Source§fn read_file_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_file_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Internal read implementation (no validation, called by read_file)
Source§fn remove_file_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove_file_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Internal remove implementation
Source§fn mkdir_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn mkdir_unchecked<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Internal mkdir implementation
Source§fn attach<'life0, 'life1, 'async_trait>(
&'life0 mut self,
shell: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = Result<i32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn attach<'life0, 'life1, 'async_trait>(
&'life0 mut self,
shell: Option<&'life1 str>,
) -> Pin<Box<dyn Future<Output = Result<i32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Attach an interactive shell to the sandbox Read more
Source§fn inject_files<'life0, 'life1, 'async_trait>(
&'life0 mut self,
files: &'life1 [FileInjection],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn inject_files<'life0, 'life1, 'async_trait>(
&'life0 mut self,
files: &'life1 [FileInjection],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Inject files from config into the sandbox Read more
Source§fn exec_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
cmd: &'life1 [&'life2 str],
opts: &'life3 ExecOptions,
) -> Pin<Box<dyn Future<Output = Result<ExecResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn exec_with_options<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
cmd: &'life1 [&'life2 str],
opts: &'life3 ExecOptions,
) -> Pin<Box<dyn Future<Output = Result<ExecResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Execute a command with full options (env, workdir, user)
Source§fn resize<'life0, 'async_trait>(
&'life0 mut self,
_vcpus: u32,
_memory_mb: u64,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn resize<'life0, 'async_trait>(
&'life0 mut self,
_vcpus: u32,
_memory_mb: u64,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Attempt to resize sandbox resources in-place. Read more
Source§fn write_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
content: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn write_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
content: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Write a file to the sandbox filesystem Read more
Source§fn read_file<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_file<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Read a file from the sandbox filesystem Read more
Source§fn remove_file<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn remove_file<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove a file from the sandbox filesystem
Source§fn mkdir<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn mkdir<'life0, 'life1, 'async_trait>(
&'life0 mut self,
path: &'life1 str,
recursive: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a directory in the sandbox filesystem
Source§fn attach_with_env<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
shell: Option<&'life1 str>,
env: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<i32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn attach_with_env<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
shell: Option<&'life1 str>,
env: &'life2 [String],
) -> Pin<Box<dyn Future<Output = Result<i32>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Attach to the sandbox with an interactive shell and environment variables Read more
Auto Trait Implementations§
impl Freeze for KubernetesSandbox
impl !RefUnwindSafe for KubernetesSandbox
impl Send for KubernetesSandbox
impl Sync for KubernetesSandbox
impl Unpin for KubernetesSandbox
impl UnsafeUnpin for KubernetesSandbox
impl !UnwindSafe for KubernetesSandbox
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
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more