pub enum GrantRuntime {
Container,
Native,
MicroVm,
}Expand description
Which runtime the grant admits. Mirrors the
NATIVE_EXEC_ANNOTATION marker rather than
re-deriving it: a native forge is fork+exec’d on the host with no container
boundary at all, which is a materially different thing to admit.
Variants§
Container
Container backend (the default shape).
Native
Host fork+exec — no container boundary. See
WorkloadSpec::wants_native_exec.
MicroVm
KVM guest with its own kernel — a stronger boundary than a container,
not a weaker one. See WorkloadSpec::wants_microvm (R605-F8).
It is nonetheless a distinct runtime in the grant rather than being
folded into Self::Container, because a grant states what it admits:
a recipe signed to run in a container and a recipe signed to run in a
microVM differ in what the argv can reach (its own kernel, its own
device set, a host filesystem it sees only through the drives kamaji
attaches), and one describing the other would be false in both
directions.
Trait Implementations§
Source§impl Clone for GrantRuntime
impl Clone for GrantRuntime
Source§fn clone(&self) -> GrantRuntime
fn clone(&self) -> GrantRuntime
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for GrantRuntime
Source§impl Debug for GrantRuntime
impl Debug for GrantRuntime
impl Eq for GrantRuntime
Source§impl PartialEq for GrantRuntime
impl PartialEq for GrantRuntime
impl StructuralPartialEq for GrantRuntime
Auto Trait Implementations§
impl Freeze for GrantRuntime
impl RefUnwindSafe for GrantRuntime
impl Send for GrantRuntime
impl Sync for GrantRuntime
impl Unpin for GrantRuntime
impl UnsafeUnpin for GrantRuntime
impl UnwindSafe for GrantRuntime
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,
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.