diff --git a/README.md b/README.md index e6fd4efe1..b5b3a53ee 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ scenario](#all-in-one). | ironic | | X | | | | zaqar | | X | | | | barbican | | X | | | +| murano | | | X | | | ceph | X | | | | | mongodb | | X | | | diff --git a/fixtures/scenario003.pp b/fixtures/scenario003.pp index f3ef6fc97..8c35de38f 100644 --- a/fixtures/scenario003.pp +++ b/fixtures/scenario003.pp @@ -19,11 +19,14 @@ case $::osfamily { $ipv6 = false # mistral is not packaged on Ubuntu Trusty $mistral_enabled = false + # murano package should be fixed on Ubuntu Xenial + $murano_enabled = false } 'RedHat': { $ipv6 = true # enable when we figure why mistral tempest tests are so unstable $mistral_enabled = false + $murano_enabled = true } default: { fail("Unsupported osfamily (${::osfamily})") @@ -71,6 +74,9 @@ include ::openstack_integration::sahara if $designate_enabled { include ::openstack_integration::designate } +if $murano_enabled { + include ::openstack_integration::murano +} include ::openstack_integration::provision class { '::openstack_integration::tempest': @@ -79,5 +85,6 @@ class { '::openstack_integration::tempest': mistral => $mistral_enabled, sahara => true, horizon => true, + murano => $murano_enabled, heat => true, } diff --git a/manifests/murano.pp b/manifests/murano.pp new file mode 100644 index 000000000..a74341c9a --- /dev/null +++ b/manifests/murano.pp @@ -0,0 +1,80 @@ +class openstack_integration::murano { + + include ::openstack_integration::config + include ::openstack_integration::params + + rabbitmq_user { ['murano', 'murano_private']: + admin => true, + password => 'an_even_bigger_secret', + provider => 'rabbitmqctl', + require => Class['::rabbitmq'], + } + + rabbitmq_vhost { '/murano': + provider => 'rabbitmqctl', + require => Class['rabbitmq'], + } + + rabbitmq_user_permissions { ['murano@/', 'murano_private@/murano']: + configure_permission => '.*', + write_permission => '.*', + read_permission => '.*', + provider => 'rabbitmqctl', + require => [ Class['::rabbitmq'], Rabbitmq_vhost['/murano'] ], + } + + if $::openstack_integration::config::ssl { + openstack_integration::ssl_key { 'murano': + require => Package['murano-common'], + } + $key_file = "/etc/murano/ssl/private/${::fqdn}.pem" + $crt_file = $::openstack_integration::params::cert_path + File[$key_file] ~> Service<| tag == 'murano-service' |> + Exec['update-ca-certificates'] ~> Service<| tag == 'murano-service' |> + } else { + $key_file = undef + $crt_file = undef + } + + class { '::murano::db::mysql': + password => 'a_big_secret', + } + + class { '::murano': + admin_password => 'a_big_secret', + rabbit_os_user => 'murano', + rabbit_os_password => 'an_even_bigger_secret', + rabbit_os_host => $::openstack_integration::config::ip_for_url, + rabbit_os_use_ssl => $::openstack_integration::config::ssl, + rabbit_os_port => $::openstack_integration::config::rabbit_port, + rabbit_own_user => 'murano_private', + rabbit_own_password => 'an_even_bigger_secret', + rabbit_own_vhost => '/murano', + rabbit_own_host => $::openstack_integration::config::ip_for_url, + rabbit_own_port => $::openstack_integration::config::rabbit_port, + rabbit_own_use_ssl => $::openstack_integration::config::ssl, + database_connection => 'mysql://murano:a_big_secret@127.0.0.1/murano?charset=utf8', + identity_uri => $::openstack_integration::config::keystone_admin_uri, + auth_uri => $::openstack_integration::config::keystone_auth_uri, + use_ssl => $::openstack_integration::config::ssl, + service_host => $::openstack_integration::config::ip_for_url, + cert_file => $crt_file, + key_file => $key_file, + debug => true, + } + + class { '::murano::api': + host => $::openstack_integration::config::host, + } + + class { '::murano::engine': } + + class { '::murano::keystone::auth': + password => 'a_big_secret', + public_url => "${::openstack_integration::config::base_url}:8082", + internal_url => "${::openstack_integration::config::base_url}:8082", + admin_url => "${::openstack_integration::config::base_url}:8082", + } -> + + murano::application { 'io.murano': } +} diff --git a/manifests/tempest.pp b/manifests/tempest.pp index 03ab0349f..12e1c6a1b 100644 --- a/manifests/tempest.pp +++ b/manifests/tempest.pp @@ -60,6 +60,10 @@ # (optional) Define if Sahara needs to be tested. # Default to false. # +# [*murano*] +# (optional) Define if Murano needs to be tested. +# Default to false. +# # [*swift*] # (optional) Define if Swift needs to be tested. # Default to false. @@ -89,6 +93,7 @@ class openstack_integration::tempest ( $horizon = false, $ironic = false, $mistral = false, + $murano = false, $neutron = true, $nova = true, $sahara = false, @@ -162,6 +167,7 @@ class openstack_integration::tempest ( ca_certificates_file => $::openstack_integration::params::ca_bundle_cert_path, manage_tests_packages => true, attach_encrypted_volume => $attach_encrypted_volume, + murano_available => $murano, # TODO(emilien) optimization by 1/ using Hiera to configure Glance image source # and 2/ if running in the gate, use /home/jenkins/cache/files/ cirros image. # img_dir => '/home/jenkins/cache/files', diff --git a/run_tests.sh b/run_tests.sh index 09d5455d1..9d3be1af5 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -218,6 +218,9 @@ echo "VolumesBackupsAdminV2Test" >> /tmp/openstack/tempest/test-whitelist.txt # Cinder encrypted volumes echo "TestEncryptedCinderVolumes" >> /tmp/openstack/tempest/test-whitelist.txt +# Murano +TESTS="${TESTS} application_catalog" + print_header 'Running Tempest' cd /tmp/openstack/tempest