[tripleo][ironic] What I had to do to get standalone ironic working with ovn enabled

Harald Jensås hjensas at redhat.com
Sun Feb 24 23:12:20 UTC 2019


On Wed, 2019-02-20 at 19:21 -0500, Lars Kellogg-Stedman wrote:
> On Thu, Feb 21, 2019 at 10:54:33AM +1300, Steve Baker wrote:
> > > 1. I added to my deploy:
> > > 
> > >       -e /usr/share/tripleo-heat-
> > > templates/environment/services/neutron-ovn-standalone.yaml
> > > 
> > >     With this change, `openstack tripleo container image prep`
> > >     correctly detected that ovn was enabled and generated the
> > >     appropriate image parameters.
> > 
> > Can you provide your full deployment command. I think it is most
> > likely that
> > the order of environment files is resulting in an incorrect value
> > in
> > NeutronMechanismDrivers. You may be able to confirm this by looking
> > at the
> > resulting plan file with something like:
> 
> Upon closer inspection, I believe you are correct.  The problem is
> twofold:
> 
> - First, by default, NeutronMechanismDrivers is unset. So if you
>   simply run:
> 
>     openstack tripleo container image prepare -e container-prepare-
> parameters.yaml
> 
>   ...you get no OVN images.
> 
> - Second, the ironic.yaml environment file explicitly sets:
> 
>     NeutronMechanismDrivers: ['openvswitch', 'baremetal']
> 
>   So if ironic.yaml is included after something like
>   neutron-ovn-standalone.yaml, it will override the value.
> 
> Is this one bug or two? Arguably, ironic.yaml shouldn't be setting
> NeutronMechanismDrivers explicitly like that (although I don't know
> if
> there is an "append" mechanism).  But shouldn't
> NeutronMechanismDrivers default to 'ovn', if that's the default
> mechanism now?
> 

The 'ovn' driver does not support VNIC_BAREMETAL type, so we should
load a mechanism driver that does support VNIC_BAREMETAL when using
ironic. With the switch to ovn by default in TripleO maybe ironic.yaml
environment file should be updated to set:
  NeutronMechanismDrivers: ['ovn', 'baremetal']

We could also add the DCHP agent and Metadata agent, as these also seem
to be required for ironic use, according previous messages in this
thread?

  OS::TripleO::Services::NeutronDhcpAgent: /usr/share/openstack-
tripleo-heat-templates/deployment/neutron/neutron-dhcp-container-
puppet.yaml
  NeutronEnableForceMetadata: true
  OS::TripleO::Services::NeutronMetadataAgent: /usr/share/openstack-
tripleo-heat-templates/deployment/neutron/neutron-metadata-container-
puppet.yaml





https://github.com/openstack/networking-ovn/blob/master/networking_ovn/ml2/mech_driver.py#L133-L134





More information about the openstack-discuss mailing list