+++ This bug was initially created as a clone of Bug #1353920 +++
Description of problem:
Nodes with index [0-9] have hostname correctly mapped but not the others.
Version-Release number of selected component (if applicable):
OSPd 8
$ rpm -qa openstack-tripleo-heat-templates
openstack-tripleo-heat-templates-0.8.14-11.el7ost.noarch
How reproducible:
100%
Steps to Reproduce:
https://access.redhat.com/documentation/en/red-hat-openstack-platform/version-8/director-installation-and-usage/#sect-Controlling_Node_Placement
1. Tag node in ironic
2. Setup SchedulerHints
3. Setup HostnameMap
4. Deploy with more than 10 nodes in a profile
Actual results:
Deploying with 14 computes nodes
ironic node tag | nova hostname
------------------------------------------------------
overcloud-compute-[0-9] : mycompute-rack1-[1-10]
overcloud-compute-[10-13] : mycompute-rack1-[20-23]
Expected results:
ironic node tag | nova hostname
------------------------------------------------------
overcloud-compute-[0-13] : mycompute-rack1-[1-14]
Additional info:
The controller and ceph nodes are fine (but only 3 nodes for each profile).
We can see the right HostnameMap in the stack of the compute nodes with the bad hostname
--- Additional comment from Steven Hardy on 2016-07-08 08:33:05 EDT ---
We discussed this on IRC and after some investigation I realized this is due to a partial replacement, raised https://bugs.launchpad.net/tripleo/+bug/1600209
Details from there:
parameter_defaults:
HostnameMap:
overcloud-controller-0: foo-a123-n1
overcloud-controller-1: foo-a123-n2
...
overcloud-compute-12: foo-b123-n13
In this situation, the str_replace in puppet/compute.yaml does a partial replacement of "overcloud-compute-12" so it ends up being "foo-a123-n22", which is clearly not what the author of the hostname map intended.
A workaround for this is probably to add a trailing character to the HostnameFormat parameter, e.g:
parameter_defaults:
ComputeHostnameFormat: '%stackname%-novacompute-%index%X'
HostnameMap:
overcloud-controller-0X: foo-a123-n1
overcloud-controller-1X: foo-a123-n2
...
overcloud-compute-12X: foo-b123-n13
It'd be better if we could handle this inside the templates though and I'm thinking about the best way to achieve that.
--- Additional comment from Mark McLoughlin on 2016-08-11 10:30:04 EDT ---
--- Additional comment from Zane Bitter on 2016-08-12 15:27:31 EDT ---
Giulio's upstream patch to Heat (linked above) looks like it should resolve the issue and be a fairly safe candidate for backporting once upstream reviews are complete.
--- Additional comment from Mark McLoughlin on 2016-08-16 07:16:52 EDT ---
https://review.openstack.org/354856 merged and should be a good candidate for backporting, according to Zane above
--- Additional comment from Giulio Fidente on 2016-08-16 09:59:02 EDT ---
Submitted ports to mitaka and liberty, linked liberty port from BZ
--- Additional comment from Zane Bitter on 2016-08-19 13:31:34 EDT ---
Upstream backports have merged.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHBA-2016-1917.html