Possibility to detach cinder from controllers
Adds the possibility to use external (non-controllers) keystone, db, rabbitmq, etc for cinder services. Partial blueprint: detach-components-from-controllers Change-Id: I46582e9199bc9ed389f1b441306b8b109325c69a
This commit is contained in:
parent
c35e5cafdb
commit
e8ff3f01b4
@ -125,6 +125,7 @@ class openstack::cinder(
|
||||
keystone_enabled => $keystone_enabled,
|
||||
package_ensure => $::openstack_version['cinder'],
|
||||
keystone_auth_host => $auth_host,
|
||||
keystone_user => $keystone_user,
|
||||
keystone_password => $cinder_user_password,
|
||||
bind_host => $bind_host,
|
||||
ratelimits => $cinder_rate_limits
|
||||
|
@ -23,7 +23,7 @@ $rabbit_hash = hiera('rabbit', {})
|
||||
$glance_hash = hiera('glance', {})
|
||||
$keystone_hash = hiera('keystone', {})
|
||||
$swift_hash = hiera('swift', {})
|
||||
$cinder_hash = hiera('cinder', {})
|
||||
$cinder_hash = hiera_hash('cinder', {})
|
||||
$ceilometer_hash = hiera('ceilometer',{})
|
||||
$access_hash = hiera('access', {})
|
||||
$mp_hash = hiera('mp', {})
|
||||
|
@ -1,10 +1,8 @@
|
||||
notice('MODULAR: openstack-cinder.pp')
|
||||
|
||||
$cinder_hash = hiera('cinder', {})
|
||||
$cinder_hash = hiera_hash('cinder', {})
|
||||
$management_vip = hiera('management_vip')
|
||||
$queue_provider = hiera('queue_provider', 'rabbitmq')
|
||||
$cinder_db_user = hiera('cinder_db_user', 'cinder')
|
||||
$cinder_db_dbname = hiera('cinder_db_dbname', 'cinder')
|
||||
$internal_address = hiera('internal_address')
|
||||
$cinder_volume_group = hiera('cinder_volume_group', 'cinder')
|
||||
$controller_nodes = hiera('controller_nodes')
|
||||
@ -12,21 +10,28 @@ $nodes_hash = hiera('nodes', {})
|
||||
$storage_hash = hiera('storage', {})
|
||||
$storage_address = hiera('storage_address')
|
||||
$ceilometer_hash = hiera('ceilometer',{})
|
||||
$rabbit_hash = hiera('rabbit', {})
|
||||
|
||||
$db_host = $management_vip
|
||||
$service_endpoint = $management_vip
|
||||
$rabbit_hash = hiera_hash('rabbit_hash', {})
|
||||
$service_endpoint = hiera('service_endpoint', $management_vip)
|
||||
$cinder_db_password = $cinder_hash[db_password]
|
||||
$cinder_user_password = $cinder_hash[user_password]
|
||||
$keystone_user = pick($cinder_hash['user'], 'cinder')
|
||||
$keystone_tenant = pick($cinder_hash['tenant'], 'services')
|
||||
$db_host = pick($cinder_hash['db_host'], $management_vip)
|
||||
$cinder_db_user = pick($cinder_hash['db_user'], 'cinder')
|
||||
$cinder_db_name = pick($cinder_hash['db_name'], 'cinder')
|
||||
$roles = node_roles($nodes_hash, hiera('uid'))
|
||||
|
||||
if $internal_address in $controller_nodes {
|
||||
if hiera('amqp_nodes', false) {
|
||||
$amqp_nodes = hiera('amqp_nodes')
|
||||
}
|
||||
elsif $internal_address in $controller_nodes {
|
||||
# prefer local MQ broker if it exists on this node
|
||||
$amqp_nodes = concat(['127.0.0.1'], fqdn_rotate(delete($controller_nodes, $internal_address)))
|
||||
} else {
|
||||
$amqp_nodes = fqdn_rotate($controller_nodes)
|
||||
}
|
||||
$amqp_port = '5673'
|
||||
|
||||
$amqp_port = hiera('amqp_port', '5673')
|
||||
$amqp_hosts = inline_template("<%= @amqp_nodes.map {|x| x + ':' + @amqp_port}.join ',' %>")
|
||||
|
||||
# Determine who should get the volume service
|
||||
@ -57,7 +62,7 @@ $openstack_version = {
|
||||
|
||||
######### Cinder Controller Services ########
|
||||
class {'openstack::cinder':
|
||||
sql_connection => "mysql://${cinder_db_user}:${cinder_db_password}@${db_host}/${cinder_db_dbname}?charset=utf8&read_timeout=60",
|
||||
sql_connection => "mysql://${cinder_db_user}:${cinder_db_password}@${db_host}/${cinder_db_name}?charset=utf8&read_timeout=60",
|
||||
queue_provider => $queue_provider,
|
||||
amqp_hosts => $amqp_hosts,
|
||||
amqp_user => $rabbit_hash['user'],
|
||||
@ -71,6 +76,8 @@ class {'openstack::cinder':
|
||||
auth_host => $service_endpoint,
|
||||
bind_host => $internal_address,
|
||||
iscsi_bind_host => $storage_address,
|
||||
keystone_user => $keystone_user,
|
||||
keystone_tenant => $keystone_tenant,
|
||||
cinder_user_password => $cinder_user_password,
|
||||
use_syslog => hiera('use_syslog', true),
|
||||
verbose => hiera('verbose', true),
|
||||
|
@ -27,7 +27,7 @@ $mysql_hash = hiera('mysql', {})
|
||||
$rabbit_hash = hiera('rabbit', {})
|
||||
$glance_hash = hiera('glance', {})
|
||||
$keystone_hash = hiera('keystone', {})
|
||||
$cinder_hash = hiera('cinder', {})
|
||||
$cinder_hash = hiera_hash('cinder', {})
|
||||
$ceilometer_hash = hiera('ceilometer',{})
|
||||
$access_hash = hiera('access', {})
|
||||
$network_scheme = hiera('network_scheme', {})
|
||||
@ -47,6 +47,16 @@ $syslog_log_facility_sahara = hiera('syslog_log_facility_sahara','LOG_LOCAL0
|
||||
$syslog_log_facility_ceilometer = hiera('syslog_log_facility_ceilometer','LOG_LOCAL0')
|
||||
$syslog_log_facility_ceph = hiera('syslog_log_facility_ceph','LOG_LOCAL0')
|
||||
|
||||
$cinder_db_password = $cinder_hash[db_password]
|
||||
$keystone_user = pick($cinder_hash['user'], 'cinder')
|
||||
$keystone_tenant = pick($cinder_hash['tenant'], 'services')
|
||||
$db_host = pick($cinder_hash['db_host'], $management_vip)
|
||||
$cinder_db_user = pick($cinder_hash['db_user'], 'cinder')
|
||||
$cinder_db_name = pick($cinder_hash['db_name'], 'cinder')
|
||||
|
||||
$service_endpoint = hiera('service_endpoint', $management_vip)
|
||||
$glance_api_servers = hiera('glance_api_servers', "${management_vip}:9292")
|
||||
|
||||
# TODO: openstack_version is confusing, there's such string var in hiera and hardcoded hash
|
||||
$hiera_openstack_version = hiera('openstack_version')
|
||||
$openstack_version = {
|
||||
@ -186,14 +196,17 @@ $roles = node_roles($nodes_hash, hiera('uid'))
|
||||
$mountpoints = filter_hash($mp_hash,'point')
|
||||
|
||||
# AMQP client configuration
|
||||
if $internal_address in $controller_nodes {
|
||||
if hiera('amqp_nodes', false) {
|
||||
$amqp_nodes = hiera('amqp_nodes')
|
||||
}
|
||||
elsif $internal_address in $controller_nodes {
|
||||
# prefer local MQ broker if it exists on this node
|
||||
$amqp_nodes = concat(['127.0.0.1'], fqdn_rotate(delete($controller_nodes, $internal_address)))
|
||||
} else {
|
||||
$amqp_nodes = fqdn_rotate($controller_nodes)
|
||||
}
|
||||
|
||||
$amqp_port = '5673'
|
||||
$amqp_port = hiera('amqp_port', '5673')
|
||||
$amqp_hosts = inline_template("<%= @amqp_nodes.map {|x| x + ':' + @amqp_port}.join ',' %>")
|
||||
$rabbit_ha_queues = true
|
||||
|
||||
@ -333,8 +346,8 @@ if member($roles, 'controller') or member($roles, 'primary-controller') {
|
||||
# after the deployment is done.
|
||||
class { 'openstack::cinder':
|
||||
enable_volumes => false,
|
||||
sql_connection => "mysql://cinder:${cinder_hash[db_password]}@${management_vip}/cinder?charset=utf8&read_timeout=60",
|
||||
glance_api_servers => "${management_vip}:9292",
|
||||
sql_connection => "mysql://${cinder_db_user}:${cinder_db_password}@${db_host}/${cinder_db_name}?charset=utf8&read_timeout=60",
|
||||
glance_api_servers => $glance_api_servers,
|
||||
bind_host => $bind_host,
|
||||
queue_provider => $queue_provider,
|
||||
amqp_hosts => $amqp_hosts,
|
||||
@ -345,8 +358,10 @@ class { 'openstack::cinder':
|
||||
manage_volumes => $manage_volumes,
|
||||
iser => $storage_hash['iser'],
|
||||
enabled => true,
|
||||
auth_host => $management_vip,
|
||||
auth_host => $service_endpoint,
|
||||
iscsi_bind_host => $storage_address,
|
||||
keystone_user => $keystone_user,
|
||||
keystone_tenant => $keystone_tenant,
|
||||
cinder_user_password => $cinder_hash[user_password],
|
||||
syslog_log_facility => $syslog_log_facility_cinder,
|
||||
debug => $debug,
|
||||
|
Loading…
Reference in New Issue
Block a user