To utilize the ceilometer module's functionality you will need to declare multiple resources. This is not an exhaustive list of all the components needed. We recommend that you consult and understand the [core openstack](https://docs.openstack.org) documentation to assist you in understanding the available deployment options.
```puppet
-class { '::ceilometer':
+class { 'ceilometer':
telemetry_secret => 'secrete',
default_transport_url => 'rabbit://ceilometer:an_even_bigger_secret@127.0.0.1:5672',
}
-class { '::ceilometer::keystone::auth':
+class { 'ceilometer::keystone::auth':
password => 'a_big_secret',
}
-class { '::ceilometer::collector': }
-class { '::ceilometer::expirer': }
-class { '::ceilometer::agent::polling': }
-class { '::ceilometer::agent::notification': }
-class { '::ceilometer::db': }
-class { '::ceilometer::keystone::authtoken':
+class { 'ceilometer::collector': }
+class { 'ceilometer::expirer': }
+class { 'ceilometer::agent::polling': }
+class { 'ceilometer::agent::notification': }
+class { 'ceilometer::db': }
+class { 'ceilometer::keystone::authtoken':
password => 'a_big_secret',
auth_url => 'http://127.0.0.1:5000/',
}
-class { '::ceilometer':
+class { 'ceilometer':
telemetry_secret => 'secrete',
default_transport_url => 'rabbit://ceilometer:an_even_bigger_secret@127.0.0.1:5672',
}
-class { '::ceilometer::db::mysql':
+class { 'ceilometer::db::mysql':
password => 'a_big_secret',
}
-class { '::ceilometer::db':
+class { 'ceilometer::db':
database_connection => 'mysql://ceilometer:a_big_secret@127.0.0.1/ceilometer?charset=utf8',
}
-class { '::ceilometer::keystone::auth':
+class { 'ceilometer::keystone::auth':
password => 'a_big_secret',
}
-class { '::ceilometer::expirer': }
-class { '::ceilometer::agent::polling': }
-class { '::ceilometer::agent::notification': }
-class { '::ceilometer::keystone::authtoken':
+class { 'ceilometer::expirer': }
+class { 'ceilometer::agent::polling': }
+class { 'ceilometer::agent::notification': }
+class { 'ceilometer::keystone::authtoken':
password => 'a_big_secret',
}
-class { '::ceilometer::collector':
+class { 'ceilometer::collector':
meter_dispatchers => ['gnocchi'],
}
-class { '::ceilometer::dispatcher::gnocchi':
+class { 'ceilometer::dispatcher::gnocchi':
filter_service_activity => false,
filter_project => 'gnocchi_swift',
url => 'https://gnocchi:8041',
}
# First, install a mysql server
- class { '::mysql::server': }
+ class { 'mysql::server': }
# And create the database
- class { '::ceilometer::db::mysql':
+ class { 'ceilometer::db::mysql':
password => 'ceilometer',
}
# Add the base ceilometer class & parameters
# This class is required by ceilometer agents & api classes
# The telemetry_secret parameter is mandatory
- class { '::ceilometer':
+ class { 'ceilometer':
telemetry_secret => 'darksecret'
}
# Configure the ceilometer database
# Only needed if ceilometer::agent::polling or ceilometer::api are declared
- class { '::ceilometer::db':
+ class { 'ceilometer::db':
}
# Configure ceilometer database with mongodb
- # class { '::ceilometer::db':
+ # class { 'ceilometer::db':
# database_connection => 'mongodb://localhost:27017/ceilometer',
# require => Class['mongodb'],
# }
# Configure keystonemiddleware for ceilometer
- class { '::ceilometer::keystone::authtoken':
+ class { 'ceilometer::keystone::authtoken':
password => 'tralalayouyou'
}
# Set common auth parameters used by all agents (compute/central)
- class { '::ceilometer::agent::auth':
+ class { 'ceilometer::agent::auth':
auth_url => 'http://localhost:5000/v3',
auth_password => 'tralalerotralala'
}
# ipmi_namespace => true
# }
# As default use central and compute polling namespaces
- class { '::ceilometer::agent::polling':
+ class { 'ceilometer::agent::polling':
central_namespace => true,
compute_namespace => true,
ipmi_namespace => false,
}
# Purge old meters
- class { '::ceilometer::expirer': }
+ class { 'ceilometer::expirer': }
# Install notification agent
- class { '::ceilometer::agent::notification':
+ class { 'ceilometer::agent::notification':
}
}
$auth_type = 'password',
) {
- include ::ceilometer::deps
+ include ceilometer::deps
if ! $auth_cacert {
ceilometer_config { 'service_credentials/cafile': ensure => absent }
$pipeline_publishers = ['gnocchi://'],
) {
- include ::ceilometer::deps
- include ::ceilometer::params
+ include ceilometer::deps
+ include ceilometer::params
ensure_resource('package', [$::ceilometer::params::agent_notification_package_name],
{
$polling_meters = $::ceilometer::params::polling_meters,
) inherits ceilometer {
- include ::ceilometer::deps
- include ::ceilometer::params
+ include ceilometer::deps
+ include ceilometer::params
if $central_namespace {
$central_namespace_name = 'central'
# or Puppet catalog compilation will fail with duplicate resources.
#
class ceilometer::config (
- $ceilometer_config = {},
- $ceilometer_api_paste_ini = {},
+ $ceilometer_config = {},
+ $ceilometer_api_paste_ini = {},
) {
- include ::ceilometer::deps
+ include ceilometer::deps
validate_legacy(Hash, 'validate_hash', $ceilometer_config)
validate_legacy(Hash, 'validate_hash', $ceilometer_api_paste_ini)
$database_idle_timeout = undef,
) {
- include ::ceilometer::deps
+ include ceilometer::deps
if $database_idle_timeout {
warning('The database_idle_timeout parameter is deprecated. Please use \
}
if $sync_db {
- include ::ceilometer::db::sync
+ include ceilometer::db::sync
}
}
$collate = 'utf8_general_ci',
) {
- include ::ceilometer::deps
+ include ceilometer::deps
validate_legacy(String, 'validate_string', $password)
- ::openstacklib::db::mysql { 'ceilometer':
+ openstacklib::db::mysql { 'ceilometer':
user => $user,
password_hash => mysql::password($password),
dbname => $dbname,
$privileges = 'ALL',
) {
- include ::ceilometer::deps
+ include ceilometer::deps
- ::openstacklib::db::postgresql { 'ceilometer':
+ openstacklib::db::postgresql { 'ceilometer':
password_hash => postgresql_password($user, $password),
dbname => $dbname,
user => $user,
$extra_params = undef,
) {
- include ::ceilometer::deps
- include ::ceilometer::params
+ include ceilometer::deps
+ include ceilometer::params
exec { 'ceilometer-upgrade':
command => "${::ceilometer::params::dbsync_command} ${extra_params}",
$weekday = '*',
) {
- include ::ceilometer::params
+ include ceilometer::params
Anchor['ceilometer::install::end'] ~> Class['ceilometer::expirer']
$host = $::os_service_default,
) {
- include ::ceilometer::deps
- include ::ceilometer::params
+ include ceilometer::deps
+ include ceilometer::params
group { 'ceilometer':
ensure => present,
$internal_url = 'http://127.0.0.1:8777',
) {
- include ::ceilometer::deps
+ include ceilometer::deps
validate_legacy(String, 'validate_string', $password)
- ::keystone::resource::service_identity { 'ceilometer':
+ keystone::resource::service_identity { 'ceilometer':
configure_user => $configure_user,
configure_user_role => $configure_user_role,
configure_endpoint => $configure_endpoint,
$service_token_roles_required = $::os_service_default,
) {
- include ::ceilometer::deps
+ include ceilometer::deps
if is_service_default($password) {
fail('Please set password for ceilometer service user')
$log_date_format = $::os_service_default,
) {
- include ::ceilometer::deps
+ include ceilometer::deps
oslo::log { 'ceilometer_config':
debug => $debug,
# should be considered to be constant
#
class ceilometer::params {
- include ::openstacklib::defaults
+ include openstacklib::defaults
$dbsync_command = 'ceilometer-upgrade'
$expirer_command = 'ceilometer-expirer'
$policy_path = '/etc/ceilometer/policy.json',
) {
- include ::ceilometer::deps
- include ::ceilometer::params
+ include ceilometer::deps
+ include ceilometer::params
validate_legacy(Hash, 'validate_hash', $policies)
it 'should work with no errors' do
pp= <<-EOS
- include ::openstack_integration
- include ::openstack_integration::repos
- include ::openstack_integration::rabbitmq
- include ::openstack_integration::mysql
- include ::openstack_integration::keystone
- class { '::openstack_integration::ceilometer':
+ include openstack_integration
+ include openstack_integration::repos
+ include openstack_integration::rabbitmq
+ include openstack_integration::mysql
+ include openstack_integration::keystone
+ class { 'openstack_integration::ceilometer':
integration_enable => false,
}
EOS