cloud-init is absolute cancer. Its code is horrible. It has no documentation at all.
It took me 5 fucking hours to figure out how to properly configure networking on recent
cloud-init (Ubuntu 16.04 cloud image) with local datasource.
It's not mentioned anywhere you need to provide dsmode: local. (but only if you need network-config,
besides that everything is fine; someone below noted that -m flag does the same thing, good to know) Of course nobody needs documentation for network-config format
either. (cloudinit/net/__init__.py is a protip, enjoy the feces dive)
Oh, and by the way - no, it's not possible to provide network-config to uvt-kvm without patching shit.