info_tfgrid/collections/documentation/developers/internals/zos/internals/vmd
2024-03-25 20:25:18 +00:00
..
readme.md reorganized test hero 2024-03-25 20:25:18 +00:00

VMD Module

Table of Contents


ZBus

Storage module is available on zbus over the following channel

module object version
vmd vmd 0.0.1

Home Directory

contd keeps some data in the following locations

directory path
root /var/cache/modules/containerd

Introduction

The vmd module, manages all virtual machines processes, it provide the interface to, create, inspect, and delete virtual machines. It also monitor the vms to make sure they are re-spawned if crashed. Internally it uses cloud-hypervisor to start the Vm processes.

It also provide the interface to configure VM logs streamers.

zinit unit

contd must run after containerd is running, and the node boot process is complete. Since it doesn't keep state, no dependency on stroaged is needed

exec: vmd --broker unix:///var/run/redis.sock
after:
  - boot
  - networkd

Interface


// VMModule defines the virtual machine module interface
type VMModule interface {
	Run(vm VM) error
	Inspect(name string) (VMInfo, error)
	Delete(name string) error
	Exists(name string) bool
	Logs(name string) (string, error)
	List() ([]string, error)
	Metrics() (MachineMetrics, error)

	// VM Log streams

	// StreamCreate creates a stream for vm `name`
	StreamCreate(name string, stream Stream) error
	// delete stream by stream id.
	StreamDelete(id string) error
}