Light weight orchestration tools for OSv unikernels, backed by Firecracker.
- Uigniterd: the uigniter server which boots and manages OSv/firecracker instances, controlled via a RESTful API
- Uigniterctl: the command line tool to communicate with uigniterd (not developed yet)
- A Linux machine with KVM enabled
- Firecracker installed (in env PATH)
git clone https://github.com/richardlee159/uigniter.git
cd uigniter/uigniterd
go buildsudo ./uigniterdNow the server is listening on 127.0.0.1:6666.
Note that Uigniter loads OSv kernels and disk images from a root repository folder: /var/lib/uigniter . For now, it's created automatically but managed manually, so you need to copy your OSv kernels into /var/lib/uigniter/kernel and images into /var/lib/uigniter/image .
-
create new instance
POST
http://127.0.0.1:6666/vm/createThe request body is json format. For example:
{ "image_name": "hello", "cmdline": "hello", "read_only":true }will use the image
/var/lib/uigniter/image/hello.rawand the kernel/var/lib/uigniter/kernel/kernel.elf.Get status code 201 if success, and the response body will tell you the id and ipv4 address of the running instance (in json format, of course) .
-
stop an instance
POST
http://127.0.0.1:6666/vm/{id}/stopGet status code 201 if success.