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.
Dwarf-NG is a fork of the original juergh/dwarf project with outstanding PRs and additional enhancements merged. Dwarf-NG is still a little behind the times as it is still Python 2 but I'm using it so I want to keep my current version in a central place.
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.
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
At the moment, the following commands are supported:
token issue catalog list
flavor create flavor delete flavor list flavor show
image create image delete image list image set image show
keypair create keypair delete keypair list keypair show
server create server delete server list server reboot server rebuild server show
Default compute flavors are automatically added, check them with: $ openstack flavor list
Before you can boot an instance, you need to add an image and a keypair: $ openstack keypair create $ openstack image create --file
When booting a server, the server will receive a DHCP IP address from libvirt's dnsmasq. It takes a bit until that happens, check the status with: $ openstack server show
Check the log at /var/lib/dwarf/dwarf.log.