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

Lars Kellogg-Stedman lars at redhat.com
Wed Feb 20 04:15:55 UTC 2019


I'm using the tripleo standalone install to set up an Ironic test
environment. With recent tripleo master, the deploy started failing
because the DockerOvn*Image parameters weren't defined.  Here's what I
did to get everything working:

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.

2. environments/services/ironic.yaml sets:

     NeutronMechanismDrivers: ['openvswitch', 'baremetal']

   Since I didn't want openvswitch enabled in this deployment, I
   explicitly set the mechanism drivers in a subsequent environment
   file:

     NeutronMechanismDrivers: ['ovn', 'baremetal']

3. The neutron-ovn-standalone.yaml environment explicitly disables
   the non-ovn neutron services.  Ironic requires the
   services of the neutron_dhcp_agent, so I had to add:

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

   With this in place, the ironic nodes were able to receive dhcp
   responses and were able to boot.

3. In order to provide the baremetal nodes with a route to the nova
   metadata service, I added the following to my deploy:

     NeutronEnableForceMetadata: true

   This provides the baremetal nodes with a route to 169.254.169.254
   via the neutron dhcp namespace.

4. In order get the metadata service to respond correctly, I also had
   to enable the neutron metadata agent:

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

This returned my Ironic deployment to a functioning state: I can
successfully boot baremetal nodes and provide them with configuration
information via the metadata service.

I'm curious if this was the *correct* solution, or if there was a
better method of getting things working.

-- 
Lars Kellogg-Stedman <lars at redhat.com> | larsks @ {irc,twitter,github}
http://blog.oddbit.com/                |



More information about the openstack-discuss mailing list