We are looking at contrail now and it does have some downsides to their arhitecture. Because it overrides most of the APIs it lags behind the more recent branches. In addition it assumes control over many functions that sometimes lag behind. However the compelling reason for us was the ability to use L3 functionality to "bridge" networks between different sites. If this could be implement from an L3 perspective (API as well), that would be best.<span></span><br><br>On Friday, April 1, 2016, Dan Sneddon <<a href="mailto:dsneddon@redhat.com">dsneddon@redhat.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 04/01/2016 03:18 PM, Adam Lawson wrote:<br>
> Hi Dan - thanks I think that answers the core plugin question. What is<br>
> Contrail doing with the Neutron service plugin? Are there two plugins?<br>
><br>
> //adam<br>
><br>
> */<br>
> Adam Lawson/*<br>
><br>
> AQORN, Inc.<br>
> 427 North Tatnall Street<br>
> Ste. 58461<br>
> Wilmington, Delaware 19801-2230<br>
> Toll-free: (844) 4-AQORN-NOW ext. 101<br>
> International: +1 302-387-4660<br>
> Direct: +1 916-246-2072<br>
><br>
> On Fri, Apr 1, 2016 at 2:13 PM, Dan Sneddon <<a href="javascript:;" onclick="_e(event, 'cvml', 'dsneddon@redhat.com')">dsneddon@redhat.com</a><br>
> <mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'dsneddon@redhat.com')">dsneddon@redhat.com</a>>> wrote:<br>
><br>
> On 04/01/2016 02:07 PM, Dan Sneddon wrote:<br>
> > On 04/01/2016 01:07 PM, Adam Lawson wrote:<br>
> >> The Contrail team that said they are using their network product<br>
> with<br>
> >> OpenStack without requiring a mechanism driver with the ML2 plugin.<br>
> >> More specifically, they said they don't use or need ML2. I<br>
> didn't have<br>
> >> a chance to ask them to clarify so I'm wondering how that works and<br>
> >> what is current best practice? I think the individual misspoke but I<br>
> >> wanted to see if this is actually being done today.<br>
> >><br>
> >> Perhaps they replaced ML2 with something - exactly what though?<br>
> >><br>
> >> //adam<br>
> >><br>
> >> */<br>
> >> Adam Lawson/*<br>
> >><br>
> >> AQORN, Inc.<br>
> >> 427 North Tatnall Street<br>
> >> Ste. 58461<br>
> >> Wilmington, Delaware 19801-2230<br>
> >> Toll-free: (844) 4-AQORN-NOW ext. 101<br>
> >> International: +1 302-387-4660<br>
> >> Direct: +1 916-246-2072<br>
> >><br>
> >><br>
> >> _______________________________________________<br>
> >> OpenStack-operators mailing list<br>
> >> <a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-operators@lists.openstack.org')">OpenStack-operators@lists.openstack.org</a><br>
> <mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-operators@lists.openstack.org')">OpenStack-operators@lists.openstack.org</a>><br>
> >><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators</a><br>
> >><br>
> ><br>
> > ML2 is what's known as a "core driver" for Neutron. This means<br>
> that the<br>
> > main API implementation is done inside this driver. The ML2 driver is<br>
> > modular, and can load sub-drivers (mechanism and type drivers) to<br>
> > implement the specific actions such as creating virtual ethernet<br>
> ports.<br>
> ><br>
> > Contrail replaces this driver with the NeutronPluginContrailCoreV2,<br>
> > which implements the main API itself, without subdrivers. There is no<br>
> > support planned for ML2 mechanism or type drivers within the Contrail<br>
> > plugin. Contrail implements its own intelligent virtual ethernet<br>
> ports,<br>
> > each of which is routing-aware, and the routing is made redundant<br>
> using<br>
> > dynamic multipath routing. This replaces the Open vSwitch<br>
> > bridge/patch/port mechanism.<br>
> ><br>
> > The current documentation [1] for Contrail/RDO covers Packstack. The<br>
> > initial installation is done with ML2+OVS, then the Neutron<br>
> > configuration is modified to load the Contrail driver instead.<br>
> ><br>
> > In OSP-Director 8, it is possible to load the Contrail driver during<br>
> > installation instead of ML2. This is done by including the<br>
> environment<br>
> > file:<br>
> ><br>
> > openstack overcloud deploy --templates /path/to/templates \<br>
> > -e /path/to/templates/environments/neutron-opencontrail.yaml \<br>
> > [...]<br>
> ><br>
> > This environment file will set the following:<br>
> ><br>
> > ###########<br>
> > resource_registry:<br>
> > OS::TripleO::ControllerExtraConfigPre:<br>
> > ../puppet/extraconfig/pre_deploy/controller/neutron-opencontrail.yaml<br>
> > OS::TripleO::ComputeExtraConfigPre:<br>
> > ../puppet/extraconfig/pre_deploy/compute/neutron-opencontrail.yaml<br>
> ><br>
> > parameter_defaults:<br>
> > NeutronCorePlugin:<br>
> ><br>
> neutron_plugin_contrail.plugins.opencontrail.contrail_plugin.NeutronPluginContrailCoreV2<br>
> > NeutronServicePlugins:<br>
> ><br>
> neutron_plugin_contrail.plugins.opencontrail.loadbalancer.plugin.LoadBalancerPlugin<br>
> > NeutronEnableDHCPAgent: false<br>
> > NeutronEnableL3Agent: false<br>
> > NeutronEnableMetadataAgent: false<br>
> > NeutronEnableOVSAgent: false<br>
> > NeutronEnableTunnelling: false<br>
> > ############<br>
> ><br>
> > The files in the resource_registry section contain configuration<br>
> > settings such as the IP address of the Contrail API server, and the<br>
> > authentication credentials.<br>
> ><br>
> > In the parameter_defaults section, the NeutronCorePlugin is changed<br>
> > from ML2 to the Contrail core plugin. The loadbalancer plugin is also<br>
> > relegated to the Contrail load balancer plugin.<br>
> ><br>
> > [1] -<br>
> <a href="http://www.opencontrail.org/rdo-openstack-opencontrail-integration/" target="_blank">http://www.opencontrail.org/rdo-openstack-opencontrail-integration/</a><br>
> ><br>
> > The same kind of approach applies to some other 3rd-party Neutron<br>
> > plugin providers, although there are also some that use ML2 and<br>
> do the<br>
> > customization at the mechanism and type driver layer. Does that<br>
> answer<br>
> > your questions?<br>
> ><br>
><br>
> I probably should have used TripleO in the above example to reduce<br>
> confusion (OSP-Director is Red Hat's name for the supported version of<br>
> TripleO, which uses the same source code).<br>
><br>
> In any case, it was just an example of how Contrail completely replaces<br>
> ML2 when you install it in any OpenStack deployment.<br>
><br>
> --<br>
> Dan Sneddon | Principal OpenStack Engineer<br>
> <a href="javascript:;" onclick="_e(event, 'cvml', 'dsneddon@redhat.com')">dsneddon@redhat.com</a> <mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'dsneddon@redhat.com')">dsneddon@redhat.com</a>> |<br>
> <a href="http://redhat.com/openstack" target="_blank">redhat.com/openstack</a> <<a href="http://redhat.com/openstack" target="_blank">http://redhat.com/openstack</a>><br>
> 650.254.4025 <tel:650.254.4025> | dsneddon:irc @dxs:twitter<br>
><br>
> _______________________________________________<br>
> OpenStack-operators mailing list<br>
> <a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-operators@lists.openstack.org')">OpenStack-operators@lists.openstack.org</a><br>
> <mailto:<a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-operators@lists.openstack.org')">OpenStack-operators@lists.openstack.org</a>><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators</a><br>
><br>
><br>
<br>
Yes, there is a core Neutron plugin, and a separate plugin which<br>
handles LBaaS. The Contrail load balancer plugin adds L7 load<br>
balancing, so you can use the content of the request to determine the<br>
server handling the request. More info here [1].<br>
<br>
Contrail have a unique solution that I find very interesting and<br>
compelling. I don't have any opinion on whether it works better than<br>
any other Neutron plugin, because that depends on which plugin meets<br>
your specific needs.<br>
<br>
[1] - <a href="http://www.opencontrail.org/load-balancer-as-a-service-in-contrail/" target="_blank">http://www.opencontrail.org/load-balancer-as-a-service-in-contrail/</a><br>
<br>
--<br>
Dan Sneddon | Principal OpenStack Engineer<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'dsneddon@redhat.com')">dsneddon@redhat.com</a> | <a href="http://redhat.com/openstack" target="_blank">redhat.com/openstack</a><br>
650.254.4025 | dsneddon:irc @dxs:twitter<br>
<br>
_______________________________________________<br>
OpenStack-operators mailing list<br>
<a href="javascript:;" onclick="_e(event, 'cvml', 'OpenStack-operators@lists.openstack.org')">OpenStack-operators@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators</a><br>
</blockquote>