Reconfigure of nova with changed DB or MQ hostname or password creates a duplicate cell
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kolla-ansible |
Fix Released
|
Medium
|
Pierre Riteau | ||
Rocky |
Fix Released
|
Medium
|
Unassigned | ||
Stein |
Fix Released
|
Medium
|
Unassigned | ||
Train |
Fix Released
|
Medium
|
Pierre Riteau |
Bug Description
Description
===========
If the hostname/IP or password of the nova database or message queue is changed, kolla-ansible will create a new cell using the new connection strings during kayobe overcloud service reconfigure.
This has a few consequences:
* Duplicate entries returned in nova hypervisor-list, nova usage and nova service-list.
* The nova usage and nova usage-list commands do not terminate, and loops forever calling the same API request.
* The compute overview page in horizon does not load correctly, and the horizon server process spins.
This was seen when changing from using an IP to an FQDN for the external and internal API VIPs.
Steps to reproduce
==================
* Deploy a cloud with nova enabled and kolla_internal_fqdn == kolla_internal_
* Create one or more instances.
* Change kolla_internal_fqdn to use a hostname that resolves to kolla_internal_
* Reconfigure the cloud using kolla-ansible reconfigure.
Expected results
================
The nova cell should be updated with the new DB connection string.
Actual results
==============
A new cell is created with the new DB connection string.
The cells can be checked via 'docker exec -it nova_api nova-manage cell_v2 list_cells'. There should be two cells - cell0 and one other.
Environment
===========
Seen on pike, CentOS 7.3 on the hosts and containers. Ironic is used as the nova hypervisor.
Changed in kolla-ansible: | |
importance: | Undecided → Medium |
During deploy and reconfigure, kolla-ansible always attempts to create a cell [1]. The corresponding nova-manage command uses the DB and MQ connection strings as the uniqueness check for cells [2]. Therefore, if either of these changes, create_cell will create a new cell.
A better approach here would be to use create_cell only when no cell other than cell0 exists. Otherwise, we should use update_cell to set the DB and transport connection strings.
[1] https:/ /github. com/openstack/ kolla-ansible/ blob/stable/ pike/ansible/ roles/nova/ tasks/simple_ cell_setup. yml#L17 /github. com/openstack/ nova/blob/ stable/ pike/nova/ cmd/manage. py#L1614
[2] https:/