Merge pull request #201 from enovance/bug/87/emilien

compute/hypervisor: add RBD support
This commit is contained in:
Sebastien Badia
2014-02-11 10:38:47 +01:00
2 changed files with 39 additions and 1 deletions

View File

@@ -107,6 +107,22 @@ Host *
class { 'nova::compute::neutron': }
if $has_ceph {
# TODO(EmilienM) Temporary, while https://review.openstack.org/#/c/72440 got merged
nova_config {
'DEFAULT/libvirt_images_type': value => 'rbd';
'DEFAULT/libvirt_images_rbd_pool': value => 'nova';
'DEFAULT/libvirt_images_rbd_ceph_conf': value => '/etc/ceph/ceph.conf';
'DEFAULT/rbd_user': value => 'nova';
'DEFAULT/rbd_secret_uuid': value => 'secrete';
}
# Extra config for nova-compute
nova_config {
'DEFAULT/libvirt_inject_key': value => false;
'DEFAULT/libvirt_inject_partition': value => '-2';
'DEFAULT/live_migration_flag': value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST';
}
File <<| tag == 'ceph_compute_secret_file' |>>
Exec <<| tag == 'get_or_set_virsh_secret' |>>
Exec <<| tag == 'set_secret_value_virsh' |>>

View File

@@ -41,6 +41,7 @@ describe 'cloud::compute::hypervisor' do
{ :libvirt_type => 'kvm',
:server_proxyclient_address => '7.0.0.1',
:spice_port => '6082',
:has_ceph => true,
:nova_ssh_private_key => 'secrete',
:nova_ssh_public_key => 'public',
:ks_nova_internal_proto => 'http',
@@ -105,7 +106,28 @@ describe 'cloud::compute::hypervisor' do
it 'configure nova compute with neutron' do
should contain_class('nova::compute::neutron')
end
end
it 'configure nova-conpute to support RBD backend' do
should contain_nova_config('DEFAULT/libvirt_images_type').with('value' => 'rbd')
should contain_nova_config('DEFAULT/libvirt_images_rbd_pool').with('value' => 'nova')
should contain_nova_config('DEFAULT/libvirt_images_rbd_ceph_conf').with('value' => '/etc/ceph/ceph.conf')
should contain_nova_config('DEFAULT/rbd_user').with('value' => 'nova')
should contain_nova_config('DEFAULT/rbd_secret_uuid').with('value' => 'secrete')
should contain_nova_config('DEFAULT/libvirt_inject_key').with('value' => false)
should contain_nova_config('DEFAULT/libvirt_inject_partition').with('value' => '-2')
should contain_nova_config('DEFAULT/live_migration_flag').with('value' => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST')
end
context 'without RBD backend' do
before :each do
params.merge!( :has_ceph => false )
end
it 'should not configure nova-compute for RBD backend' do
should_not contain_nova_config('DEFAULT/rbd_user').with('value' => 'nova')
end
end
end
context 'on Debian platforms' do
let :facts do