If one uses uppercase letters to name Nova servers, e.g.: ControllerHostnameFormat: 'CONTROLLER%index%' Then the uppercase is used on Nova/Heat side to refer to the machine, but the actual hostname is lower case. # hiera -c /etc/puppet/hiera.yaml bootstrap_nodeid CONTROLLER0 # facter hostname controller0 This causes the bootstrap node checks to not work, which breaks dependent features like upgrades/updates and restarts on config change.
The problems could be deeper than just the bootstrap node checks, e.g. see: [root@controller0 hieradata]# grep -r CONTROLLER /etc/puppet/hieradata/ /etc/puppet/hieradata/controller.yaml:bootstack_nodeid: CONTROLLER0 /etc/puppet/hieradata/bootstrap_node.yaml:bootstrap_nodeid: CONTROLLER0 /etc/puppet/hieradata/ceph_cluster.yaml:ceph_mon_initial_members: CONTROLLER0,CONTROLLER1,CONTROLLER2 /etc/puppet/hieradata/all_nodes.yaml:controller_node_names: CONTROLLER0,CONTROLLER1,CONTROLLER2 /etc/puppet/hieradata/all_nodes.yaml:galera_node_names: CONTROLLER0,CONTROLLER1,CONTROLLER2 I wonder if we should simply disallow uppercase letters in the *HostnameFormat parameters.
i think the right fix here is to make the bootstrap node hostname checks case insensitive, as hostnames are generally considered case insensitive
Do we have any specific errors around this? I only see redis and mongo not correctly using downcase($bootstrap_nodeid). I will fix those but unless we have some additional information, this shouldn't be an issue.
It looks like we also don't have the same case insensitive comparisons in the THT scripts. so i'm looking into those as well but any specific errors would be handy
The issue we actually hit was just with the bootstrap node check, which i think is handled by https://review.openstack.org/474762
verified with openstack-tripleo-heat-templates-7.0.3-3.el7ost.noarch [root@undercloud74 ~]# cat /usr/share/openstack-puppet/modules/tripleo/manifests/profile/base/database/redis.pp | grep downcase if downcase($bootstrap_nodeid) == $::hostname {
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://access.redhat.com/errata/RHEA-2017:3462