**DISCLAIMER: OpenStack provider is under active development, please don't use it in production yet. **
UniK supports running OSv, IncludeOS, and Rumprun unikernels on OpenStack (using the QEMU hypervisor).
The OpenStack stub of your daemon-config.yaml
file should look something like the following:
providers:
#...
openstack:
- name: openstack-1
username: myusername
password: mypassword
auth_url: http://12.23.34.45:5000/v2.0
tenant_id: 3dfe7bf545ff4885a3912a92a4a5f8e0
tenant_name: admin
project_name: admin
region_name: RegionOne
network_uuid: 73954b5b-7292-487d-9e22-1a63c8b5799e
You can override any of the settings above using environment variables, e.g.
$ export OS_USERNAME=realusername
$ export OS_PASSWORD=realpassword
UniK suggests that your OpenStack credentials are set via default OpenStack environment variables, however, this is not asserted.
UniK picks the most suitable flavor to run instance with, where most suitable means:
- as small as possible to fit logical image to it
- as little RAM as possible but not less than specified
UniK stores OpenStack data in the following paths:
- JSON representation of the state:
$HOME/.unik/openstack/state.json
You must specify a network (by uuid) to attach unikernels to.
If UniK gets into a bad state (i.e. you manually remove a state file or OpenStack VM), you should manually edit the $HOME/.unik/openstack/state.json
file to remove the instance that no longer exists. UniK will eventually become self-correcting to deal with disruptions in the state.