Skip to content
This repository has been archived by the owner on May 14, 2019. It is now read-only.

Linux Bridge Plugin? #94

Open
rohagan opened this issue Sep 10, 2014 · 5 comments
Open

Linux Bridge Plugin? #94

rohagan opened this issue Sep 10, 2014 · 5 comments

Comments

@rohagan
Copy link

rohagan commented Sep 10, 2014

I know the puppet openstack module utilizes OVS as it's default mechanism driver/plugin, is there a way to utilize a Linux Bridge instead of the default OVS mechanism driver/plugin with the puppet openstack module?

Thanks for any input,

@rohagan rohagan changed the title Linux Bridge? Linux Bridge Mechanism Driver? Sep 10, 2014
@rohagan rohagan changed the title Linux Bridge Mechanism Driver? Linux Bridge Plugin? Sep 10, 2014
@cmurphy
Copy link
Contributor

cmurphy commented Oct 13, 2014

The puppetlabs openstack module doesn't currently provide an interface to use Linux Bridge instead of OVS, but it is available in the neutron module. You could design your own profiles that use the neutron::agents::linuxbridge and neutron::plugins::linuxbridge classes.

It looks like there's a parameter in the openstack class for neutron_mechanism_drivers, but that just gets passed to openstack::common::ovs so that's not actually useful. We could try to move openstack::common::ovs to something like openstack::common::ml2 and make the driver actually configurable. I won't be able to get to that refactor any time soon, but I would be happy to look at pull requests for it.

@rohagan
Copy link
Author

rohagan commented Oct 14, 2014

Thank you for writing me back,

This is exactly what I kind of figured, running neuron separately to utilize the linuxbridge,

But again thank you for your response, and a look at a pull request would also be very much appreciated,

Thanks,

Ryan

Date: Mon, 13 Oct 2014 14:55:28 -0700
From: [email protected]
To: [email protected]
CC: [email protected]
Subject: Re: [puppetlabs-openstack] Linux Bridge Plugin? (#94)

The puppetlabs openstack module doesn't currently provide an interface to use Linux Bridge instead of OVS, but it is available in the neutron module. You could design your own profiles that use the neutron::agents::linuxbridge and neutron::plugins::linuxbridge classes.

It looks like there's a parameter in the openstack class for neutron_mechanism_drivers, but that just gets passed to openstack::common::ovs so that's not actually useful. We could try to move openstack::common::ovs to something like openstack::common::ml2 and make the driver actually configurable. I won't be able to get to that refactor any time soon, but I would be happy to look at pull requests for it.


Reply to this email directly or view it on GitHub. =

@kaazoo
Copy link

kaazoo commented Nov 7, 2014

I also use LinuxBridge instead of OpenvSwitch and made the following changes:

diff --git a/manifests/profile/neutron/agent.pp b/manifests/profile/neutron/agent.pp
index f05ab71..31c1c6e 100644
--- a/manifests/profile/neutron/agent.pp
+++ b/manifests/profile/neutron/agent.pp
@@ -1,5 +1,5 @@
 # The profile to set up a neutron agent
 class openstack::profile::neutron::agent {
   include ::openstack::common::neutron
-  include ::openstack::common::ovs
+#  include ::openstack::common::ovs
 }
diff --git a/manifests/profile/neutron/server.pp b/manifests/profile/neutron/server.pp
index 0f211c9..3a6f0f2 100644
--- a/manifests/profile/neutron/server.pp
+++ b/manifests/profile/neutron/server.pp
@@ -5,7 +5,7 @@ class openstack::profile::neutron::server {
   openstack::resources::firewall { 'Neutron API': port => '9696', }

   include ::openstack::common::neutron
-  include ::openstack::common::ovs
+#  include ::openstack::common::ovs

   Class['::neutron::db::mysql'] -> Exec['neutron-db-sync']
 }
diff --git a/manifests/role/allinone.pp b/manifests/role/allinone.pp
index 0c50195..bdcde3a 100644
--- a/manifests/role/allinone.pp
+++ b/manifests/role/allinone.pp
@@ -13,13 +13,13 @@ class openstack::role::allinone inherits ::openstack::role {
   class { '::openstack::profile::cinder::api': }
   class { '::openstack::profile::nova::compute': }
   class { '::openstack::profile::nova::api': }
-  class { '::openstack::profile::neutron::router': }
+#  class { '::openstack::profile::neutron::router': }
   class { '::openstack::profile::neutron::server': }
   class { '::openstack::profile::heat::api': }
   class { '::openstack::profile::horizon': }
   class { '::openstack::profile::auth_file': }
-  class { '::openstack::setup::sharednetwork': }
-  class { '::openstack::setup::cirros': }
+#  class { '::openstack::setup::sharednetwork': }
+#  class { '::openstack::setup::cirros': }

-  Class['::openstack::profile::ceilometer::api'] -> Class['::openstack::setup::cirros']
+#  Class['::openstack::profile::ceilometer::api'] -> Class['::openstack::setup::cirros']
 }

In my .pp file I added the following:

class { 'neutron::plugins::ml2':
  type_drivers          => ['flat', 'vlan'],
  tenant_network_types  => ['vlan'],
  mechanism_drivers     => ['linuxbridge'],
  flat_networks         => ['physnet1'],
  network_vlan_ranges   => ['physnet1:1000:1100'],
  enable_security_group => true,
}

file { '/etc/neutron/plugins/linuxbridge':
  ensure => directory,
  alias  => 'linuxbridge-confdir',
}

file { '/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini':
  ensure  => link,
  target  => '/etc/neutron/plugin.ini',
  require => File['linuxbridge-confdir'],
  alias   => 'linuxbridge-conffile',
}

class { 'neutron::agents::ml2::linuxbridge':
  physical_interface_mappings => ['physnet1:eth1'],
  require                     => File['linuxbridge-conffile'],
}

class { 'neutron::agents::dhcp':
  interface_driver => 'neutron.agent.linux.interface.BridgeInterfaceDriver',
}

class { 'neutron::agents::l3':
  external_network_bridge => '',
  interface_driver        => 'neutron.agent.linux.interface.BridgeInterfaceDriver',
}

class { 'neutron::agents::lbaas':
  interface_driver => 'neutron.agent.linux.interface.BridgeInterfaceDriver',
}

class { 'neutron::agents::metering':
  interface_driver => 'neutron.agent.linux.interface.BridgeInterfaceDriver',
}

class { 'neutron::agents::vpnaas':
  interface_driver => 'neutron.agent.linux.interface.BridgeInterfaceDriver',
}

@cmurphy
Copy link
Contributor

cmurphy commented Apr 27, 2015

This is in our backlog here but I don't think we will have the chance to work on it soon. If someone wants to take this on I think it would be reasonably simple to add this support to the module, as @kaazoo demonstrated.

@kaazoo
Copy link

kaazoo commented Oct 9, 2015

By the way, add forked this repository and added optional LinuxBridge support:
https://github.com/kaazoo/puppetlabs-openstack

Might not be fully complete, but works for me so far.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants