In Intel's official documents, SPDK is used as the VM's data disk to accelerate IO performance for various applications such as database and key-value store.
Unlike the data disk that you can log in the VM and make partitions inside, there is no way to do the same thing for a bootable rootfs disk. Because SPDK has its own filesystem, and the host wouldn't recognize the disk even if you export it via NBD.
QEMU works on above SPDK by simple block layer operations, so the only way to deploy SPDK disk is to do in inside, i.e., by using libguestfs.
P.S. I managed to boot up a guest VM with SPDK rootfs disk, and luckily this disk is able to be exported to a file. I'm willing to share this file, so maybe someone in the community could easily setup a environment and test libguestfs integration.
Look forward to your help. Thanks
Bob