The spec you sent is similar to my problem in that agent sent the 'host' which does not compatible with nova 'host'. But one more things which confuse me is for routed network (ironicless / + ironic) where the resource providers "IPV4_ADDRESS" used in nova side? I could not find any code in nova/placement and from the past conversation (https://review.opendev.org/#/c/656885/), now I suspect it does not implemented. How then nova choose right compute node in a segment? Am i missing something or 'resource_provider_hypervisor' you mentioned are now used for general routed network? Thanks 2020년 2월 10일 (월) 오후 9:10, Lajos Katona <katonalala@gmail.com>님이 작성:
Hi,
Actually I know only the "ironicless" usecases of routed provider networks. As I know neutron has the hostname from the agent (even from config or if not defined from socket.gethostname()). For a similar feature (which uses placement guaranteed minimum bandwidth) there was a change that come from a bug with perhaps Ironic usecases: https://review.opendev.org/696600 the bug: https://bugs.launchpad.net/neutron/+bug/1853840
The solution was to introduce a new config option called resource_provider_hypervisors (https://review.opendev.org/#/c/696600/3/neutron/conf/plugins/ml2/drivers/mec... ) Without having experience with ironic based on your description your problem with routed provider nets is similar and the config option should be used to make segments plugin use that for resource provider / host aggregate creation.
Regards Lajos
양유석 <ileixe@gmail.com> ezt írta (időpont: 2020. febr. 10., H, 10:42):
Hi stacker,
I'm trying to use ironic routed network from stein.
I do not sure how the normal workflow works in nova/neutron/ironic side for routed network, so I sent this mail to get more information. From what I understand for ironic routed network, what I did
- Enable segment plugin in Neutron - Add ironic 'node' - Add ironic port with physical network - network-baremetal plugin reports neutron from all ironic nodes. - It sent 'physical_network' and 'ironic node uuid' to Neutron - It make 'segmenthostmapping' entry with ('node uuid', 'segment_id') - Add segment for the subnet.
At last step, I encountered the strange. In detail, - Neutron subnet update callback call nova inventory registration - Neutron ask placement to create resource provider for segment - Neutron ask nova to create aggregate for segment - Neutron request placement to associate nova aggregate to resource provider. - (Bug?) Neutron add hosts came from 'segmenthostmapping' to nova aggregate
Since 'segmenthostmapping' has 'ironic node uuid' for host, nova deny to register the host to aggregate emitting the exception like below
Returning 404 to user: Compute host 27004f76-2606-4e4a-980e-a385a01f04de could not be found. __call__
What's strange for me is why neutron ask 'ironic node uuid' for host when nova aggregate only look for host from HostMapping which came from 'host' in compute_nodes.
I could not find the code related to how 'ironic node uuid' can be registered in nova aggregate.
Please someone who knows what's going on shed light on me.
Thanks.