Documentation
¶
Index ¶
- Constants
- Variables
- func IsIPInSubnet(ln LinuxNet) bool
- func New(unikernelType string) (types.Unikernel, error)
- type FreeBSD
- func (f *FreeBSD) CommandString() (string, error)
- func (f *FreeBSD) Init(data types.UnikernelParams) error
- func (f *FreeBSD) MonitorBlockCli() []types.MonitorBlockArgs
- func (f *FreeBSD) MonitorCli() types.MonitorCliArgs
- func (f *FreeBSD) MonitorNetCli(ifName string, mac string) []string
- func (f *FreeBSD) MonitorSharedfsCli(fsType string, path string) []string
- func (f *FreeBSD) SupportsBlock() bool
- func (f *FreeBSD) SupportsFS(fsType string) bool
- type FreeBSDNet
- type Hermit
- func (h *Hermit) CommandString() (string, error)
- func (h *Hermit) Init(data types.UnikernelParams) error
- func (h *Hermit) MonitorBlockCli() []types.MonitorBlockArgs
- func (h *Hermit) MonitorCli() types.MonitorCliArgs
- func (h *Hermit) MonitorNetCli(ifName string, mac string) []string
- func (h *Hermit) MonitorSharedfsCli(_ string, _ string) []string
- func (h *Hermit) SupportsBlock() bool
- func (h *Hermit) SupportsFS(fsType string) bool
- type HermitNet
- type Linux
- func (l *Linux) CommandString() (string, error)
- func (l *Linux) Init(data types.UnikernelParams) error
- func (l *Linux) MonitorBlockCli() []types.MonitorBlockArgs
- func (l *Linux) MonitorCli() types.MonitorCliArgs
- func (l *Linux) MonitorNetCli(_ string, _ string) []string
- func (l *Linux) MonitorSharedfsCli(fsType string, path string) []string
- func (l *Linux) SupportsBlock() bool
- func (l *Linux) SupportsFS(fsType string) bool
- type LinuxNet
- type Mewz
- func (m *Mewz) CommandString() (string, error)
- func (m *Mewz) Init(data types.UnikernelParams) error
- func (m *Mewz) MonitorBlockCli() []types.MonitorBlockArgs
- func (m *Mewz) MonitorCli() types.MonitorCliArgs
- func (m *Mewz) MonitorNetCli(ifName string, mac string) []string
- func (m *Mewz) MonitorSharedfsCli(_ string, _ string) []string
- func (m *Mewz) SupportsBlock() bool
- func (m *Mewz) SupportsFS(_ string) bool
- type MewzNet
- type Mirage
- func (m *Mirage) CommandString() (string, error)
- func (m *Mirage) Init(data types.UnikernelParams) error
- func (m *Mirage) MonitorBlockCli() []types.MonitorBlockArgs
- func (m *Mirage) MonitorCli() types.MonitorCliArgs
- func (m *Mirage) MonitorNetCli(ifName string, mac string) []string
- func (m *Mirage) MonitorSharedfsCli(_ string, _ string) []string
- func (m *Mirage) SupportsBlock() bool
- func (m *Mirage) SupportsFS(_ string) bool
- type MirageBlock
- type MirageNet
- type Rumprun
- func (r *Rumprun) CommandString() (string, error)
- func (r *Rumprun) Init(data types.UnikernelParams) error
- func (r *Rumprun) MonitorBlockCli() []types.MonitorBlockArgs
- func (r *Rumprun) MonitorCli() types.MonitorCliArgs
- func (r *Rumprun) MonitorNetCli(ifName string, mac string) []string
- func (r *Rumprun) MonitorSharedfsCli(_ string, _ string) []string
- func (r *Rumprun) SupportsBlock() bool
- func (r *Rumprun) SupportsFS(fsType string) bool
- type RumprunBlk
- type RumprunCmd
- type RumprunEnv
- type RumprunNet
- type Unikraft
- func (u *Unikraft) CommandString() (string, error)
- func (u *Unikraft) Init(data types.UnikernelParams) error
- func (u *Unikraft) MonitorBlockCli() []types.MonitorBlockArgs
- func (u *Unikraft) MonitorCli() types.MonitorCliArgs
- func (u *Unikraft) MonitorNetCli(_ string, _ string) []string
- func (u *Unikraft) MonitorSharedfsCli(fsType string, path string) []string
- func (u *Unikraft) SupportsBlock() bool
- func (u *Unikraft) SupportsFS(fsType string) bool
- type UnikraftNet
- type UnikraftVFS
Constants ¶
const (
FreeBSDUnikernel string = "freebsd"
)
const HermitUnikernel string = "hermit"
const (
LinuxUnikernel string = "linux"
)
const MewzUnikernel string = "mewz"
const MirageUnikernel string = "mirage"
const RumprunUnikernel string = "rumprun"
const SubnetMask125 = "128.0.0.0"
const UnikraftCompatVersion string = "0.16.1"
const UnikraftUnikernel string = "unikraft"
Variables ¶
var ErrNotSupportedUnikernel = errors.New("unikernel is not supported")
var ErrUndefinedVersion = errors.New("version is undefined, using default version")
var ErrVersionParsing = errors.New("failed to parse provided version, using default version")
Functions ¶
func IsIPInSubnet ¶
Types ¶
type FreeBSD ¶ added in v0.8.1
type FreeBSD struct {
Command []string
InitPath string
WithUrunit bool
Monitor string
Env []string
RootFsType string
BlockFsType string
Net FreeBSDNet
Block []types.BlockDevParams
ProcConfig types.ProcessConfig
}
func (*FreeBSD) CommandString ¶ added in v0.8.1
CommandString builds the FreeBSD boot arguments. On the PVH boot mode every name=value token becomes a kernel environment variable. Therefore, use this mechanism to pass the location of the urunit configuration to the guest. Boot arguments must not contain commas, which act as token delimiters.
func (*FreeBSD) MonitorBlockCli ¶ added in v0.8.1
func (f *FreeBSD) MonitorBlockCli() []types.MonitorBlockArgs
func (*FreeBSD) MonitorCli ¶ added in v0.8.1
func (f *FreeBSD) MonitorCli() types.MonitorCliArgs
func (*FreeBSD) MonitorNetCli ¶ added in v0.8.1
func (*FreeBSD) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli exposes the 9p shared rootfs over the virtio-mmio transport only for Qemu's microvm. It sets multidevs=remap: since the shared container rootfs usually spans several host devices (overlay layers, bind-mounted files and dirs).
func (*FreeBSD) SupportsBlock ¶ added in v0.8.1
func (*FreeBSD) SupportsFS ¶ added in v0.8.1
type FreeBSDNet ¶ added in v0.8.1
type Hermit ¶ added in v0.8.0
func (*Hermit) CommandString ¶ added in v0.8.0
func (*Hermit) MonitorBlockCli ¶ added in v0.8.0
func (h *Hermit) MonitorBlockCli() []types.MonitorBlockArgs
func (*Hermit) MonitorCli ¶ added in v0.8.0
func (h *Hermit) MonitorCli() types.MonitorCliArgs
func (*Hermit) MonitorNetCli ¶ added in v0.8.0
func (*Hermit) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli is nil since we have not checked the support of shared-fs for hermit.
func (*Hermit) SupportsBlock ¶ added in v0.8.0
func (*Hermit) SupportsFS ¶ added in v0.8.0
type Linux ¶
type Linux struct {
App string
Command string
Monitor string
Env []string
Net LinuxNet
Blk []types.BlockDevParams
RootFsType string
InitrdConf bool
ProcConfig types.ProcessConfig
}
func (*Linux) CommandString ¶
func (*Linux) MonitorBlockCli ¶
func (l *Linux) MonitorBlockCli() []types.MonitorBlockArgs
func (*Linux) MonitorCli ¶
func (l *Linux) MonitorCli() types.MonitorCliArgs
func (*Linux) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli exposes the 9p shared rootfs over QEMU's PCI transport.
func (*Linux) SupportsBlock ¶
func (*Linux) SupportsFS ¶
type Mewz ¶
func (*Mewz) CommandString ¶
func (*Mewz) MonitorBlockCli ¶
func (m *Mewz) MonitorBlockCli() []types.MonitorBlockArgs
Mewz does not seem to support virtio block or any other kind of block/fs.
func (*Mewz) MonitorCli ¶
func (m *Mewz) MonitorCli() types.MonitorCliArgs
Mewz does not require any monitor specific cli option
func (*Mewz) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli is nil since Mewz does not support shared-fs
func (*Mewz) SupportsBlock ¶
func (*Mewz) SupportsFS ¶
type Mirage ¶
type Mirage struct {
Command string
Monitor string
Net MirageNet
Block []MirageBlock
// contains filtered or unexported fields
}
func (*Mirage) CommandString ¶
func (*Mirage) MonitorBlockCli ¶
func (m *Mirage) MonitorBlockCli() []types.MonitorBlockArgs
func (*Mirage) MonitorCli ¶
func (m *Mirage) MonitorCli() types.MonitorCliArgs
func (*Mirage) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli is nil since mirage does not support shared-fs
func (*Mirage) SupportsBlock ¶
func (*Mirage) SupportsFS ¶
type MirageBlock ¶
type Rumprun ¶
type Rumprun struct {
Command string
Monitor string
Envs []string
Net RumprunNet
Blk RumprunBlk
}
func (*Rumprun) CommandString ¶
func (*Rumprun) MonitorBlockCli ¶
func (r *Rumprun) MonitorBlockCli() []types.MonitorBlockArgs
func (*Rumprun) MonitorCli ¶
func (r *Rumprun) MonitorCli() types.MonitorCliArgs
Rumprun can execute only on top of Solo5 and currently there are no generic Solo5-specific arguments that Rumprun requires
func (*Rumprun) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli is nil since rumprun does not support shared-fs
func (*Rumprun) SupportsBlock ¶
func (*Rumprun) SupportsFS ¶
type RumprunBlk ¶
type RumprunCmd ¶
type RumprunCmd struct {
CmdLine string `json:"cmdline"`
}
type RumprunEnv ¶
type RumprunEnv struct {
Env string `json:"env"`
}
type RumprunNet ¶
type Unikraft ¶
type Unikraft struct {
AppName string
Monitor string
Command string
Env []string
Net UnikraftNet
VFS UnikraftVFS
Version string
}
func (*Unikraft) CommandString ¶
func (*Unikraft) MonitorBlockCli ¶
func (u *Unikraft) MonitorBlockCli() []types.MonitorBlockArgs
We have not managed to make Unikraft run with block yet.
func (*Unikraft) MonitorCli ¶
func (u *Unikraft) MonitorCli() types.MonitorCliArgs
There are no generic CLI hypervisor options for Unikraft yet.
func (*Unikraft) MonitorNetCli ¶
There is no need for any changes here yet.
func (*Unikraft) MonitorSharedfsCli ¶ added in v0.8.1
MonitorSharedfsCli exposes the 9p shared rootfs over QEMU's PCI transport.
func (*Unikraft) SupportsBlock ¶
func (*Unikraft) SupportsFS ¶
type UnikraftNet ¶
type UnikraftVFS ¶
type UnikraftVFS struct {
RootFS string
}