Description of problem: /etc/hosts has multiple entries for undercloud IP address with hostnames with different network name suffix. There are also more than one entries for the same IP. Version-Release number of selected component (if applicable): latest tripleo-ansible-0.4.2-0.20200404124615.67005aa.el8ost.noarch openstack-tripleo-heat-templates-11.3.2-0.20200405044625.ec9970c.el8ost.noarch How reproducible: Always Steps to Reproduce: 1. Deploy an environment with composable network. 2. check/backup /etc/hosts on undercloud 3. Run overcloud deploy again 4. check/backup /etc/hosts on undercloud Actual results: During each deploy 3 duplicate entries are added for undercloud with different network suffix. Expected results: There is always one entry for undercloud with only required alias that is - hostname, fqdn with domain, hostname with valid network ctlplane (If at all it is required anywhere.) Additional info: This was reproduced in customer environment and internally.
Created attachment 1694425 [details] hosts file from undercloud
Created attachment 1694426 [details] templates used for testing
Created attachment 1694427 [details] config-download
This is expected due to the way the hostname/IPs are managed. This reuses the code that we use in the overcloud and the reason why they are the same is because we don't actually have different IPs for the various "networks". This is currently how it works and unless it's breaking something this is NOTABUG.
Hi Alex, When we did the initial deployment of overcloud, this entry was not seen. After stack update, three of such entries were added: Here are the concerns: 1. Why are there duplicate entries of the same IP seen as above? 2. The above entry also looks like it has a lot of repetition, for example - 'undercloud.ctlplane' itself is repeated 15 times in a single line. 3. At every stack update these line almost increase by 3 times. For example: Before: 172.16.0.1 undercloud.ctlplane.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain After: 172.16.0.1 undercloud.ctlplane.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain The '3.' behavior can cause the very very large file. Infact in customer environment, we noticed this failure, which we suspect is due to the above large file. ---------------------------------------------------------------------------------------------------------------------------------------------------------------- (undercloud) [stack@jsfuc01 ~]$ ./deploy.sh Thu May 28 14:55:37 CEST 2020 Removing the current plan files Uploading new plan files Temporary Swift GET/PUT URL parameters have successfully been updated. Plan updated. Processing templates in the directory /tmp/tripleoclient-ioy26qde/tripleo-heat-templates Action tripleo.parameters.update execution failed: Error validating environment for plan overcloud: ERROR: Request limit exceeded: JSON body size (5005048 bytes) exceeds maximum allowed size (4194304 bytes). None real 2m21.564s user 0m10.136s sys 0m3.549s ---------------------------------------------------------------------------------------------------------------------------------------------------------------- Also I had been searching commits and I noticed 3b8e6f78e19e776c087dc5c3ff225703b5c487bc from tht looks related.
Ok that's a bug where we're continuing to re-add hosts for every deployment. I think that's been fixed but we'll have to dig up the fix and see where it's landed. I've renamed the bug to more closely describe the issue.
*** Bug 1855172 has been marked as a duplicate of this bug. ***
*** Bug 1873107 has been marked as a duplicate of this bug. ***
*** Bug 1879931 has been marked as a duplicate of this bug. ***
According to our records, this should be resolved by python-tripleoclient-12.3.2-1.20200914164928.el8ost. This build is available now.