Set dhcp_domain for all nova services

This is required for nova-compute so move to init.pp from metadata.pp and set
DEFAULT/dhcp_domain (which nova should undeprecate) vs api/dhcp_domain.

Change-Id: If6a26527a737a7184ebddd5b4bc346d64827e9e3
Related-bug: #1903908
Related-bug: #1832537
(cherry picked from commit 71276558e7)
This commit is contained in:
Oliver Walsh 2020-11-11 20:22:42 +00:00 committed by David Vallee Delisle
parent dd9d26ffe9
commit 5e4cee4303
5 changed files with 29 additions and 7 deletions

View File

@ -395,6 +395,10 @@
# (optional) Allow attach between instance and volume in different availability zones. # (optional) Allow attach between instance and volume in different availability zones.
# Defaults to $::os_service_default # Defaults to $::os_service_default
# #
# [*dhcp_domain*]
# (optional) domain to use for building the hostnames
# Defaults to $::os_service_default
#
# DEPRECATED PARAMETERS # DEPRECATED PARAMETERS
# #
# [*auth_strategy*] # [*auth_strategy*]
@ -512,6 +516,7 @@ class nova(
$purge_config = false, $purge_config = false,
$my_ip = $::os_service_default, $my_ip = $::os_service_default,
$cross_az_attach = $::os_service_default, $cross_az_attach = $::os_service_default,
$dhcp_domain = $::os_service_default,
# DEPRECATED PARAMETERS # DEPRECATED PARAMETERS
$auth_strategy = undef, $auth_strategy = undef,
$glance_api_servers = undef, $glance_api_servers = undef,
@ -642,6 +647,8 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.")
nova_config { 'api/auth_strategy': value => $auth_strategy } nova_config { 'api/auth_strategy': value => $auth_strategy }
} }
$dhcp_domain_real = pick($::nova::metadata::dhcp_domain, $dhcp_domain)
nova_config { nova_config {
'DEFAULT/ssl_only': value => $ssl_only; 'DEFAULT/ssl_only': value => $ssl_only;
'DEFAULT/cert': value => $cert; 'DEFAULT/cert': value => $cert;
@ -653,6 +660,7 @@ but should be one of: ssh-rsa, ssh-dsa, ssh-ecdsa.")
'DEFAULT/cpu_allocation_ratio': value => $cpu_allocation_ratio; 'DEFAULT/cpu_allocation_ratio': value => $cpu_allocation_ratio;
'DEFAULT/ram_allocation_ratio': value => $ram_allocation_ratio; 'DEFAULT/ram_allocation_ratio': value => $ram_allocation_ratio;
'DEFAULT/disk_allocation_ratio': value => $disk_allocation_ratio; 'DEFAULT/disk_allocation_ratio': value => $disk_allocation_ratio;
'DEFAULT/dhcp_domain': value => $dhcp_domain_real;
} }
oslo::messaging::rabbit {'nova_config': oslo::messaging::rabbit {'nova_config':

View File

@ -24,11 +24,11 @@
# service. # service.
# Defaults to $::os_service_default # Defaults to $::os_service_default
# #
# DEPRECATED
#
# [*dhcp_domain*] # [*dhcp_domain*]
# (optional) domain to use for building the hostnames # (optional) domain to use for building the hostnames
# Defaults to $::os_service_default # Defaults to undef.
#
# DEPRECATED
# #
# [*enabled_apis*] # [*enabled_apis*]
# (optional) A list of apis to enable # (optional) A list of apis to enable
@ -47,8 +47,8 @@ class nova::metadata(
$neutron_metadata_proxy_shared_secret = undef, $neutron_metadata_proxy_shared_secret = undef,
$metadata_cache_expiration = $::os_service_default, $metadata_cache_expiration = $::os_service_default,
$local_metadata_per_cell = $::os_service_default, $local_metadata_per_cell = $::os_service_default,
$dhcp_domain = $::os_service_default,
# DEPRECATED PARAMETERS # DEPRECATED PARAMETERS
$dhcp_domain = undef,
$enabled_apis = undef, $enabled_apis = undef,
$enable_proxy_headers_parsing = undef, $enable_proxy_headers_parsing = undef,
$max_request_body_size = undef, $max_request_body_size = undef,
@ -70,9 +70,11 @@ and will be removed in the future. Please use the one ::nova::api.')
warning('max_request_body_size in ::nova::metadata is deprecated, has no effect \ warning('max_request_body_size in ::nova::metadata is deprecated, has no effect \
and will be removed in the future. Please use the one ::nova::api.') and will be removed in the future. Please use the one ::nova::api.')
} }
if $dhcp_domain {
warning('dhcp_domain in nova::metadata is deprecated, use nova::dhcp_domain instead.')
}
nova_config { nova_config {
'api/dhcp_domain': value => $dhcp_domain;
'api/metadata_cache_expiration': value => $metadata_cache_expiration; 'api/metadata_cache_expiration': value => $metadata_cache_expiration;
'api/local_metadata_per_cell': value => $local_metadata_per_cell; 'api/local_metadata_per_cell': value => $local_metadata_per_cell;
} }

View File

@ -0,0 +1,8 @@
---
fixes:
- |
The nova::metadata::dhcp_domain paramater has been deprecated by
nova::dhcp_domain as the nova config option is also required for
nova-compute.
[Bug `1903908 <https://bugs.launchpad.net/nova/+bug/1903908>`_]

View File

@ -63,6 +63,7 @@ describe 'nova' do
is_expected.to contain_nova_config('DEFAULT/key').with_value('<SERVICE DEFAULT>') is_expected.to contain_nova_config('DEFAULT/key').with_value('<SERVICE DEFAULT>')
is_expected.to contain_nova_config('console/ssl_ciphers').with_value('<SERVICE DEFAULT>') is_expected.to contain_nova_config('console/ssl_ciphers').with_value('<SERVICE DEFAULT>')
is_expected.to contain_nova_config('console/ssl_minimum_version').with_value('<SERVICE DEFAULT>') is_expected.to contain_nova_config('console/ssl_minimum_version').with_value('<SERVICE DEFAULT>')
is_expected.to contain_nova_config('DEFAULT/dhcp_domain').with_value('<SERVICE DEFAULT>')
end end
it 'configures block_device_allocate params' do it 'configures block_device_allocate params' do
@ -113,6 +114,8 @@ describe 'nova' do
:key => '/etc/ssl/certs/snakeoil.pem', :key => '/etc/ssl/certs/snakeoil.pem',
:console_ssl_ciphers => 'kEECDH+aECDSA+AES:kEECDH+AES+aRSA:kEDH+aRSA+AES', :console_ssl_ciphers => 'kEECDH+aECDSA+AES:kEECDH+AES+aRSA:kEDH+aRSA+AES',
:console_ssl_minimum_version => 'tlsv1_2', :console_ssl_minimum_version => 'tlsv1_2',
:dhcp_domain => 'foo',
} }
end end
@ -181,6 +184,7 @@ describe 'nova' do
is_expected.to contain_nova_config('DEFAULT/key').with_value('/etc/ssl/certs/snakeoil.pem') is_expected.to contain_nova_config('DEFAULT/key').with_value('/etc/ssl/certs/snakeoil.pem')
is_expected.to contain_nova_config('console/ssl_ciphers').with_value('kEECDH+aECDSA+AES:kEECDH+AES+aRSA:kEDH+aRSA+AES') is_expected.to contain_nova_config('console/ssl_ciphers').with_value('kEECDH+aECDSA+AES:kEECDH+AES+aRSA:kEDH+aRSA+AES')
is_expected.to contain_nova_config('console/ssl_minimum_version').with_value('tlsv1_2') is_expected.to contain_nova_config('console/ssl_minimum_version').with_value('tlsv1_2')
is_expected.to contain_nova_config('DEFAULT/dhcp_domain').with_value('foo')
end end
context 'with multiple notification_driver' do context 'with multiple notification_driver' do

View File

@ -22,7 +22,7 @@ describe 'nova::metadata' do
it 'configures various stuff' do it 'configures various stuff' do
is_expected.to contain_nova_config('api/metadata_cache_expiration').with('value' => '<SERVICE DEFAULT>') is_expected.to contain_nova_config('api/metadata_cache_expiration').with('value' => '<SERVICE DEFAULT>')
is_expected.to contain_nova_config('api/local_metadata_per_cell').with('value' => '<SERVICE DEFAULT>') is_expected.to contain_nova_config('api/local_metadata_per_cell').with('value' => '<SERVICE DEFAULT>')
is_expected.to contain_nova_config('api/dhcp_domain').with('value' => '<SERVICE DEFAULT>') is_expected.to_not contain_nova_config('api/dhcp_domain')
end end
it 'unconfigures neutron_metadata proxy' do it 'unconfigures neutron_metadata proxy' do
@ -44,7 +44,7 @@ describe 'nova::metadata' do
it 'configures various stuff' do it 'configures various stuff' do
is_expected.to contain_nova_config('api/local_metadata_per_cell').with('value' => true) is_expected.to contain_nova_config('api/local_metadata_per_cell').with('value' => true)
is_expected.to contain_nova_config('api/metadata_cache_expiration').with('value' => '15') is_expected.to contain_nova_config('api/metadata_cache_expiration').with('value' => '15')
is_expected.to contain_nova_config('api/dhcp_domain').with('value' => 'foo') is_expected.to_not contain_nova_config('api/dhcp_domain')
is_expected.to contain_nova_config('neutron/service_metadata_proxy').with('value' => true) is_expected.to contain_nova_config('neutron/service_metadata_proxy').with('value' => true)
is_expected.to contain_nova_config('neutron/metadata_proxy_shared_secret').with('value' => 'secrete').with_secret(true) is_expected.to contain_nova_config('neutron/metadata_proxy_shared_secret').with('value' => 'secrete').with_secret(true)
end end