set config_drive_format to vfat

Fix known libvirt issue with live_migration of instances
 if ISO9660 formatted config drive is used.

Upstream Change-Id: Ie65e4b36e74acedfd840ee306f8e39833ffbad39

Change-Id: Ieb4c3a71baff11874031631ba38fd9e37197ed87
Related-Bug: #1246201
Closes-Bug: #1491841
This commit is contained in:
vsaienko 2015-09-03 17:53:32 +03:00
parent f316502f5c
commit e8e07e63a0
5 changed files with 26 additions and 1 deletions

View File

@ -111,6 +111,10 @@
# "[ { 'vendor_id':'1234','product_id':'5678' },
# { 'vendor_id':'4321','product_id':'8765','physical_network':'default' } ] "
#
# [*config_drive_format*]
# (optional) Config drive format. One of iso9660 (default) or vfat
# Defaults to undef
#
class nova::compute (
$enabled = false,
$manage_service = true,
@ -137,6 +141,7 @@ class nova::compute (
$internal_service_availability_zone = 'internal',
$heal_instance_info_cache_interval = '60',
$pci_passthrough = undef,
$config_drive_format = undef,
) {
include ::nova::params
@ -231,4 +236,10 @@ class nova::compute (
'DEFAULT/pci_passthrough_whitelist': value => check_array_of_hash($pci_passthrough);
}
}
if ($config_drive_format) {
nova_config {
'DEFAULT/config_drive_format': value => $config_drive_format;
}
}
}

View File

@ -58,7 +58,8 @@ describe 'nova::compute' do
:default_schedule_zone => 'az2',
:internal_service_availability_zone => 'az_int1',
:heal_instance_info_cache_interval => '120',
:pci_passthrough => "[{\"vendor_id\":\"8086\",\"product_id\":\"0126\"},{\"vendor_id\":\"9096\",\"product_id\":\"1520\",\"physical_network\":\"physnet1\"}]"
:pci_passthrough => "[{\"vendor_id\":\"8086\",\"product_id\":\"0126\"},{\"vendor_id\":\"9096\",\"product_id\":\"1520\",\"physical_network\":\"physnet1\"}]",
:config_drive_format => 'vfat'
}
end
@ -108,6 +109,9 @@ describe 'nova::compute' do
'value' => "[{\"vendor_id\":\"8086\",\"product_id\":\"0126\"},{\"vendor_id\":\"9096\",\"product_id\":\"1520\",\"physical_network\":\"physnet1\"}]"
)
end
it 'configures nova config_drive_format to vfat' do
is_expected.to contain_nova_config('DEFAULT/config_drive_format').with_value('vfat')
end
end
context 'with neutron_enabled set to false' do

View File

@ -137,6 +137,7 @@ class openstack::compute (
$neutron_settings = {},
$install_bridge_utils = false,
$compute_driver = 'libvirt.LibvirtDriver',
$config_drive_format = undef,
) {
#
@ -303,6 +304,7 @@ class openstack::compute (
instance_usage_audit_period => $instance_usage_audit_period,
default_availability_zone => $nova_hash['default_availability_zone'],
default_schedule_zone => $nova_hash['default_schedule_zone'],
config_drive_format => $config_drive_format,
}
nova_config {

View File

@ -51,6 +51,7 @@ $nova_rate_limits = hiera('nova_rate_limits')
$nova_report_interval = hiera('nova_report_interval')
$nova_service_down_time = hiera('nova_service_down_time')
$glance_api_servers = hiera('glance_api_servers', "${management_vip}:9292")
$config_drive_format = 'vfat'
$public_ssl_hash = hiera('public_ssl')
$vncproxy_host = $public_ssl_hash['services'] ? {
@ -282,6 +283,7 @@ class { 'openstack::compute':
state_path => $nova_hash[state_path],
neutron_settings => $neutron_config,
storage_hash => $storage_hash,
config_drive_format => $config_drive_format,
}
# Required for fping API extension, see LP#1486404

View File

@ -68,6 +68,12 @@ describe manifest do
should contain_package('fping').with('ensure' => 'present')
end
it 'nova config should have config_drive_format set to vfat' do
should contain_nova_config('DEFAULT/config_drive_format').with(
'value' => 'vfat'
)
end
# SSL support
public_ssl = Noop.hiera_structure('public_ssl/services')