puppet-tempest/manifests/magnum.pp
Takashi Kajinami 8e72fcdd71 magnum: Add manage_tests_packages
The manage_tests_packages parameter exists in the base tempest class
but the same functionality is not implemented in the separate class
for magnum-tempest-plugin.

Introduce the parameter to the magnum class so that users can disable
package management completely.

Change-Id: Id06fd565371c01d3a6c3bee0366314030d287a5f
(cherry picked from commit 40fcf16ba8)
2024-04-26 01:42:47 +00:00

142 lines
4.4 KiB
Puppet

# class: tempest::magnum
#
# Configures Tempest in order to be able to test the Magnum container service.
# Sane defaults are used where possible in order to provide a working testing
# configuration.
#
# === Parameters
#
# [*tempest_config_file*]
# Defaults to '/var/lib/tempest/etc/tempest.conf'
#
# [*provision_image*]
# (Optional) If ::tempest::magnum should configure the testing image
# Defaults to true
#
# [*image_source*]
# (Optional) If provision_image is true, the location of the image
# Defaults to 'https://fedorapeople.org/groups/magnum/fedora-atomic-latest.qcow2'
#
# [*image_os_distro*]
# (Optional) If provision_image is true, the os_distro propery of the image
# Defaults to fedora-atomic-latest
#
# [*image_name*]
# (Optional) The name of the image to be used for ClusterTemplate
# Defaults to 'fedora-atomic-latest'
#
# [*provision_flavors*]
# (Optional) If ::tempest::magnum should configure the testing flavors
# Defaults to true
#
# [*flavor_id*]
# (Optional) The name of the flavor to be used for ClusterTemplate
# Defaults to 's1.magnum'
#
# [*master_flavor_id*]
# (Optional) The name of the master flavor to be used for ClusterTemplate
# Defaults to 'm1.magnum'
#
# [*provision_keypair*]
# (Optional) If ::tempest::magnum should configure the testing keypair
# Defaults to false (not yet supported, will be true when implemented)
#
# [*keypair_id*]
# (Optional) The keypair_id parameter used in Magnum tempest configuration
# Defaults to 'default'
#
# [*nic_id*]
# (Optional) The nic_id parameter used in Magnum tempest configuration
# Defaults to 'public'
#
# [*magnum_url*]
# (Optional) Bypass URL for Magnum to skip service catalog lookup
# Defaults to undef
#
# [*copy_logs*]
# (Optional) Whether to copy nova server logs on failure
# Defaults to true
#
# [*dns_nameserver*]
# (Optional) DNS nameserver to use for ClusterTemplate
# Defaults to '8.8.8.8'
#
# [*manage_tests_packages*]
# (Optional) Manage the plugin package
# Defaults to true
#
class tempest::magnum (
Stdlib::Absolutepath $tempest_config_file = '/var/lib/tempest/etc/tempest.conf',
Boolean $provision_image = true,
String[1] $image_source = 'https://fedorapeople.org/groups/magnum/fedora-atomic-latest.qcow2',
String[1] $image_name = 'fedora-atomic-latest',
String[1] $image_os_distro = 'fedora-atomic',
Boolean $provision_flavors = true,
String[1] $flavor_id = 's1.magnum',
String[1] $master_flavor_id = 'm1.magnum',
Boolean $provision_keypair = false,
$keypair_id = 'default',
$nic_id = 'public',
$magnum_url = undef,
$copy_logs = true,
$dns_nameserver = '8.8.8.8',
Boolean $manage_tests_packages = true,
) {
include tempest::params
if $provision_image {
$image_properties = { 'os_distro' => $image_os_distro }
glance_image { $image_name:
ensure => present,
container_format => 'bare',
disk_format => 'qcow2',
is_public => 'yes',
source => $image_source,
properties => $image_properties,
}
}
if $provision_flavors {
nova_flavor { $flavor_id:
ensure => present,
id => '200',
ram => '512',
disk => '10',
vcpus => '1',
}
nova_flavor { $master_flavor_id:
ensure => present,
id => '100',
ram => '1024',
disk => '10',
vcpus => '1',
}
}
if $manage_tests_packages {
if $::tempest::params::python_magnum_tests {
package { 'python-magnum-tests':
ensure => present,
name => $::tempest::params::python_magnum_tests,
tag => ['openstack', 'tempest-package'],
}
}
}
Tempest_config {
path => $tempest_config_file,
}
tempest_config {
'magnum/image_id': value => $image_name;
'magnum/nic_id': value => $nic_id;
'magnum/keypair_id': value => $keypair_id;
'magnum/flavor_id': value => $flavor_id;
'magnum/master_flavor_id': value => $master_flavor_id;
'magnum/magnum_url': value => $magnum_url;
'magnum/copy_logs': value => $copy_logs;
'magnum/dns_nameserver': value => $dns_nameserver;
}
}