For overcloud commands involving Bifrost (e.g. overcloud provision), we
use the Bifrost dynamic inventory. This runs bifrost_inventory.py which
gathers node and port information for all bare metal hosts. Because this
gets executed for each node in our inventory, it produces a large number
of API requests to Ironic, which grows as the number of hosts increases.
Halve the number of calls using the BIFROST_NODE_NAMES environment
variable, which restricts fetching port information to just the node
being queried. bifrost_inventory.py still performs one call for each
node, which must be fixed separately in Bifrost [1].
Time to query overcloud nodes' hardware introspection data for 44 hosts:
* before patch: 823 seconds
* after patch: 415 seconds
With the patch to Bifrost [1], this is further reduced to 46 seconds.
[1] https://review.opendev.org/c/openstack/bifrost/+/882950
Change-Id: I341075115442a38c327e3ade74b81b1b9e7e85c6