diff --git a/README.md b/README.md index a9189f464..dbad6e6a1 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,7 @@ scenario](#All-In-One). | cinder | X | | X | | ceilometer | X | | | | aodh | X | | | +| gnocchi | X | | | | heat | | X | | | swift | | X | | | sahara | | X | | diff --git a/fixtures/scenario001.pp b/fixtures/scenario001.pp index fc6169f8a..2941f5ffc 100644 --- a/fixtures/scenario001.pp +++ b/fixtures/scenario001.pp @@ -24,6 +24,7 @@ include ::openstack_integration::nova include ::openstack_integration::cinder include ::openstack_integration::ceilometer include ::openstack_integration::aodh +include ::openstack_integration::gnocchi include ::openstack_integration::trove include ::openstack_integration::provision diff --git a/manifests/aodh.pp b/manifests/aodh.pp index 5f7640986..bf57da303 100644 --- a/manifests/aodh.pp +++ b/manifests/aodh.pp @@ -14,6 +14,13 @@ class openstack_integration::aodh { require => Class['::rabbitmq'], } + # gnocchi is not packaged in Ubuntu Cloud Archive + # https://bugs.launchpad.net/cloud-archive/+bug/1535740 + if $::osfamily == 'RedHat' { + $gnocchi_url = 'http://127.0.0.1:8041' + } else { + $gnocchi_url = undef + } class { '::aodh': rabbit_userid => 'aodh', rabbit_password => 'an_even_bigger_secret', @@ -21,6 +28,7 @@ class openstack_integration::aodh { debug => true, rabbit_host => '127.0.0.1', database_connection => 'mysql+pymysql://aodh:aodh@127.0.0.1/aodh?charset=utf8', + gnocchi_url => $gnocchi_url, } class { '::aodh::db::mysql': password => 'aodh', diff --git a/manifests/gnocchi.pp b/manifests/gnocchi.pp new file mode 100644 index 000000000..21b4a8ca2 --- /dev/null +++ b/manifests/gnocchi.pp @@ -0,0 +1,43 @@ +class openstack_integration::gnocchi { + + # gnocchi is not packaged in Ubuntu Cloud Archive + # https://bugs.launchpad.net/cloud-archive/+bug/1535740 + if $::osfamily == 'RedHat' { + class { '::gnocchi': + verbose => true, + debug => true, + database_connection => 'mysql+pymysql://gnocchi:gnocchi@127.0.0.1/gnocchi?charset=utf8', + } + class { '::gnocchi::db::mysql': + password => 'gnocchi', + } + class { '::gnocchi::keystone::auth': + password => 'a_big_secret', + } + class { '::gnocchi::api': + enabled => true, + keystone_password => 'a_big_secret', + keystone_identity_uri => 'http://127.0.0.1:35357/', + keystone_auth_uri => 'http://127.0.0.1:35357/', + service_name => 'httpd', + } + include ::apache + class { '::gnocchi::wsgi::apache': + ssl => false, + } + class { '::gnocchi::client': } + class { '::gnocchi::db::sync': } + class { '::gnocchi::metricd': } + class { '::gnocchi::storage': } + class { '::gnocchi::storage::file': } + class { '::gnocchi::statsd': + archive_policy_name => 'high', + flush_delay => '100', + # random datas: + resource_id => '07f26121-5777-48ba-8a0b-d70468133dd9', + user_id => 'f81e9b1f-9505-4298-bc33-43dfbd9a973b', + project_id => '203ef419-e73f-4b8a-a73f-3d599a72b18d', + } + } + +} diff --git a/manifests/provision.pp b/manifests/provision.pp index 8e3059455..b8484e12d 100644 --- a/manifests/provision.pp +++ b/manifests/provision.pp @@ -20,6 +20,25 @@ class openstack_integration::provision { } Keystone_user_role['admin@openstack'] -> Exec['manage_m1.micro_nova_flavor'] + # https://bugs.launchpad.net/gnocchi/+bug/1538872 + if defined (Package['gnocchi']) { + exec { 'manage_gnocchi_high_policy': + path => '/usr/bin:/bin:/usr/sbin:/sbin', + provider => shell, + command => "gnocchi ${os_auth_options} archive-policy create -d granularity:1s,points:86400 -d granularity:1m,points:43200 -d granularity:1h,points:8760 high", + unless => "gnocchi ${os_auth_options} archive-policy list | grep high", + } + exec { 'manage_gnocchi_high_policy_rule': + path => '/usr/bin:/bin:/usr/sbin:/sbin', + provider => shell, + command => "gnocchi ${os_auth_options} archive-policy-rule create -a high -m '*' default", + unless => "gnocchi ${os_auth_options} archive-policy-rule list | grep default", + } + Keystone_user_role['admin@openstack'] -> Exec['manage_gnocchi_high_policy'] + Exec['manage_gnocchi_high_policy'] -> Service['ceilometer-collector'] + Exec['manage_gnocchi_high_policy'] -> Exec ['manage_gnocchi_high_policy_rule'] + } + neutron_network { 'public': tenant_name => 'openstack', router_external => true,