diff --git a/README.md b/README.md index dd635254c..028803d61 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ scenario](#all-in-one). | cinder | rbd | iscsi | | | iscsi | | ceilometer | X | | | | | | aodh | X | | | | | +| panko | X | | | | | | designate | | | bind | | | | backup | | swift | | | | | gnocchi | rbd | | | | | diff --git a/fixtures/scenario001.pp b/fixtures/scenario001.pp index 6476bd021..9a48ed334 100644 --- a/fixtures/scenario001.pp +++ b/fixtures/scenario001.pp @@ -17,9 +17,12 @@ case $::osfamily { 'Debian': { $ipv6 = false + # panko is not packaged yet in debian/ubuntu + $enable_panko = false } 'RedHat': { $ipv6 = true + $enable_panko = true } default: { fail("Unsupported osfamily (${::osfamily})") @@ -59,6 +62,9 @@ include ::openstack_integration::aodh include ::openstack_integration::gnocchi include ::openstack_integration::ceph include ::openstack_integration::provision +if $enable_panko { + include ::openstack_integration::panko +} class { '::openstack_integration::tempest': cinder => true, diff --git a/manifests/ceilometer.pp b/manifests/ceilometer.pp index 6268360b7..b22298b54 100644 --- a/manifests/ceilometer.pp +++ b/manifests/ceilometer.pp @@ -70,8 +70,17 @@ class openstack_integration::ceilometer { ssl_cert => $::openstack_integration::params::cert_path, workers => '2', } + + # Panko is not yet packaged in ubuntu repos + if $::osfamily == 'RedHat' { + $event_dispatcher = 'panko' + } else { + $event_dispatcher = undef + } + class { '::ceilometer::collector': collector_workers => '2', + event_dispatcher => $event_dispatcher, } class { '::ceilometer::expirer': } class { '::ceilometer::agent::notification': diff --git a/manifests/panko.pp b/manifests/panko.pp new file mode 100644 index 000000000..d802300b6 --- /dev/null +++ b/manifests/panko.pp @@ -0,0 +1,65 @@ +class openstack_integration::panko { + + include ::openstack_integration::config + include ::openstack_integration::params + + rabbitmq_user { 'panko': + admin => true, + password => 'an_even_bigger_secret', + provider => 'rabbitmqctl', + require => Class['::rabbitmq'], + } + rabbitmq_user_permissions { 'panko@/': + configure_permission => '.*', + write_permission => '.*', + read_permission => '.*', + provider => 'rabbitmqctl', + require => Class['::rabbitmq'], + } + + if $::openstack_integration::config::ssl { + openstack_integration::ssl_key { 'panko': + notify => Service['httpd'], + require => Package['panko'], + } + Exec['update-ca-certificates'] ~> Service['httpd'] + } + + include ::panko + + class { '::panko::db': + database_connection => 'mysql+pymysql://panko:panko@127.0.0.1/panko?charset=utf8', + } + + class { '::panko::db::mysql': + password => 'panko', + } + class { '::panko::keystone::auth': + public_url => "${::openstack_integration::config::base_url}:8779", + internal_url => "${::openstack_integration::config::base_url}:8779", + admin_url => "${::openstack_integration::config::base_url}:8779", + password => 'a_big_secret', + } + class { '::panko::keystone::authtoken': + password => 'a_big_secret', + user_domain_name => 'Default', + project_domain_name => 'Default', + auth_url => $::openstack_integration::config::keystone_admin_uri, + auth_uri => $::openstack_integration::config::keystone_auth_uri, + memcached_servers => $::openstack_integration::config::memcached_servers, + } + class { '::panko::api': + enabled => true, + service_name => 'httpd', + } + include ::apache + class { '::panko::wsgi::apache': + bind_host => $::openstack_integration::config::ip_for_url, + ssl => $::openstack_integration::config::ssl, + ssl_key => "/etc/panko/ssl/private/${::fqdn}.pem", + ssl_cert => $::openstack_integration::params::cert_path, + workers => 2, + } + class { '::panko::db::sync': } + +}