Skip to content

Implement the Hedge VMM backend #901

Description

@karthik120710

Description

The Hedge VMM type in hedge.go is currently a stub. All lifecycle methods return hedge not implemented yet:

go

func (h *Hedge) Ok() error { return fmt.Errorf("hedge not implemented yet") }
func (h *Hedge) Signal(_ int, _ unix.Signal) error { return fmt.Errorf("hedge not implemented yet") }
func (h *Hedge) Stop(_ int) error { return fmt.Errorf("hedge not implemented yet") }
func (h *Hedge) BuildExecCmd(...) ([]string, error) { return nil, fmt.Errorf("hedge not implemented yet") }
func (h *Hedge) PreExec(_ types.ExecArgs) error { return fmt.Errorf("hedge not implemented yet") }
Goal
Implement the full Hedge VMM lifecycle by integrating the existing github.com/nubificus/hedge_cli/hedge_api package into urunc, similar to how Qemu and Firecracker are implemented.

Acceptance criteria

Hedge.Ok() validates that the Hedge environment is usable.
Hedge.Stop() and Hedge.Signal() map to the correct Hedge API calls.
Hedge.BuildExecCmd() returns a valid command/argument slice to execute the unikernel under Hedge.
Hedge.PreExec() performs any required pre-execution setup.
End-to-end urunc create/start/kill/delete flows work with Hedge as the VMM.

Relevant files

hedge.go
qemu.go (reference implementation)
firecracker.go (reference implementation)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions