juergh / dwarf

OpenStack API on top of libvirt/kvm
Apache License 2.0
35 stars 9 forks source link

Dwarf

In a nutshell, dwarf is OpenStack API on top of local libvirt/KVM. It supports a subset of the Keystone, Glance and Nova APIs to manage images and instances on the local machine.

Restrictions

Lots :-) It only supports a subset of the OpenStack API and it currently doesn't do user authentication. Meaning everybody who can log into the machine can manipulate all images and instances managed through dwarf.

Everything is serialized and blocking. All calls to dwarf will be served in the order they're received and only return after they've finished. There's no scheduling and background processing.

Configuration

After installation, check that the settings in '/etc/dwarf.conf' match your environment. You need to restart dwarf if you make any modifications: $ sudo initctl restart dwarf

Set the OpenStack environment variables (modify the port number accordingly, if you changed it in the config file): $ export OS_AUTH_URL=http://localhost:35357/v2.0/ $ export OS_COMPUTE_API_VERSION=1.1 $ export OS_REGION_NAME=dwarf-region $ export OS_TENANT_NAME=dwarf-tenant $ export OS_USERNAME=dwarf-user $ export OS_PASSWORD=dwarf-password

Supported OpenStack CLI commands

At the moment, the following commands are supported:

keystone token-get keystone catalog

glance image-create glance image-delete glance image-list glance image-show glance image-update

nova flavor-create nova flavor-delete nova flavor-list nova flavor-show

nova image-list nova image-show

nova keypair-add nova keypair-delete nova keypair-list nova keypair-show

nova boot nova console-log nova delete nova list nova reboot nova show

Notes

Default compute flavors are automatically added, check them with: $ nova flavor-list

Before you can boot an instance, you need to add an image and a keypair: $ nova keypair-add $ glance image-create --name 'My Image Name' --file

When booting an instance, the instance will receive a DHCP IP address from libvirt's dnsmasq. It takes a bit until that happens, check the status with: $ nova show

Debugging

Check the log at /var/lib/dwarf/dwarf.log.