- 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