fuel-library/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp

108 lines
4.4 KiB
Puppet

class openstack_tasks::ceilometer::compute {
notice('MODULAR: ceilometer/compute.pp')
$use_syslog = hiera('use_syslog', true)
$use_stderr = hiera('use_stderr', false)
$syslog_log_facility = hiera('syslog_log_facility_ceilometer', 'LOG_LOCAL0')
$rabbit_hash = hiera_hash('rabbit')
$management_vip = hiera('management_vip')
$service_endpoint = hiera('service_endpoint', $management_vip)
$default_ceilometer_hash = {
'enabled' => false,
'db_password' => 'ceilometer',
'user_password' => 'ceilometer',
'metering_secret' => 'ceilometer',
'http_timeout' => '600',
'event_time_to_live' => '604800',
'metering_time_to_live' => '604800',
}
$region = hiera('region', 'RegionOne')
$ceilometer_hash = hiera_hash('ceilometer', $default_ceilometer_hash)
$ceilometer_region = pick($ceilometer_hash['region'], $region)
$ceilometer_enabled = $ceilometer_hash['enabled']
$amqp_password = $rabbit_hash['password']
$amqp_user = $rabbit_hash['user']
$kombu_compression = hiera('kombu_compression', $::os_service_default)
$ceilometer_metering_secret = $ceilometer_hash['metering_secret']
$debug = pick($ceilometer_hash['debug'], hiera('debug', false))
$ssl_hash = hiera_hash('use_ssl', {})
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
$internal_auth_endpoint = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'hostname', [$service_endpoint])
$admin_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'protocol', 'http')
$admin_auth_endpoint = get_ssl_property($ssl_hash, {}, 'keystone', 'admin', 'hostname', [$service_endpoint])
$keystone_identity_uri = "${admin_auth_protocol}://${admin_auth_endpoint}:35357/"
$keystone_auth_uri = "${internal_auth_protocol}://${internal_auth_endpoint}:5000/"
$override_configuration = hiera_hash('configuration', {})
# override ceilometer.conf options
override_resources { 'ceilometer_config':
data => $override_configuration['ceilometer']
}
# override ceilometer api paste options
override_resources { 'ceilometer_api_paste_ini':
data => $override_configuration['ceilometer_api_paste_ini']
}
Override_resources <||> ~> Service <| tag == 'ceilometer-service' |>
if ($ceilometer_enabled) {
class { '::ceilometer':
rabbit_heartbeat_timeout_threshold => 0,
http_timeout => $ceilometer_hash['http_timeout'],
event_time_to_live => $ceilometer_hash['event_time_to_live'],
metering_time_to_live => $ceilometer_hash['metering_time_to_live'],
rabbit_hosts => split(hiera('amqp_hosts',''), ','),
rabbit_userid => $amqp_user,
rabbit_password => $amqp_password,
metering_secret => $ceilometer_metering_secret,
debug => $debug,
use_syslog => $use_syslog,
use_stderr => $use_stderr,
log_facility => $syslog_log_facility,
kombu_compression => $kombu_compression,
}
class { '::ceilometer::agent::auth':
auth_url => $keystone_auth_uri,
auth_password => $ceilometer_hash['user_password'],
auth_region => $ceilometer_region,
auth_tenant_name => $ceilometer_hash['tenant'],
auth_user => $ceilometer_hash['user'],
auth_endpoint_type => 'internalURL',
}
class { '::ceilometer::client': }
if ($use_syslog) {
ceilometer_config {
'DEFAULT/use_syslog_rfc_format': value => true;
}
}
if $::operatingsystem == 'Ubuntu' and $::ceilometer::params::libvirt_group {
# Our libvirt-bin deb package (1.2.9 version) creates 'libvirt' group on Ubuntu
if (versioncmp($::libvirt_package_version, '1.2.9') >= 0) {
User<| name == 'ceilometer' |> {
groups => ['nova', 'libvirt'],
}
}
}
class { '::ceilometer::agent::polling':
central_namespace => false,
ipmi_namespace => false
}
}
}