nova_compute container installs nova-compute package for now. This package automatically installs nova-compute-kvm. There are some problem with this approach:
1. By installing nova-compute-kvm, it introduces a hard dependency of kvm and eliminate the possibilities configuring nova_compute container to use other drivers, for example, xen through libvirt.
2. nova-compute-kvm contains a configuration file (/etc/nova/nova-compute.conf). This file cannot be overriden with current ansible script.
Because nova-compute cannot be installed independently, I think we have three ways to workaround:
1. Add a parameter in globals.yml, e.g. nova_driver. Build images based on the value of this parameter.
2. Do not install nova-compute at building time. Instead, dynamically install corresponding nova-compute-* packages based on the parameter set in globals.yml through extend_start.sh.
3. Install any of those packages, then offer a way to override nova-compute.conf (just like nova.conf).
Which way is better?
xen, libvirt, qemu
All of those can be made configurable