/
ceilometer.pp
88 lines (86 loc) · 3.41 KB
/
ceilometer.pp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# == Class: contrail::profile::openstack::ceilometer
# The puppet module to set up openstack::ceilometer for contrail
#
#
class contrail::profile::openstack::ceilometer (
$openstack_verbose = $::contrail::params::os_verbose,
$openstack_debug = $::contrail::params::os_debug,
$region_name = $::contrail::params::os_region,
$mongo_password = $::contrail::params::os_mongo_password,
$metering_secret = $::contrail::params::os_metering_secret,
$database_ip_list = $::contrail::params::database_ip_list,
$internal_vip = $::contrail::params::internal_vip,
$analytics_node_ip = $::contrail::params::collector_ip_to_use,
$service_password = $::contrail::params::os_mysql_service_password,
$allowed_hosts = $::contrail::params::os_mysql_allowed_hosts,
$ceilometer_password = $::contrail::params::os_ceilometer_password,
$openstack_rabbit_servers = $::contrail::params::openstack_rabbit_hosts,
$controller_mgmt_address = $::contrail::params::os_controller_mgmt_address,
$keystone_ip_to_use = $::contrail::params::keystone_ip_to_use,
) {
$database_ip_to_use = $database_ip_list[0]
$mongo_connection = join([ "mongodb://ceilometer:", $mongo_password, "@", join($database_ip_list,':27017,') ,":27017/ceilometer?replicaSet=rs-ceilometer" ],'')
$auth_url = "http://${keystone_ip_to_use}:5000/v2.0"
$auth_password = $ceilometer_password
$auth_tenant_name = 'services'
$auth_username = 'ceilometer'
if (internal_vip!='') {
$coordination_url = join(["kazoo://", $database_ip_to_use, ':2181'])
} else {
$coordination_url = undef
}
class { '::ceilometer':
metering_secret => $metering_secret,
debug => $openstack_verbose,
verbose => $openstack_debug,
rabbit_hosts => $openstack_rabbit_servers,
} ->
file { '/etc/ceilometer/pipeline.yaml':
ensure => file,
content => template('contrail/pipeline.yaml.erb'),
} ->
class { '::ceilometer::agent::central':
coordination_url => $coordination_url
} ->
contrail::lib::augeas_conf_rm { "ceilometer_rpc_backend":
key => 'rpc_backend',
config_file => '/etc/ceilometer/ceilometer.conf',
lens_to_use => 'properties.lns',
match_value => 'ceilometer.openstack.common.rpc.impl_kombu',
}
if $::osfamily != 'Debian' {
class { '::ceilometer::alarm::notifier':
} ->
class { '::ceilometer::alarm::evaluator':
coordination_url => $coordination_url
}
}
if (internal_vip!='') {
$ceilometer_ha_properties = { 'ceilometer_ha_config' => {
'notification/workload_partitioning' => 'True',
'compute/workload_partitioning' => 'True',
}
}
Contrail::Lib::Augeas_conf_rm['ceilometer_rpc_backend']->
contrail::lib::augeas_conf_set{ "ceilometer_ha":
settings_hash => $ceilometer_ha_properties['ceilometer_ha_config'],
config_file => '/etc/ceilometer/ceilometer.conf',
lens_to_use => 'properties.lns'
}
}
class { '::ceilometer::collector': } ->
class { '::ceilometer::agent::auth':
auth_url => $auth_url,
auth_password => $auth_password,
auth_tenant_name => $auth_tenant_name,
auth_user => $auth_username,
} ->
class { '::ceilometer::db':
database_connection => $mongo_connection
} ->
class { '::ceilometer::api':
enabled => true,
keystone_host => $controller_mgmt_address,
keystone_password => $ceilometer_password,
}
}