<div dir="ltr">Hi,<div><br></div><div>Actually I know only the "ironicless" usecases of routed provider networks.<br></div><div>As I know neutron has the hostname from the agent (even from config or if not defined from socket.gethostname()).</div><div>For a similar feature (which uses placement guaranteed minimum bandwidth) there was a change that come from a </div><div>bug with perhaps Ironic usecases:</div><div><a href="https://review.opendev.org/696600">https://review.opendev.org/696600</a><br></div><div>the bug: <a href="https://bugs.launchpad.net/neutron/+bug/1853840">https://bugs.launchpad.net/neutron/+bug/1853840</a></div><div><br></div><div>The solution was to introduce a new config option called resource_provider_hypervisors </div><div>(<a href="https://review.opendev.org/#/c/696600/3/neutron/conf/plugins/ml2/drivers/mech_sriov/agent_common.py">https://review.opendev.org/#/c/696600/3/neutron/conf/plugins/ml2/drivers/mech_sriov/agent_common.py</a> )</div><div>Without having experience with ironic based on your description your problem with routed provider nets is</div><div>similar and the config option should be used to make segments plugin use that for resource provider / host aggregate creation.</div><div><br></div><div>Regards</div><div>Lajos</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">양유석 <<a href="mailto:ileixe@gmail.com">ileixe@gmail.com</a>> ezt írta (időpont: 2020. febr. 10., H, 10:42):<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi stacker,<br>
<br>
I'm trying to use ironic routed network from stein.<br>
<br>
I do not sure how the normal workflow works in nova/neutron/ironic<br>
side for routed network, so I sent this mail to get more information.<br>
>From what I understand for ironic routed network, what I did<br>
<br>
- Enable segment plugin in Neutron<br>
- Add ironic 'node'<br>
- Add ironic port with physical network<br>
- network-baremetal plugin reports neutron from all ironic nodes.<br>
   - It sent 'physical_network' and 'ironic node uuid' to Neutron<br>
     - It make 'segmenthostmapping' entry with ('node uuid', 'segment_id')<br>
 -  Add segment for the subnet.<br>
<br>
At last step, I encountered the strange. In detail,<br>
- Neutron subnet update callback call nova inventory registration<br>
  - Neutron ask placement to create resource provider for segment<br>
  - Neutron ask nova to create aggregate for segment<br>
  - Neutron request placement to associate nova aggregate to resource provider.<br>
  - (Bug?) Neutron add hosts came from 'segmenthostmapping' to nova aggregate<br>
<br>
Since 'segmenthostmapping' has 'ironic node uuid' for host, nova deny<br>
to register the host to aggregate emitting the exception like below<br>
<br>
Returning 404 to user: Compute host<br>
27004f76-2606-4e4a-980e-a385a01f04de could not be found. __call__<br>
<br>
What's strange for me is why neutron ask 'ironic node uuid' for host<br>
when nova aggregate only look for host from HostMapping which came<br>
from 'host' in compute_nodes.<br>
<br>
I could not find the code related to how 'ironic node uuid' can be<br>
registered in nova aggregate.<br>
<br>
<br>
Please someone who knows what's going on shed light on me.<br>
<br>
Thanks.<br>
<br>
</blockquote></div>