diff --git a/src/runtime-rs/docs/images/crate-overview.drawio b/src/runtime-rs/docs/images/crate-overview.drawio index 674806df63..57dd4ab20d 100644 --- a/src/runtime-rs/docs/images/crate-overview.drawio +++ b/src/runtime-rs/docs/images/crate-overview.drawio @@ -1 +1,415 @@ -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 \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/runtime-rs/docs/images/crate-overview.svg b/src/runtime-rs/docs/images/crate-overview.svg index 24cadd7cf6..da0f258792 100644 --- a/src/runtime-rs/docs/images/crate-overview.svg +++ b/src/runtime-rs/docs/images/crate-overview.svg @@ -1,4 +1,5 @@ - - - -create::hypervisor
create::agent
create::agent
create::hypervisor
create::hypervisor
create::service
create::service
service_manager.run()
service_manager.run()
RPC calls

create_task
start
delete
kill
exec
... ...
RPC calls...
crate::shim
crate::shim
struct RuntimeHandlerManager
struct RuntimeHandlerManager
crate::runtimes
crate::runtimes
struct RuntimeHandlerManagerInner
struct RuntimeHandlerManagerInner
trait RuntimeHandler
trait RuntimeHandler
new_instance()
new_instance()
    fn init() -> Result<()>
    fn name() -> String
    fn new_handler() -> Arc<dyn RuntimeHandler>
    async fn new_instance() -> Result<RuntimeInstance>
    fn cleanup() -> Result<()>

fn init() -> Result<()>...
runtime_instance
runtime_instance
    id: String,
    runtime_instance: RuntimeInstance,
id: String,...
struct RuntimeInstance
struct RuntimeInstance
sandbox
sandbox
container_manager
container_manager
    pub sandbox: Arc<dyn Sandbox>,
    pub container_manager: Arc<dyn ContainerManager>,

pub sandbox: Arc<dyn Sandbox>,...
trait Sandbox
trait Sandbox

    async fn start() -> Result<()>;
    async fn stop() -> Result<()>;
    async fn cleanup() -> Result<()>;
    async fn shutdown() -> Result<()>;

async fn start() -> Result<()>;...
trait ContainerManager
trait ContainerManager

    async fn create_container() -> Result<PID>;
    async fn pause_container() -> Result<()>;
    async fn resume_container() -> Result<()>;
    async fn stats_container() -> Result<StatsInfo>;
    async fn update_container() -> Result<()>;
    async fn connect_container() -> Result<PID>;

    ... ...
async fn create_container() -> Result<PID>;...
impl
impl
LinuxContainer
LinuxContainer
impl
impl
WasmContainer
WasmContainer
new_instance()
new_instance()
impl
impl
VirtContainer
VirtContainer
struct RuntimeInstance
struct RuntimeInstance
sandbox
sandbox
container_manager
container_manager

    sandbox: VirtSandbox,
    container_manager: VirtContainerManager,
sandbox: VirtSandbox,...
impl
impl
struct VirtSandbox
struct VirtSandbox
resource_manager
resource_manager
hypervisor
hypervisor
agent
agent

    sid: String,
    resource_manager: Arc<ResourceManager>,
    agent: Arc<dyn Agent>,
    hypervisor: Arc<dyn Hypervisor>,

sid: String,...
agent
agent
impl
impl
struct VirtContainerManager
struct VirtContainerManager
resource_manager
resource_manager
containers
containers
    sid: String,
    pid: u32,
    containers: HashMap<String, Container>,
    resource_manager: Arc<ResourceManager>,
    agent: Arc<dyn Agent>,
sid: String,...
struct ResourceManagerInner
struct ResourceManagerInner
hypervisor
hypervisor
agent
agent
    sid: String,
    toml_config: Arc<TomlConfig>,
    agent: Arc<dyn Agent>,
    hypervisor: Arc<dyn Hypervisor>,
    network: Option<Arc<dyn Network>>,
    share_fs: Option<Arc<dyn ShareFs>>,

    pub rootfs_resource: RootFsResource,
    pub volume_resource: VolumeResource,
    pub cgroups_resource: CgroupsResource,
sid: String,...
struct ResourceManager
struct ResourceManager
trait Hypervisor
trait Hypervisor
    async fn prepare_vm() -> Result<()>;
    async fn start_vm() -> Result<()>;
    async fn stop_vm() -> Result<()>;
    async fn pause_vm() -> Result<()>;
    async fn save_vm() -> Result<()>;
    async fn resume_vm() -> Result<()>;

    ... ...
async fn prepare_vm() -> Result<()>;...
impl
impl
Dragonball
Dragonball
impl
impl
QEMU(WIP)
QEMU(WIP)
trait Agent
trait Agent
    async fn create_sandbox();
    async fn destroy_sandbox();
    async fn create_container();
    async fn pause_container();

    ... ...
async fn create_sandbox();...
impl
impl
KataAgent
KataAgent
struct ServiceManager
struct ServiceManager
handler
handler
    handler: Arc<RuntimeHandlerManager>,
    task_server: Option<Server>,
handler: Arc<RuntimeHandlerManager>,...
handler_message()
handler_message()
struct TaskService
struct TaskService
    handler: Arc<RuntimeHandlerManager>,
    handler: Arc<RuntimeHandlerManager>,
struct RuntimeHandlerManager
struct RuntimeHandlerManager
struct StructXyz
struct StructXyz
trait TraitAbc
trait TraitAbc
Legend
Legend
Function call
Function call
Reference
Reference
Trait Impl
Trait Impl
struct Container
struct Container
inner
inner
    pid: u32,
    config: ContainerConfig,
    inner: Arc<RwLock<ContainerInner>>,
    agent: Arc<dyn Agent>,
    resource_manager: ResourceManager,
pid: u32,...
struct ContainerInner
struct ContainerInner
rootfs
rootfs
volume
volume
    agent: Arc<dyn Agent>,
    init_process: Process,
    exec_processes: HashMap<String, Exec>,
    rootfs: Vec<Arc<dyn Rootfs>>,
    volumes: Vec<Arc<dyn Volume>>,
agent: Arc<dyn Agent>,...
trait Rootfs
trait Rootfs
trait Volume
trait Volume
create::<name>
create::<name>
Crate
Crate
Text is not SVG - cannot display
\ No newline at end of file +crate::hypervisor
crate::agent
crate::agent
crate::hypervisor
crate::hypervisor
crate::service
crate::service
service_manager.run()
service_manager.run()
RPC calls

create_task
start
delete
kill
exec
... ...
RPC calls...
crate::shim
crate::shim
struct RuntimeHandlerManager
struct RuntimeHandlerManager
crate::runtimes
crate::runtimes
struct RuntimeHandlerManagerInner
struct RuntimeHandlerManagerInner +
trait RuntimeHandler
trait RuntimeHandler
new_instance()
new_instance()
    fn init() -> Result<()>
    fn name() -> String
    fn new_handler() -> Arc<dyn RuntimeHandler>
    async fn new_instance() -> Result<RuntimeInstance>
    fn cleanup() -> Result<()>

fn init() -> Result<()>...
runtime_instance
runtime_instance
    id: String,
    runtime_instance: RuntimeInstance,
id: String,...
struct RuntimeInstance
struct RuntimeInstance
sandbox
sandbox
container_manager
container_manager
    pub sandbox: Arc<dyn Sandbox>,
    pub container_manager: Arc<dyn ContainerManager>,

pub sandbox: Arc<dyn Sandbox>,...
trait Sandbox
trait Sandbox

    async fn start() -> Result<()>;
    async fn stop() -> Result<()>;
    async fn cleanup() -> Result<()>;
    async fn shutdown() -> Result<()>;

async fn start() -> Result<()>;...
trait ContainerManager
trait ContainerManager

    async fn create_container() -> Result<PID>;
    async fn pause_container() -> Result<()>;
    async fn resume_container() -> Result<()>;
    async fn stats_container() -> Result<StatsInfo>;
    async fn update_container() -> Result<()>;
    async fn connect_container() -> Result<PID>;

    ... ...
async fn create_container() -> Result<PID>;...
impl
impl
LinuxContainer
LinuxContainer
impl
impl
WasmContainer
WasmContainer
new_instance()
new_instance()
impl
impl
VirtContainer
VirtContainer
struct RuntimeInstance
struct RuntimeInstance
sandbox
sandbox
container_manager
container_manager

    sandbox: VirtSandbox,
    container_manager: VirtContainerManager,
sandbox: VirtSandbox,...
impl
impl
struct VirtSandbox
struct VirtSandbox
resource_manager
resource_manager
hypervisor
hypervisor
agent
agent

    sid: String,
    resource_manager: Arc<ResourceManager>,
    agent: Arc<dyn Agent>,
    hypervisor: Arc<dyn Hypervisor>,

sid: String,...
agent
agent
impl
impl
struct VirtContainerManager
struct VirtContainerManager
resource_manager
resource_manager
containers
containers
    sid: String,
    pid: u32,
    containers: HashMap<String, Container>,
    resource_manager: Arc<ResourceManager>,
    agent: Arc<dyn Agent>,
sid: String,...
struct ResourceManagerInner
struct ResourceManagerInner
hypervisor
hypervisor
agent
agent
    sid: String,
    toml_config: Arc<TomlConfig>,
    agent: Arc<dyn Agent>,
    hypervisor: Arc<dyn Hypervisor>,
    network: Option<Arc<dyn Network>>,
    share_fs: Option<Arc<dyn ShareFs>>,

    pub rootfs_resource: RootFsResource,
    pub volume_resource: VolumeResource,
    pub cgroups_resource: CgroupsResource,
sid: String,...
struct ResourceManager
struct ResourceManager
trait Hypervisor
trait Hypervisor
    async fn prepare_vm() -> Result<()>;
    async fn start_vm() -> Result<()>;
    async fn stop_vm() -> Result<()>;
    async fn pause_vm() -> Result<()>;
    async fn save_vm() -> Result<()>;
    async fn resume_vm() -> Result<()>;

    ... ...
async fn prepare_vm() -> Result<()>;...
impl
impl
Dragonball
Dragonball
impl
impl
QEMU(WIP)
QEMU(WIP)
trait Agent
trait Agent
    async fn create_sandbox();
    async fn destroy_sandbox();
    async fn create_container();
    async fn pause_container();

    ... ...
async fn create_sandbox();...
impl
impl
KataAgent
KataAgent
struct ServiceManager
struct ServiceManager +
handler
handler
    handler: Arc<RuntimeHandlerManager>,
    task_server: Option<Server>,
handler: Arc<RuntimeHandlerManager>,...
handler_message()
handler_message()
struct TaskService
struct TaskService +
    handler: Arc<RuntimeHandlerManager>,
    handler: Arc<RuntimeHandlerManager>,
struct RuntimeHandlerManager
struct RuntimeHandlerManager +
struct StructXyz
struct StructXyz
trait TraitAbc
trait TraitAbc
Legend
Legend
Function call
Function call
Reference
Reference
Trait Impl
Trait Impl
struct Container
struct Container
inner
inner
    pid: u32,
    config: ContainerConfig,
    inner: Arc<RwLock<ContainerInner>>,
    agent: Arc<dyn Agent>,
    resource_manager: ResourceManager,
pid: u32,...
struct ContainerInner
struct ContainerInner
rootfs
rootfs
volume
volume
    agent: Arc<dyn Agent>,
    init_process: Process,
    exec_processes: HashMap<String, Exec>,
    rootfs: Vec<Arc<dyn Rootfs>>,
    volumes: Vec<Arc<dyn Volume>>,
agent: Arc<dyn Agent>,...
trait Rootfs
trait Rootfs
trait Volume
trait Volume
crate::<name>
crate::<name>
Crate
Crate
Text is not SVG - cannot display
\ No newline at end of file