durable-actors 0.9.1

Standalone regional durable-actors control plane, host, and durability runtime
use std::{collections::HashMap, sync::Arc, time::Duration};

use anyhow::{Context, Result, ensure};
use async_trait::async_trait;

use super::{
    remote::{RemoteSandboxProvider, SandboxCluster},
    secrets::SecretResolver,
    *,
};

mod kubernetes;
pub(crate) use super::remote::validate_image;
pub(crate) use kubernetes::GkeConfig;

pub(crate) async fn provider(
    config: GkeConfig,
    secrets: Arc<dyn SecretResolver>,
    connections: connections::HostConnections,
) -> Result<RemoteSandboxProvider> {
    let cluster = kubernetes::Kubernetes::new(kube::Client::try_default().await?, config);
    RemoteSandboxProvider::new("gke", Arc::new(cluster), secrets, connections)
}