We need to run nova-cell_v2-discover_hosts at the very end of the
deployment because nova database needs to be aware of all registred
compute hosts.
1. Move keystone resources management at step 3.
2. Move nova-compute service at step 4.
3. Move nova-placement-api at step 3.
5. Run nova-cell_v2-discover_hosts at step 5 on one nova-api node.
6. Run neutron-ovs-agent at step 5 to avoid racy deployments where
it starts before neutron-server when doing HA deployments.
With that change, we expect Nova aware of all compute services deployed
in TripleO during an initial deployment.
Depends-On: If943157b2b4afeb640919e77ef0214518e13ee15
Change-Id: I6f2df2a83a248fb5dc21c2bd56029eb45b66ceae
Related-Bug: #
1663273
Related-Bug: #
1663458
include ::keystone::cron::token_flush
}
- if $step >= 4 and $manage_domain {
+ if $step >= 3 and $manage_domain {
if hiera('heat_engine_enabled', false) {
# create these seperate and don't use ::heat::keystone::domain since
# that class writes out the configs
}
}
- if $step >= 4 and $manage_endpoint{
+ if $step >= 3 and $manage_endpoint{
if hiera('aodh_api_enabled', false) {
include ::aodh::keystone::auth
}
) {
include ::tripleo::profile::base::neutron
- if $step >= 4 {
+ if $step >= 5 {
include ::neutron::agents::ml2::ovs
# Optional since manage_service may be false and neutron server may not be colocated.
if hiera('nova_enable_db_purge', true) {
include ::nova::cron::archive_deleted_rows
}
+ # At step 5, we consider all nova-compute services started and registred to nova-conductor
+ # So we want to update Nova Cells database to be aware of these hosts by executing the
+ # nova-cell_v2-discover_hosts command again.
+ # Doing it on a single nova-api node to avoid race condition.
+ if $sync_db {
+ Exec<| title == 'nova-cell_v2-discover_hosts' |> { refreshonly => false }
+ }
}
}
$cinder_nfs_backend = hiera('cinder_enable_nfs_backend', false),
) {
- if $step >= 5 {
+ if $step >= 4 {
# deploy basic bits for nova
include ::tripleo::profile::base::nova
$tls_keyfile = undef
}
- if $step >= 4 {
+ if $step >= 3 {
class { '::nova::wsgi::apache_placement':
ssl_cert => $tls_certfile,
ssl_key => $tls_keyfile,
end
context 'default params' do
- let(:params) { { :step => 5, } }
+ let(:params) { { :step => 4, } }
it {
is_expected.to contain_class('tripleo::profile::base::nova::compute')
end
context 'cinder nfs backend' do
- let(:params) { { :step => 5, :cinder_nfs_backend => true } }
+ let(:params) { { :step => 4, :cinder_nfs_backend => true } }
it {
is_expected.to contain_class('tripleo::profile::base::nova::compute')