Allow configuring Glance to use Swift tempurls

This is required for quite a few drivers, e.g. the whole agent_* family
and iLO virtual media deploy.

Change-Id: Id447d83e86847c92bea89d706d50ac8b46c469fa
This commit is contained in:
Dmitry Tantsur 2016-09-03 11:09:08 +02:00
parent 3e970e4491
commit 5a60bb6d0b
3 changed files with 24 additions and 0 deletions

View File

@ -59,6 +59,16 @@
# The format is "AUTH_uuid"
# Defaults to $::os_service_default
#
# [*swift_temp_url_key*]
# (optional) The secret token given to Swift to allow temporary URL
# downloads. Required for several drivers (e.g. agent_ipmitool).
# Defaults to $::os_service_default
#
# [*swift_temp_url_duration*]
# (optional) The length of time in seconds that the temporary URL will be
# valid for.
# Defaults to $::os_service_default
#
# [*cleaning_network_uuid*]
# (optional) UUID of the network to create Neutron ports on, when booting
# to a ramdisk for cleaning using Neutron DHCP.
@ -96,6 +106,8 @@ class ironic::conductor (
$http_root = $::os_service_default,
$automated_clean = $::os_service_default,
$swift_account = $::os_service_default,
$swift_temp_url_key = $::os_service_default,
$swift_temp_url_duration = $::os_service_default,
$cleaning_network_uuid = $::os_service_default,
$cleaning_disk_erase = undef,
$continue_if_disk_secure_erase_fails = $::os_service_default,
@ -157,6 +169,8 @@ class ironic::conductor (
'conductor/automated_clean': value => $automated_clean;
'conductor/api_url': value => $api_url;
'glance/swift_account': value => $swift_account;
'glance/swift_temp_url_key': value => $swift_temp_url_key, secret => true;
'glance/swift_temp_url_duration': value => $swift_temp_url_duration;
'neutron/cleaning_network_uuid': value => $cleaning_network_uuid;
'neutron/provisioning_network_uuid': value => $provisioning_network_uuid;
'deploy/http_url': value => $http_url_real;

View File

@ -0,0 +1,4 @@
---
features:
- Allow configuring Swift temporary URL parameters for fetching images
from Glance. Required for certain drivers.

View File

@ -66,6 +66,8 @@ describe 'ironic::conductor' do
is_expected.to contain_ironic_config('conductor/automated_clean').with(:value => '<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('conductor/api_url').with(:value => '<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('glance/swift_account').with(:value => '<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('glance/swift_temp_url_key').with(:value => '<SERVICE DEFAULT>').with_secret(true)
is_expected.to contain_ironic_config('glance/swift_temp_url_duration').with(:value => '<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('neutron/cleaning_network_uuid').with(:value => '<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('neutron/provisioning_network_uuid').with(:value => '<SERVICE DEFAULT>')
is_expected.to contain_ironic_config('deploy/continue_if_disk_secure_erase_fails').with(:value => '<SERVICE DEFAULT>')
@ -81,6 +83,8 @@ describe 'ironic::conductor' do
:force_power_state_during_sync => false,
:automated_clean => false,
:swift_account => '00000000-0000-0000-0000-000000000000',
:swift_temp_url_key => 'the-key',
:swift_temp_url_duration => 3600,
:cleaning_network_uuid => '00000000-0000-0000-0000-000000000000',
:api_url => 'https://127.0.0.1:6385',
:provisioning_network_uuid => '00000000-0000-0000-0000-000000000000',
@ -96,6 +100,8 @@ describe 'ironic::conductor' do
is_expected.to contain_ironic_config('conductor/automated_clean').with_value(p[:automated_clean])
is_expected.to contain_ironic_config('conductor/api_url').with_value(p[:api_url])
is_expected.to contain_ironic_config('glance/swift_account').with_value(p[:swift_account])
is_expected.to contain_ironic_config('glance/swift_temp_url_key').with_value(p[:swift_temp_url_key]).with_secret(true)
is_expected.to contain_ironic_config('glance/swift_temp_url_duration').with_value(p[:swift_temp_url_duration])
is_expected.to contain_ironic_config('neutron/cleaning_network_uuid').with_value('00000000-0000-0000-0000-000000000000')
is_expected.to contain_ironic_config('neutron/provisioning_network_uuid').with_value('00000000-0000-0000-0000-000000000000')
is_expected.to contain_ironic_config('deploy/erase_devices_priority').with_value(0)