- Mirage volumes support is back. thanks to @yomimono.
- Added support for new docker for mac (removed device-mapper dependency for building images)
- Temporary dropped supprot for mirage volumes (pending mirage/ocaml-fat#54)
- Added support for running Go+Rumprun on Google Cloud
- Thanks to contributions from the folks at Project Mikelangelo, Openstack is now supported as a UniK provider. Currently we're configured to support Openstack installations which are running on top of QEMU as their hypervisor. Other hypervisor support is possible, but not a priority at this time. Openstack+QEMU supports all of UniK's currently supported unikernels (except for Mirage, which currently runs exclusively on Xen).
- Changed CLI / REST API for building images.
--compiler
flag was removed in favor of--base
and--language
flags, which combine with the existing--provider
flag to look up the relevant compiler. The cli still exposes theunik compilers
command in order to list all available combinations.
- Added support for Java running on Rumprun. I will buy a 10$ Steam gift card for anyone who can get Minecraft (or Glowstone) running on it. See the updated rump documentation
- Added optional Runtime Args to Rump compilers based on Nodejs, Python, and Java; these are for arguments passed to the interpreter/runtime for a language before the application is run; i.e. inserting the
-Dsome.property=value
runningjava -Dsome.property=value -jar myapp.jar
is now supported
- Configure http://hub.project-unik.io as a public repository for uploadable UniK unikernels. Providers that use local storage (Xen, Virtualbox, QEMU) now support
unik pull
&unik push
as command-line options allowing users to store and share unikernel images in public (or private) repositories. Source for deploying a private hub can be found here: https://github.com/emc-advanced-dev/unik-hub
- Add support for local Xen provider. Supports Rump and OSv unikernels at current time. Persistent (data) volumes are still a TODO on Xen.
- Add support for VMware Photon API as an additional means of running unikernels on ESXi. Support is still a work-in-progress and not well-documented at this time.
- Update version of Rump in all Rump containers. Fixes I/O panic running Gorump on AWS
- UniK now supports running IncludeOS Unikernels (for C++). Currently only the Virtualbox and QEMU providers can run IncludeOS unikernels.
- UniK's Containers are now (automatically) versioned by the first 16 characters of their SHA256 checksum.
- Changed OSv / Java support:
- The OSv/Java compiler in UniK will now build a unikernel from any
.jar
or.war
file. - There are two options for building Java unikernels:
- directly from a compiled fat
.jar
or.war
file - using UniK to invoke the build on your Java sources (e.g. with
mvn package
orgradle build
)
- directly from a compiled fat
- UniK now requires that a
manifest.yaml
file be present in the root directory of Java projects. See the OSv Java Compiler Documentation or the Getting Started with Java (New) for more information.
- The OSv/Java compiler in UniK will now build a unikernel from any
- Added QEMU as a provider.
- Note that the QEMU provider does not provide bridged networking support. This means that QEMU instances will not be reachable from the host network.
- The QEMU provider includes support for debugging unikernels with
gdb
. See the qemu provider docs for more information.
This update features a merge of develop
into master
, which includes a large number of changes, all pushed as a single bundle of features and fixes. Future merges will be more granular.
Major Changes:
- Added support for building Python unikernels on rumprun using Python 3.5
- Boot Volumes are now mountable on rumprun unikernels
- This enables UniK unikernels to serve static files (HTML, .js, etc.), as well as make scripting language-based unikernels (Javascript, Python) less memory-consumptive (as files no longer have to be loaded into memory at boot time).
- Example fileservers available in
docs/examples
- Testing:
- An integration test suite based on
ginkgo
has been added to UniK. - Tests are located in the
pkg/client
package, with helper functions and scripts intest
. - To run tests, install
go
,ginkgo
andgomega
, and runtests currently run against Virtualbox, and Virtualbox is therefore also required to run tests. Note that the tests assumebash test/scripts/test_ginkgo.sh
host_only
networking usingvboxnet1
. To change the VBox network used for tests, modify the values intest/scripts/test_ginkgo.sh
- An integration test suite based on
- Container versioning:
- UniK's dockerized dependencies (all
projectunik
containers) now use version tags. - The purpose of this is to keep older versions of UniK stable while permitting containers hosted on Docker Hub to be updated.
- To upgrade containers, you only need to run
which will pull the latest versioned containers and recompile unik to utilize that version.git checkout master git pull make
- UniK's dockerized dependencies (all
Minor Changes:
- Increased timeout when waiting for instance listener UDP packet
- Properly clean up build artifacts from
unik build
,unik run
,unik create-volume
- Fix formatting of CLI output
- Do not auto-delete instances that do not reply to UDP broadcast before a specified timeout