pub struct K8sBackend { /* private fields */ }Expand description
Native Kubernetes Lambda execution backend.
Implementations§
Source§impl K8sBackend
impl K8sBackend
Sourcepub async fn from_env(
default_ecr_port: u16,
internal_token: String,
) -> Result<Self, K8sBackendError>
pub async fn from_env( default_ecr_port: u16, internal_token: String, ) -> Result<Self, K8sBackendError>
Read configuration from env vars and connect to the cluster.
Fails fast on missing required config — never silently degrades.
default_ecr_port is fakecloud’s bound port; used as the ECR
port when FAKECLOUD_K8S_ECR_URL is unset.
Trait Implementations§
Source§impl LambdaBackend for K8sBackend
impl LambdaBackend for K8sBackend
Source§fn reap_stale<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn reap_stale<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sweep Lambda Pods that belong to a previous fakecloud process.
Without this, a fakecloud restart leaks the previous run’s Pods
and Create collides on function names. Mirrors the docker
reaper semantics.
Source§fn name(&self) -> &str
fn name(&self) -> &str
Short identifier surfaced via logs and introspection (e.g.
"docker", "podman", "kubernetes").Source§fn launch<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
func: &'life1 LambdaFunction,
_code_zip: Option<&'life2 [u8]>,
_layers: &'life3 [Vec<u8>],
deploy_id: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<WarmInstance, RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn launch<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
func: &'life1 LambdaFunction,
_code_zip: Option<&'life2 [u8]>,
_layers: &'life3 [Vec<u8>],
deploy_id: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<WarmInstance, RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Launch a fresh runtime instance for
func using the supplied
code (for zip-package functions) or func.image_uri (for image
package functions). layers are the attached layer ZIPs in
attach order. deploy_id is the facade-computed fingerprint
used to label resources so reaper logic can correlate.Source§fn terminate<'life0, 'life1, 'async_trait>(
&'life0 self,
handle: &'life1 BackendHandle,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn terminate<'life0, 'life1, 'async_trait>(
&'life0 self,
handle: &'life1 BackendHandle,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Tear down one instance. Must be idempotent — the facade may call
this against an already-gone instance during cleanup races.
Source§fn instance_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
handle: &'life1 BackendHandle,
) -> Pin<Box<dyn Future<Output = Option<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn instance_logs<'life0, 'life1, 'async_trait>(
&'life0 self,
handle: &'life1 BackendHandle,
) -> Pin<Box<dyn Future<Output = Option<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch the recent stdout/stderr of a running instance, used to build the
X-Amz-Log-Result tail an Invoke with LogType=Tail returns. Default
None (no logs available); the container backends override it.Source§fn prepull_image<'life0, 'life1, 'async_trait>(
&'life0 self,
_image: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn prepull_image<'life0, 'life1, 'async_trait>(
&'life0 self,
_image: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Optional hook: pre-warm the runtime image so the first
launch()
for a function doesn’t pay the cold-pull cost. Called in the
background after CreateFunction persists; backends that don’t
benefit from pre-pulling (e.g. Kubernetes, which pulls images on
the scheduling node anyway) leave this as a no-op. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for K8sBackend
impl !UnwindSafe for K8sBackend
impl Freeze for K8sBackend
impl Send for K8sBackend
impl Sync for K8sBackend
impl Unpin for K8sBackend
impl UnsafeUnpin for K8sBackend
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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