Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1066948

Summary: foreman ovs_tunnel_types must be required when enable_tunneling = true
Product: Red Hat OpenStack Reporter: Ofer Blaut <oblaut>
Component: openstack-foreman-installerAssignee: Jason Guiditta <jguiditt>
Status: CLOSED CURRENTRELEASE QA Contact: Ofer Blaut <oblaut>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.0CC: aberezin, mgiles, morazi, nyechiel, oblaut, ohochman, ramon, rhos-maint, yeylon
Target Milestone: ---Keywords: UserExperience, ZStream
Target Release: 4.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-09-08 16:55:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
tunnel types on compute node
none
ovs tunnel types on networker
none
neutron networker hosts group parameters none

Description Ofer Blaut 2014-02-19 11:07:06 UTC
Description of problem:

foreman ovs_tunnel_types must be required (on compute and network controller )when enable_tunneling = true

If user will not config it when vxlan is used L2 agent will be dead.

from /var/log/neutron/openvswitch-agent.log 

2014-02-19 12:07:45.561 13031 ERROR neutron.plugins.openvswitch.agent.ovs_neutron_agent [-] (u'Invalid tunnel type specificed: %s', '') Agent terminated!


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.configure setup  with vxlan
2.don't override default ovs_tunnel_types paremater 
3. run puppet agent -t -v on host and check openstack-status ovs agent & logs

Actual results:


Expected results:


Additional info:

Comment 1 Jason Guiditta 2014-02-19 14:49:59 UTC
We can add validator to handle this in puppet, which means the puppet agent run would fail and report back to foreman so it could be read in the ui/reports section.  Foreman has its own validators, but scripting that would be a pretty large undertaking, I think

Comment 2 Marcelo Giles 2014-03-06 19:07:18 UTC
This is still an issue in the latest available RPM on RHN: openstack-foreman-installer-1.0.4-1.el6ost.noarch.

I tried to make a change in /usr/share/openstack-foreman-installer/puppet/modules/quickstack/manifests/params.pp

--- params.pp.orig      2014-03-06 10:15:54.147000027 -0800
+++ params.pp.new       2014-03-06 10:16:53.230000029 -0800
@@ -70,7 +70,7 @@ class quickstack::params {
   $configure_ovswitch            = 'true'
   $enable_tunneling              = 'True'
   $ovs_vxlan_udp_port            = '4789'
-  $ovs_tunnel_types              = []
+  $ovs_tunnel_types              = 'gre'
 
   # neutron plugin config
   $neutron_core_plugin           = 'neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2'

But this generates a new issue on the nodes when running the puppet agent:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: join(): Requires array to work with at /usr/share/packstack/modules/neutron/manifests/agents/ovs.pp:94 on node networker.example.com

Bottom line is that the "ovs_tunnel_types" variable should be exposed in the UI under the Hosts Group section so that it can be changed.

Comment 3 Jason Guiditta 2014-03-06 21:07:59 UTC
Created attachment 871642 [details]
tunnel types on compute node

Comment 4 Jason Guiditta 2014-03-06 21:09:15 UTC
Created attachment 871643 [details]
ovs tunnel types on networker

Comment 5 Jason Guiditta 2014-03-06 21:14:31 UTC
Ok, I just added 2 screenshots showing the ovs_tunnel_types param exposed in the hostgroup ui for networker and compute node.  Marcelo, params.pp is not the best place to try to override for foreman, you want to do that via the hostgroup ui.  Also, as shown by the default [] in that ui, the datatype is expected to be an array, so try updating with ['gre'] and let me know if that works for you.  This still looks to me like a validation issue if anything.  Note that the screenshot is taken from a fresh installer of  openstack-foreman-installer-.0.4-1.el6ost.noarch, so you should see the same thing that I do.

Comment 6 Marcelo Giles 2014-03-07 20:38:11 UTC
Created attachment 872023 [details]
neutron networker hosts group parameters

Comment 7 Marcelo Giles 2014-03-07 20:41:17 UTC
Jason, I also have openstack-foreman-installer-1.0.4-1 installed but I don't see the ovs_tunnel_types parameter exposed in the UI (see attached screenshot).

rpm -qa | grep foreman
foreman-mysql-1.3.0.2-1.el6sat.noarch
foreman-selinux-1.3.0-1.el6sat.noarch
foreman-mysql2-1.3.0.2-1.el6sat.noarch
openstack-foreman-installer-1.0.4-1.el6ost.noarch
rubygem-foreman_api-0.1.6-1.el6sat.noarch
foreman-1.3.0.2-1.el6sat.noarch
ruby193-rubygem-foreman_openstack_simplify-0.0.6-5.el6ost.noarch
foreman-proxy-1.3.0-3.el6sat.noarch
foreman-installer-1.3.0-1.el6sat.noarch

Thanks.

Comment 8 Jason Guiditta 2014-03-07 21:11:20 UTC
Marcelo, hmm, that is puzzling.  Is this a fresh install? Upgrades don't always work as desired, so if it is not fresh, that is one possibility.  Also, if you look in /usr/share/openstack-foreman-installer/bin/seeds.rb (around line 293), do you see a line like this?

"ovs_tunnel_types"              => [],

If not, then perhaps something went wrong on install.  If you would like help in debugging that, please capture the install output to a file, and run foreman_server.sh with 'bash -x' to get as much output as we can.

Comment 9 Marcelo Giles 2014-03-07 22:09:41 UTC
This is an upgraded foreman system. It was originally openstack-foreman-installer-1.0.3-1.el6ost.noarch. 

I then run yum update when the new errata bits came out on RHN on Tue/Wed. 

So that may be it. What do you recommend to do in this scenario, where it is not a fresh install? 

And the line is there:

grep ovs_tunnel_types /usr/share/openstack-foreman-installer/bin/seeds.rb
  "ovs_tunnel_types"              => [],

Thanks.

Comment 10 Jason Guiditta 2014-03-07 23:13:11 UTC
Marcelo, it depends, largely on how much you have changed the default parameters for the hostgroups.  If you changed them yourself in seeds.rb, then the easiest thing to do would be to rerun seeds, just like we do in the installer:

sudo -u foreman scl enable ruby193 "cd /usr/share/foreman; rake db:seed RAILS_ENV=production FOREMAN_PROVISIONING=$FOREMAN_PROVISIONING"

However, if you have NOT edited seeds.rb, in this instance, you may just want to go into more -> configuration -> puppet classes, search for quickstack::neutron, and then set the override to true on the new variables you are not seeing in the ui (and make sure the type shown there is an array).  Make sure you hit Submit at the bottom of the page! 

Like I said, updates are not very strongly supported in the codebase right now, sadly.  I have a proposal on another BZ to do so, but I have not been allocated time to implement it.

Let me know if either of those options works for you.