Allow deployer to choose Ceilometer backend
Ceilometer can use different backends. A recent change moved backend support for Ceilometer from MySQL to MongoDB. This commit introduce a greater flexibility, letting the deployer choose wheter MySQL or MongoDB should be used as a backend for Ceilometer. Change-Id: I0d5bfb0763cbcee234df7ab13574d866743d5ddf
This commit is contained in:
parent
c3144c9bf6
commit
1850e765ce
|
@ -14,6 +14,10 @@ parameters:
|
||||||
description: The keystone auth secret.
|
description: The keystone auth secret.
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
hidden: true
|
||||||
|
CeilometerBackend:
|
||||||
|
default: 'mongodb'
|
||||||
|
description: The ceilometer backend type.
|
||||||
|
type: string
|
||||||
CeilometerMeteringSecret:
|
CeilometerMeteringSecret:
|
||||||
default: unset
|
default: unset
|
||||||
description: Secret shared by the ceilometer services.
|
description: Secret shared by the ceilometer services.
|
||||||
|
|
|
@ -15,6 +15,10 @@ parameters:
|
||||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
hidden: true
|
||||||
|
CeilometerBackend:
|
||||||
|
default: 'mongodb'
|
||||||
|
description: The ceilometer backend type.
|
||||||
|
type: string
|
||||||
CeilometerMeteringSecret:
|
CeilometerMeteringSecret:
|
||||||
default: unset
|
default: unset
|
||||||
description: Secret shared by the ceilometer services.
|
description: Secret shared by the ceilometer services.
|
||||||
|
@ -543,6 +547,7 @@ resources:
|
||||||
properties:
|
properties:
|
||||||
AdminPassword: {get_param: AdminPassword}
|
AdminPassword: {get_param: AdminPassword}
|
||||||
AdminToken: {get_param: AdminToken}
|
AdminToken: {get_param: AdminToken}
|
||||||
|
CeilometerBackend: {get_param: CeilometerBackend}
|
||||||
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
||||||
CeilometerPassword: {get_param: CeilometerPassword}
|
CeilometerPassword: {get_param: CeilometerPassword}
|
||||||
CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
|
CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
|
||||||
|
|
|
@ -14,6 +14,10 @@ parameters:
|
||||||
description: The keystone auth secret.
|
description: The keystone auth secret.
|
||||||
type: string
|
type: string
|
||||||
hidden: true
|
hidden: true
|
||||||
|
CeilometerBackend:
|
||||||
|
default: 'mongodb'
|
||||||
|
description: The ceilometer backend type.
|
||||||
|
type: string
|
||||||
CeilometerMeteringSecret:
|
CeilometerMeteringSecret:
|
||||||
default: unset
|
default: unset
|
||||||
description: Secret shared by the ceilometer services.
|
description: Secret shared by the ceilometer services.
|
||||||
|
@ -577,8 +581,15 @@ resources:
|
||||||
- - 'http://'
|
- - 'http://'
|
||||||
- {get_param: VirtualIP}
|
- {get_param: VirtualIP}
|
||||||
- ':35357/v2.0'
|
- ':35357/v2.0'
|
||||||
|
ceilometer_backend: {get_param: CeilometerBackend}
|
||||||
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
|
||||||
ceilometer_password: {get_param: CeilometerPassword}
|
ceilometer_password: {get_param: CeilometerPassword}
|
||||||
|
ceilometer_dsn:
|
||||||
|
list_join:
|
||||||
|
- ''
|
||||||
|
- - 'mysql://ceilometer:unset@'
|
||||||
|
- {get_param: VirtualIP}
|
||||||
|
- '/ceilometer'
|
||||||
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
||||||
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
||||||
nova_password: {get_param: NovaPassword}
|
nova_password: {get_param: NovaPassword}
|
||||||
|
@ -787,6 +798,8 @@ resources:
|
||||||
neutron_dsn: {get_input: neutron_dsn}
|
neutron_dsn: {get_input: neutron_dsn}
|
||||||
|
|
||||||
# Ceilometer
|
# Ceilometer
|
||||||
|
ceilometer_backend: {get_input: ceilometer_backend}
|
||||||
|
ceilometer_mysql_conn_string: {get_input: ceilometer_dsn}
|
||||||
ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
|
ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
|
||||||
ceilometer::rabbit_hosts: {get_input: rabbit_hosts}
|
ceilometer::rabbit_hosts: {get_input: rabbit_hosts}
|
||||||
ceilometer::rabbit_userid: {get_input: rabbit_username}
|
ceilometer::rabbit_userid: {get_input: rabbit_username}
|
||||||
|
|
|
@ -79,17 +79,19 @@ if hiera('step') >= 2 {
|
||||||
}
|
}
|
||||||
|
|
||||||
# MongoDB
|
# MongoDB
|
||||||
include ::mongodb::globals
|
if downcase(hiera('ceilometer_backend')) == 'mongodb' {
|
||||||
include ::mongodb::server
|
include ::mongodb::globals
|
||||||
$mongo_node_ips = split(hiera('mongo_node_ips'), ',')
|
include ::mongodb::server
|
||||||
$mongo_node_ips_with_port = suffix($mongo_node_ips, ':27017')
|
$mongo_node_ips = split(hiera('mongo_node_ips'), ',')
|
||||||
$mongo_node_string = join($mongo_node_ips_with_port, ',')
|
$mongo_node_ips_with_port = suffix($mongo_node_ips, ':27017')
|
||||||
|
$mongo_node_string = join($mongo_node_ips_with_port, ',')
|
||||||
|
|
||||||
$mongodb_replset = hiera('mongodb::server::replset')
|
$mongodb_replset = hiera('mongodb::server::replset')
|
||||||
$ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
|
$ceilometer_mongodb_conn_string = "mongodb://${mongo_node_string}/ceilometer?replicaSet=${mongodb_replset}"
|
||||||
if downcase(hiera('bootstrap_nodeid')) == $::hostname {
|
if downcase(hiera('bootstrap_nodeid')) == $::hostname {
|
||||||
mongodb_replset { $mongodb_replset :
|
mongodb_replset { $mongodb_replset :
|
||||||
members => $mongo_node_ips_with_port,
|
members => $mongo_node_ips_with_port,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,6 +183,16 @@ if hiera('step') >= 2 {
|
||||||
dbname => $heat_dsn[6],
|
dbname => $heat_dsn[6],
|
||||||
allowed_hosts => $allowed_hosts,
|
allowed_hosts => $allowed_hosts,
|
||||||
}
|
}
|
||||||
|
if downcase(hiera('ceilometer_backend')) == 'mysql' {
|
||||||
|
$ceilometer_dsn = split(hiera('ceilometer_mysql_conn_string'), '[@:/?]')
|
||||||
|
class { 'ceilometer::db::mysql':
|
||||||
|
user => $ceilometer_dsn[3],
|
||||||
|
password => $ceilometer_dsn[4],
|
||||||
|
host => $ceilometer_dsn[5],
|
||||||
|
dbname => $ceilometer_dsn[6],
|
||||||
|
allowed_hosts => $allowed_hosts,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$rabbit_nodes = split(downcase(hiera('rabbit_node_names', $::hostname)), ',')
|
$rabbit_nodes = split(downcase(hiera('rabbit_node_names', $::hostname)), ',')
|
||||||
if count($rabbit_nodes) > 1 {
|
if count($rabbit_nodes) > 1 {
|
||||||
|
@ -399,6 +411,15 @@ if hiera('step') >= 3 {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Ceilometer
|
# Ceilometer
|
||||||
|
$ceilometer_backend = downcase(hiera('ceilometer_backend'))
|
||||||
|
case $ceilometer_backend {
|
||||||
|
/mysql/ : {
|
||||||
|
$ceilometer_database_connection = hiera('ceilometer_mysql_conn_string')
|
||||||
|
}
|
||||||
|
default : {
|
||||||
|
$ceilometer_database_connection = $ceilometer_mongodb_conn_string
|
||||||
|
}
|
||||||
|
}
|
||||||
include ::ceilometer
|
include ::ceilometer
|
||||||
include ::ceilometer::api
|
include ::ceilometer::api
|
||||||
include ::ceilometer::agent::notification
|
include ::ceilometer::agent::notification
|
||||||
|
@ -408,7 +429,7 @@ if hiera('step') >= 3 {
|
||||||
include ::ceilometer::expirer
|
include ::ceilometer::expirer
|
||||||
include ::ceilometer::collector
|
include ::ceilometer::collector
|
||||||
class { '::ceilometer::db' :
|
class { '::ceilometer::db' :
|
||||||
database_connection => $ceilometer_mongodb_conn_string,
|
database_connection => $ceilometer_database_connection,
|
||||||
}
|
}
|
||||||
class { 'ceilometer::agent::auth':
|
class { 'ceilometer::agent::auth':
|
||||||
auth_url => join(['http://', hiera('controller_virtual_ip'), ':5000/v2.0']),
|
auth_url => join(['http://', hiera('controller_virtual_ip'), ':5000/v2.0']),
|
||||||
|
|
Loading…
Reference in New Issue