Red Hat Bugzilla – Bug 1277652
[Docs][RFE][HardProv] Document how to determine which IPs are assigned to which host
Last modified: 2017-12-18 23:22:02 EST
Description of problem: The network isolation mechanism in TripleO will assign static IP addresses to each interface on each node. Those IPs correspond to Neutron ports, but we need a list of IPs per node. There isn't an easy way to tell which Neutron ports relate to which nodes. Version-Release number of selected component (if applicable): OSP-D/RDO-M 7 & 7.1 How reproducible: 100% Steps to Reproduce: 1. Deploy overcloud 2. Run "neutron port-list" on the undercloud 3. Actual results: There isn't a clear mapping of the Neutron ports to the nodes. Expected results: Heat should have the data about which Neutron ports have been assigned to a node. We just need a way to report on this. Alternately, we could use the nova-to-neutron-port mapping to do the same. Additional info: I see this eventually being implemented as an OSP-D command line function. Even putting together a set of Heat (or Nova/Neutron) commands that would extract this information would be helpful, and we can work from there.
We want to assign predetermined IP addresses to more than just the control plane. E.G. we are also using Internal API and Storage (for Ceph Mon and OSD) networks. don't really need to break out the load balancer from the HAProxy which is provided on the controllers; we don't want to forgo the included load balancer, in order to specify the VIP addresses. One idea, is to be able to specify an IP map which should be consulted when IP addresses are requested and allocated during an overcloud deployment. E.G. we can specify a static address for any IP, in any network we've chosen to isolate, as long as that IP falls within the correct subnet CIDR and range as specified in our network environment yaml file. I hope this description helps clarify what we are looking for.
Is it possible to set static IP address to compute nodes as well on deploy?
(In reply to Jeremy from comment #6) > Is it possible to set static IP address to compute nodes as well on deploy? That's not possible at this time, although that feature is on the roadmap.
This bug did not make the OSP 8.0 release. It is being deferred to OSP 10.
We have implemented pre-selecting IP addresses for compute nodes as well as controllers. We still require a reporting mechanism which will output the host-to-IP-address mapping for all nodes.
It seems like quite a simple workflow to implement in tripleo-common: get all ports attached to instances, right? Or does it involve querying heat as well? Anyway, proposing to 12.
It appears that the command "openstack stack output show overcloud HostsEntry" gives us most of what we want in terms of IP->Host assignments. [stack@host01 ~]$ openstack stack output show overcloud HostsEntry --max-width 80 +--------------+---------------------------------------------------------------+ | Field | Value | +--------------+---------------------------------------------------------------+ | description | The content that should be appended to your /etc/hosts if you | | | want to get | | | hostname-based access to the deployed nodes (useful for | | | testing without | | | setting up a DNS). | | | | | output_key | HostsEntry | | output_value | 172.17.0.10 overcloud-controller-0.localdomain overcloud- | | | controller-0 | | | 10.8.145.18 overcloud-controller-0.external.localdomain | | | overcloud-controller-0.external | | | 172.17.0.10 overcloud-controller-0.internalapi.localdomain | | | overcloud-controller-0.internalapi | | | 172.18.0.15 overcloud-controller-0.storage.localdomain | | | overcloud-controller-0.storage | | | 172.21.2.12 overcloud-controller-0.storagemgmt.localdomain | | | overcloud-controller-0.storagemgmt | | | 172.16.0.15 overcloud-controller-0.tenant.localdomain | | | overcloud-controller-0.tenant | | | 10.8.146.13 overcloud-controller-0.management.localdomain | | | overcloud-controller-0.management | | | 10.8.146.13 overcloud-controller-0.ctlplane.localdomain | | | overcloud-controller-0.ctlplane | | | | | | 172.17.0.21 overcloud-compute-0.localdomain overcloud- | | | compute-0 | | | 10.8.146.12 overcloud-compute-0.external.localdomain | | | overcloud-compute-0.external | | | 172.17.0.21 overcloud-compute-0.internalapi.localdomain | | | overcloud-compute-0.internalapi | | | 172.18.0.20 overcloud-compute-0.storage.localdomain | | | overcloud-compute-0.storage | | | 10.8.146.12 overcloud-compute-0.storagemgmt.localdomain | | | overcloud-compute-0.storagemgmt | | | 172.16.0.16 overcloud-compute-0.tenant.localdomain overcloud- | | | compute-0.tenant | | | 10.8.146.12 overcloud-compute-0.management.localdomain | | | overcloud-compute-0.management | | | 10.8.146.12 overcloud-compute-0.ctlplane.localdomain | | | overcloud-compute-0.ctlplane | | | | | | | | | | | | | | | 10.8.145.16 overcloud.localdomain | | | 10.8.146.7 overcloud.ctlplane.localdomain | | | 172.17.0.19 overcloud.internalapi.localdomain | | | 172.18.0.19 overcloud.storage.localdomain | | | 172.21.2.16 overcloud.storagemgmt.localdomain | +--------------+---------------------------------------------------------------+ To associate the hosts with Ironic nodes the following command can be used to map the uuid/name to the display_name in instance_info (e.g. overcloud-controller-0) [stack@host01 ~]$ openstack baremetal node list --fields uuid name instance_info --max-width 80 +-----------------------------------+------+-----------------------------------+ | UUID | Name | Instance Info | +-----------------------------------+------+-----------------------------------+ | 962e5384-5893-45ba- | None | {u'root_gb': u'40', | | 9bb7-17cd04120fae | | u'display_name': u'overcloud- | | | | controller-0', u'image_source': | | | | u'a8cc4098-bacd-475b- | | | | bd76-33d7562dae11', | | | | u'capabilities': | | | | u'{"boot_option": "local"}', | | | | u'memory_mb': u'4096', u'vcpus': | | | | u'1', u'local_gb': u'557', | | | | u'configdrive': u'******', | | | | u'swap_mb': u'0'} | | 14b06bc2-44f3-4827-a862-717d2fb5c | None | {u'root_gb': u'40', | | 01d | | u'display_name': u'overcloud- | | | | compute-0', u'image_source': | | | | u'a8cc4098-bacd-475b- | | | | bd76-33d7562dae11', | | | | u'capabilities': | | | | u'{"boot_option": "local"}', | | | | u'memory_mb': u'4096', u'vcpus': | | | | u'1', u'local_gb': u'557', | | | | u'configdrive': u'******', | | | | u'swap_mb': u'0'} | +-----------------------------------+------+-----------------------------------+ Are these commands adequate get the host/IP mapping or do we want a new command which makes it more apparent?
Closing as per triage conversation.
Reopening so we can use this bug to track required docs changes.
Clearing target release pending docs triage. Updated Version to reflect the release to which this bug applies.
Adding a rough estimate for effort assuming that comment 14 captures the full requirement.
Assigning to Deepti for review.
I've updated the Doc text to add the commands. I've included the output for clarity but you can remove if not needed.
Looks good to me, merged.