Dwarf
OpenStack API on top of libvirt/kvm
Install / Use
/learn @juergh/DwarfREADME
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 <key name> $ glance image-create --name 'My Image Name' --file <image filename>
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 <instance ID or name>
Debugging
Check the log at /var/lib/dwarf/dwarf.log.
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
