puppet-openstack-integration/manifests/murano.pp
Takashi Kajinami 544159a630 Drop workarounds for old packaging problems in Ubuntu
Some of the services have been disabled in Ubuntu because of old
package problems but can be enabled now, to restore test coverage in
Ubuntu.

This also enables murano in both CentOS and Ubuntu. The murano tempest
plugin tests still fail so tempest tests are still disabled for now.

Depends-on: https://review.opendev.org/900608
Change-Id: I98f67f5088240e9a0c3ff0e4927959f40a1b6119
2023-11-11 15:49:01 +09:00

113 lines
4.1 KiB
Puppet

class openstack_integration::murano {
include openstack_integration::config
include openstack_integration::params
$application_package_path = $facts['os']['family'] ? {
'RedHat' => '/var/cache/murano/meta',
default => '/usr/share/murano-common',
}
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':
notify => Service['murano-api'],
require => Package['murano-common'],
}
Exec['update-ca-certificates'] ~> Service['murano-api']
}
class { 'murano::db::mysql':
charset => $::openstack_integration::params::mysql_charset,
collate => $::openstack_integration::params::mysql_collate,
password => 'murano',
host => $::openstack_integration::config::host,
}
class { 'murano::logging':
debug => true,
}
class { 'murano::db':
database_connection => os_database_connection({
'dialect' => 'mysql+pymysql',
'host' => $::openstack_integration::config::ip_for_url,
'username' => 'murano',
'password' => 'murano',
'database' => 'murano',
'charset' => 'utf8',
'extra' => $::openstack_integration::config::db_extra,
}),
}
class { 'murano::keystone::authtoken':
password => 'a_big_secret',
user_domain_name => 'Default',
project_domain_name => 'Default',
auth_url => $::openstack_integration::config::keystone_admin_uri,
www_authenticate_uri => $::openstack_integration::config::keystone_auth_uri,
memcached_servers => $::openstack_integration::config::memcached_servers,
service_token_roles_required => true,
}
class { 'murano':
default_transport_url => os_transport_url({
'transport' => $::openstack_integration::config::messaging_default_proto,
'host' => $::openstack_integration::config::host,
'port' => $::openstack_integration::config::messaging_default_port,
'username' => 'murano',
'password' => 'an_even_bigger_secret',
}),
rabbit_os_use_ssl => $::openstack_integration::config::ssl,
rabbit_own_user => 'murano_private',
rabbit_own_password => 'an_even_bigger_secret',
rabbit_own_vhost => '/murano',
rabbit_own_host => $::openstack_integration::config::host,
rabbit_own_port => $::openstack_integration::config::rabbit_port,
rabbit_own_use_ssl => $::openstack_integration::config::ssl,
use_ssl => $::openstack_integration::config::ssl,
service_host => $::openstack_integration::config::ip_for_url,
cert_file => $::openstack_integration::params::cert_path,
key_file => "/etc/murano/ssl/private/${facts['networking']['fqdn']}.pem",
}
class { 'murano::api':
host => $::openstack_integration::config::host,
workers => 2,
}
class { 'murano::engine':
workers => 2,
}
class { 'murano::keystone::auth':
public_url => "${::openstack_integration::config::base_url}:8082",
internal_url => "${::openstack_integration::config::base_url}:8082",
admin_url => "${::openstack_integration::config::base_url}:8082",
roles => ['admin', 'service'],
password => 'a_big_secret',
}
# TODO(tkajinam): murano_application is not idempotent in Ubuntu
if $facts['os']['family'] == 'RedHat' {
murano_application { 'io.murano':
package_path => "${application_package_path}/io.murano.zip",
}
Keystone_user_role<||> -> Murano_application['io.murano']
}
}