spine leaf undercloud installation missing ctlplane_ip exception error in master
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
Critical
|
Harald Jensås |
Bug Description
Since the change "131ff2b4b831 - (2021-01-19 09:17:01 +0100) Re-factor inventory.py use setdefault pervasively" https:/
fails to install with the following error:
PLAY [Load global variables] *******
Reverting that change makes the installation work correctly.
My undercloud.conf is
[DEFAULT]
undercloud_
overcloud_
container_
undercloud_timezone = UTC
undercloud_hostname = undercloud-
undercloud_
local_interface = eth2
local_ip = 192.168.4.2/24
undercloud_
undercloud_
enable_
subnets=r1,r2,r3,r4
local_subnet=r4
[r1]
cidr = 192.168.1.0/24
dhcp_start = 192.168.1.160
dhcp_end = 192.168.1.170
inspection_iprange = 192.168.
gateway = 192.168.1.1
masquerade = False
[r2]
cidr = 192.168.2.0/24
dhcp_start = 192.168.2.160
dhcp_end = 192.168.2.170
inspection_iprange = 192.168.
gateway = 192.168.2.1
masquerade = False
[r3]
cidr = 192.168.3.0/24
dhcp_start = 192.168.3.160
dhcp_end = 192.168.3.170
inspection_iprange = 192.168.
gateway = 192.168.3.1
masquerade = False
[r4]
cidr = 192.168.4.0/24
dhcp_start = 192.168.4.160
dhcp_end = 192.168.4.170
inspection_iprange = 192.168.
gateway = 192.168.4.1
masquerade = False
description: | updated |
summary: |
- spine leaf undercloud installation missint ctlplane_ip exception error + spine leaf undercloud installation missing ctlplane_ip exception error in master |
description: | updated |
Changed in tripleo: | |
status: | New → Triaged |
importance: | Medium → High |
milestone: | none → wallaby-2 |
tags: | added: edge networking |
Changed in tripleo: | |
status: | Triaged → In Progress |
Changed in tripleo: | |
milestone: | wallaby-2 → wallaby-3 |
Changed in tripleo: | |
milestone: | wallaby-3 → wallaby-rc1 |
Changed in tripleo: | |
status: | In Progress → Fix Released |
I reproduced this and did some debugging.
Prior to the patch the 'Undercloud' entry added at the beginning of the list() function was actually completely overwritten when a role names 'Undercloud' is present in the heat stack.
After re-factoring we add to it instead, and end up with two hosts in the "Undercloud" group.
{'Undercloud': {
'undercloud' : {},
'undercloud- 0': { ...
'hosts': {
We probably need to special case for the 'Undercloud' role in the _inventory_ from_heat_ outputs( ) method to ensure it overwrites instead of appending.