diff --git a/manifests/profile/base/database/mysql.pp b/manifests/profile/base/database/mysql.pp index 540d57be2..59dd3100b 100644 --- a/manifests/profile/base/database/mysql.pp +++ b/manifests/profile/base/database/mysql.pp @@ -241,8 +241,10 @@ class tripleo::profile::base::database::mysql ( if hiera('neutron_api_enabled', false) { include ::neutron::db::mysql } +    if hiera('nova_conductor_enabled', false) { +      include ::nova::db::mysql +    } if hiera('nova_api_enabled', false) { - include ::nova::db::mysql include ::nova::db::mysql_api } if hiera('nova_placement_enabled', false) { diff --git a/manifests/profile/base/neutron.pp b/manifests/profile/base/neutron.pp index 69e8a9e13..5edf519dd 100644 --- a/manifests/profile/base/neutron.pp +++ b/manifests/profile/base/neutron.pp @@ -133,10 +133,16 @@ class tripleo::profile::base::neutron ( elsif $dhcp_agent_count > 0 { $dhcp_agents_per_net = $dhcp_agent_count } + if hiera('nova_is_additional_cell', undef) { + $oslomsg_rpc_hosts_real = delete($oslomsg_rpc_hosts, any2array(hiera('oslo_messaging_rpc_cell_node_names', undef))) + } else { + $oslomsg_rpc_hosts_real = $oslomsg_rpc_hosts + } + class { '::neutron' : default_transport_url => os_transport_url({ 'transport' => $oslomsg_rpc_proto, - 'hosts' => $oslomsg_rpc_hosts, + 'hosts' => $oslomsg_rpc_hosts_real, 'port' => $oslomsg_rpc_port, 'username' => $oslomsg_rpc_username, 'password' => $oslomsg_rpc_password, diff --git a/manifests/profile/base/nova.pp b/manifests/profile/base/nova.pp index fe9d05a8c..fb21981e2 100644 --- a/manifests/profile/base/nova.pp +++ b/manifests/profile/base/nova.pp @@ -117,6 +117,11 @@ class tripleo::profile::base::nova ( if $step >= 4 or ($step >= 3 and $sync_db) { $oslomsg_rpc_use_ssl_real = sprintf('%s', bool2num(str2bool($oslomsg_rpc_use_ssl))) $oslomsg_notify_use_ssl_real = sprintf('%s', bool2num(str2bool($oslomsg_notify_use_ssl))) + if hiera('nova_is_additional_cell', undef) { + $oslomsg_rpc_hosts_real = any2array(hiera('oslo_messaging_rpc_cell_node_names', undef)) + } else { + $oslomsg_rpc_hosts_real = $oslomsg_rpc_hosts + } include ::nova::config include ::nova::logging class { '::nova::cache': @@ -127,7 +132,7 @@ class tripleo::profile::base::nova ( class { '::nova': default_transport_url => os_transport_url({ 'transport' => $oslomsg_rpc_proto, - 'hosts' => $oslomsg_rpc_hosts, + 'hosts' => $oslomsg_rpc_hosts_real, 'port' => $oslomsg_rpc_port, 'username' => $oslomsg_rpc_username, 'password' => $oslomsg_rpc_password, diff --git a/manifests/profile/base/nova/conductor.pp b/manifests/profile/base/nova/conductor.pp index d9d55d246..8ed999bdf 100644 --- a/manifests/profile/base/nova/conductor.pp +++ b/manifests/profile/base/nova/conductor.pp @@ -18,15 +18,31 @@ # # === Parameters # +# [*bootstrap_node*] +# (Optional) The hostname of the node responsible for bootstrapping tasks +# Defaults to hiera('nova_api_short_bootstrap_node_name') +# # [*step*] # (Optional) The current step in deployment. See tripleo-heat-templates # for more details. # Defaults to hiera('step') # class tripleo::profile::base::nova::conductor ( + $bootstrap_node = hiera('bootstrap_nodeid', undef), $step = Integer(hiera('step')), ) { include ::tripleo::profile::base::nova + include ::nova::db + + if $::hostname == downcase($bootstrap_node) { + $sync_db = true + } else { + $sync_db = false + } + + if $step >= 3 and $sync_db { + include ::nova::db::sync + } if $step >= 4 { include ::nova::conductor } diff --git a/manifests/profile/pacemaker/database/mysql_bundle.pp b/manifests/profile/pacemaker/database/mysql_bundle.pp index d21ada57b..473a3e2b5 100644 --- a/manifests/profile/pacemaker/database/mysql_bundle.pp +++ b/manifests/profile/pacemaker/database/mysql_bundle.pp @@ -149,7 +149,12 @@ class tripleo::profile::pacemaker::database::mysql_bundle ( # FQDN are lowercase in /etc/hosts, so are pacemaker node names $galera_node_names_lookup = downcase(hiera('mysql_short_node_names', $::hostname)) - $galera_fqdns_names_lookup = downcase(hiera('mysql_node_names', $::hostname)) + # is this an additional nova cell? + if hiera('nova_is_additional_cell', undef) { + $galera_fqdns_names_lookup = downcase(hiera('mysql_cell_node_names', $::hostname)) + } else { + $galera_fqdns_names_lookup = downcase(hiera('mysql_node_names', $::hostname)) + } if is_array($galera_node_names_lookup) { $galera_nodes = join($galera_fqdns_names_lookup, ',') diff --git a/manifests/profile/pacemaker/rabbitmq_bundle.pp b/manifests/profile/pacemaker/rabbitmq_bundle.pp index 9bfa021fe..3e72e659c 100644 --- a/manifests/profile/pacemaker/rabbitmq_bundle.pp +++ b/manifests/profile/pacemaker/rabbitmq_bundle.pp @@ -95,9 +95,16 @@ class tripleo::profile::pacemaker::rabbitmq_bundle ( $step = Integer(hiera('step')), $container_backend = 'docker', ) { + # is this an additional nova cell? + if hiera('nova_is_additional_cell', undef) { + $rpc_nodes_real = hiera('oslo_messaging_rpc_cell_node_names', []) + } else { + $rpc_nodes_real = $rpc_nodes + } + if $rpc_scheme == 'rabbit' { $bootstrap_node = $rpc_bootstrap_node - $rabbit_nodes = $rpc_nodes + $rabbit_nodes = $rpc_nodes_real } elsif $notify_scheme == 'rabbit' { $bootstrap_node = $notify_bootstrap_node $rabbit_nodes = $notify_nodes