← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1822801] Re: Baremetal port's host_id get updated during instance restart

 

Reviewed:  https://review.opendev.org/649345
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=091aa3289694a27704e48931a579f50a3179b036
Submitter: Zuul
Branch:    master

commit 091aa3289694a27704e48931a579f50a3179b036
Author: Hamdy Khader <hamdyk@xxxxxxxxxxxx>
Date:   Tue Apr 2 17:26:14 2019 +0300

    Do not perform port update in case of baremetal instance.
    
    In case of a baremetal instance, the instance's port binding:host_id
    gets updated during instance reboot to the nova compute host id by
    the periodic task: _heal_instance_info_cache. This regression was
    introduced in commit: I75fd15ac2a29e420c09499f2c41d11259ca811ae
    
    This is an un-desirable change as ironic virt driver did the original
    port binding, nova should not update the value.
    In case of a baremetal port, the binding:host_id represents the ironic
    node_uuid. In case of a SmartNIC(baremetal) port[1] the binding:host_id
    represent the SmartNIC hostname and it MUST not change since ironic
    relies on that information as well as the Neutron agent that runs on
    the SmartNIC.
    
    A new API method was added, "manages_port_bindings()", to ComputeDriver
    that defaults to False, and overriden in IronicDriver to True.
    
    A call to this API method is now made in _heal_instance_info_cache() to
    prevent port update for instance ports in case the underlying
    ComputeDriver manages the port binding.
    
    [1] I658754f7f8c74087b0aabfdef222a2c0b5698541
    
    Change-Id: I47d1aba17cd2e9fff67846cc243c8fbd9ac21659
    Closes-Bug: #1822801


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1822801

Title:
  Baremetal port's host_id get updated during instance restart

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) stein series:
  Confirmed

Bug description:
  In case of baremetal overcloud, the instance ports gets updated during instance reboot[1] to change host_id
  to be the nova compute host_id.

  This way baremetal ports' host_id will be changed to indicate the nova
  host_id instead of ironic node uuid.

  In case of normal instance or even baremetal instance it wouldn't be a problem but in case of SmartNIC
  baremetal instance the port's host_id is important to communicate with the relevant Neutron agent running on the SmartNIC as the port's host_id contains the SmartNIC host name.

  
  Reproduce:
  - deploy baremetal overcloud 
  - create baremetal instance
  - after creation complete, check port details and notice binding_host_id=overcloud-controller-0.localdomain

  
  [1] https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L7191

  
  Nova version:
  ()[root@overcloud-controller-0 /]# rpm -qa | grep nova
  puppet-nova-14.4.1-0.20190322112825.740f45a.el7.noarch
  python2-nova-19.0.0-0.20190322140639.d7c8924.el7.noarch
  python2-novajoin-1.1.2-0.20190322123935.e8b18c4.el7.noarch
  openstack-nova-compute-19.0.0-0.20190322140639.d7c8924.el7.noarch
  python2-novaclient-13.0.0-0.20190311121537.62bf880.el7.noarch
  openstack-nova-common-19.0.0-0.20190322140639.d7c8924.el7.noarch

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1822801/+subscriptions


References