<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 9/10/14, 6:54 PM, Kevin Benton
wrote:<br>
</div>
<blockquote
cite="mid:CAO_F6JPC5B5-2QcK3LcxaDJCchDp6Us9tjn6N6S448GNNHr9ZQ@mail.gmail.com"
type="cite">
<div dir="ltr">Being in the incubator won't help with this if it's
a different repo as well.</div>
</blockquote>
Agreed. <br>
<br>
Given the requirement for GBP to intercept API requests, the
potential couplings between policy drivers, ML2 mechanism drivers,
and even service plugins (L3 router), and the fact Neutron doesn't
have a stable [service] plugin API, along with the goal to
eventually merge GBP into Neutron, I'd rank the options as follows
in descending order:<br>
<br>
1) Merge the GBP patches to the neutron repo early in Kilo and
iterate, just like we had planned for Juno<span
class="moz-smiley-s3"><span> ;-) </span></span>.<br>
<br>
2) Like 1, but with the code initially in a "preview" subtree to
clarify its level of stability and support, and to facilitate
packaging it as an optional component.<br>
<br>
3) Like 1, but merge to a feature branch in the neutron repo and
iterate there.<br>
<br>
4) Develop in an official neutron-incubator repo, with neutron core
reviews of each GBP patch.<br>
<br>
5) Develop in StackForge, without neutron core reviews.<br>
<br>
<br>
Here's how I see these options in terms of the various
considerations that have come up during this discussion:<br>
<br>
* Options 1, 2 and 3 most easily support whatever coupling is needed
with the rest of Neutron. Options 4 and 5 would sometimes require
synchronized changes across repos since dependencies aren't in terms
of stable interfaces. <br>
<br>
* Options 1, 2 and 3 provide a clear path to eventually graduate GBP
into a fully supported Neutron feature, without loss of git history.
Option 4 would have some hope of eventually merging into the neutron
repo due to the code having already had core reviews. With option 5,
reviewing and merging a complete GBP implementation from StackForge
into the neutron repo would be a huge effort, with significant risk
that reviewers would want design changes not practical to make at
that stage.<br>
<br>
* Options 1 and 2 take full advantage of existing review, CI,
packaging and release processes and mechanisms. All the other
options require extra work to put these in place.<br>
<br>
* Options 1 and 2 can easily make GBP consumable by early adopters
through normal channels such as devstack and OpenStack
distributions. The other options all require the operator or the
packager to pull GBP code from a different source than the base
Neutron code.<br>
<br>
* Option 1 relies on the historical understanding that new Neutron
extension APIs are not initially considered stable, and incompatible
changes can occur in future releases. Options 2, 3 and 4 make this
explicit. Option 5 really has nothing to do with Neutron.<br>
<br>
* Option 5 allows rapid iteration by the GBP team, without waiting
for core review. This is essential during experimentation and
prototyping, but at least some participants consider the GBP
implementation to be well beyond that phase.<br>
<br>
* Options 3, 4, and 5 potentially decouple the GBP release schedule
from the Neutron release schedule. With options 1 or 2, GBP
snapshots would be included in all normal Neutron releases. With any
of the options, the GBP team, vendors, or distributions would be
able to back-port arbitrary snapshots of GBP to a branch off the
stable/juno branch (in the neutron repo itself or in a clone) to
allow early adopters to use GBP with Juno-based OpenStack
distributions.<br>
<br>
<br>
Does the above make some sense? What have I missed? <br>
<br>
Of course this all assumes there is consensus that we should proceed
with GBP, that we should continue by iterating the currently
proposed design and code, and that GBP should eventually become part
of Neutron. These assumptions may still be the real issues<span
class="moz-smiley-s2"><span> :-( </span></span>. If we can't
agree on whether GBP is in an experimentation/rapid-prototyping
phase vs. an almost-ready-to-beta-test phase, I don't see how can we
get consensus on the next steps for its development.<br>
<br>
-Bob<br>
<blockquote
cite="mid:CAO_F6JPC5B5-2QcK3LcxaDJCchDp6Us9tjn6N6S448GNNHr9ZQ@mail.gmail.com"
type="cite">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Wed, Sep 10, 2014 at 7:22 AM, Robert
Kukura <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:kukura@noironetworks.com" target="_blank">kukura@noironetworks.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"><span
class=""><br>
On 9/9/14, 7:51 PM, Jay Pipes wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
On 09/09/2014 06:57 PM, Kevin Benton wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Jay,<br>
<br>
The main component that won't work without direct
integration is<br>
enforcing policy on calls directly to Neutron and
calls between the<br>
plugins inside of Neutron. However, that's only one
component of GBP.<br>
All of the declarative abstractions, rendering of
policy, etc can be<br>
experimented with here in the stackforge project until
the incubator is<br>
figured out.<br>
</blockquote>
<br>
OK, thanks for the explanation Kevin, that helps!<br>
</blockquote>
</span>
I'll add that there is likely to be a close coupling between
ML2 mechanism drivers and corresponding GBP policy drivers
for some of the back-end integrations. These will likely
share local state such as connections to controllers, and
may interact with each other as part of processing core and
GBP API requests. Development, review, and packaging of
these would be facilitated by having them on the same branch
in the same repo, but its probably not absolutely necessary.<br>
<br>
-Bob
<div class="HOEnZb">
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Best,<br>
-jay<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tue, Sep 9, 2014 at 12:01 PM, Jay Pipes <<a
moz-do-not-send="true"
href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a><br>
<mailto:<a moz-do-not-send="true"
href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>>>
wrote:<br>
<br>
On 09/04/2014 12:07 AM, Sumit Naiksatam wrote:<br>
<br>
Hi,<br>
<br>
There's been a lot of lively discussion on
GBP a few weeks back<br>
and we<br>
wanted to drive forward the discussion on
this a bit more. As you<br>
might imagine, we're excited to move this
forward so more people can<br>
try it out. Here are the options:<br>
<br>
* Neutron feature branch: This presumably
allows the GBP feature<br>
to be<br>
developed independently, and will perhaps
help in faster iterations.<br>
There does seem to be a significant
packaging issue [1] with this<br>
approach that hasn’t been completely
addressed.<br>
<br>
* Neutron-incubator: This allows a path to
graduate into<br>
Neutron, and<br>
will be managed by the Neutron core team.
That said, the proposal is<br>
under discussion and there are still some
open questions [2].<br>
<br>
* Stackforge: This allows the GBP team to
make rapid and iterative<br>
progress, while still leveraging the
OpenStack infra. It also<br>
provides<br>
option of immediately exposing the existing
implementation to early<br>
adopters.<br>
<br>
Each of the above options does not preclude
moving to the other<br>
at a later time.<br>
<br>
Which option do people think is more
preferable?<br>
<br>
(We could also discuss this in the weekly
GBP IRC meeting on<br>
Thursday:<br>
<a moz-do-not-send="true"
href="https://wiki.openstack.org/__wiki/Meetings/Neutron_Group___Policy"
target="_blank">https://wiki.openstack.org/__wiki/Meetings/Neutron_Group___Policy</a>
<<a moz-do-not-send="true"
href="https://wiki.openstack.org/wiki/Meetings/Neutron_Group_Policy"
target="_blank">https://wiki.openstack.org/wiki/Meetings/Neutron_Group_Policy</a>>)<br>
<br>
Thanks!<br>
<br>
[1]<br>
<a moz-do-not-send="true"
href="http://lists.openstack.org/__pipermail/openstack-dev/2014-__August/044283.html"
target="_blank">http://lists.openstack.org/__pipermail/openstack-dev/2014-__August/044283.html</a><br>
<<a moz-do-not-send="true"
href="http://lists.openstack.org/pipermail/openstack-dev/2014-August/044283.html"
target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2014-August/044283.html</a>><br>
[2]<br>
<a moz-do-not-send="true"
href="http://lists.openstack.org/__pipermail/openstack-dev/2014-__August/043577.html"
target="_blank">http://lists.openstack.org/__pipermail/openstack-dev/2014-__August/043577.html</a><br>
<<a moz-do-not-send="true"
href="http://lists.openstack.org/pipermail/openstack-dev/2014-August/043577.html"
target="_blank">http://lists.openstack.org/pipermail/openstack-dev/2014-August/043577.html</a>><br>
<br>
<br>
Hi all,<br>
<br>
IIRC, Kevin was saying to me in IRC that GBP
really needs to live<br>
in-tree due to it needing access to various
internal plugin points<br>
and to be able to call across different plugin
layers/drivers inside<br>
of Neutron.<br>
<br>
If this is the case, how would the stackforge
GBP project work if it<br>
wasn't a fork of Neutron in its entirety?<br>
<br>
Just curious,<br>
-jay<br>
<br>
<br>
_________________________________________________<br>
OpenStack-dev mailing list<br>
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.__org">OpenStack-dev@lists.openstack.__org</a><br>
<mailto:<a moz-do-not-send="true"
href="mailto:OpenStack-dev@lists.openstack.org"
target="_blank">OpenStack-dev@lists.openstack.org</a>><br>
<a moz-do-not-send="true"
href="http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev"
target="_blank">http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev</a>
<<a moz-do-not-send="true"
href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>><br>
<br>
<br>
<br>
<br>
-- <br>
Kevin Benton<br>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a moz-do-not-send="true"
href="mailto:OpenStack-dev@lists.openstack.org"
target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a moz-do-not-send="true"
href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
</blockquote>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a moz-do-not-send="true"
href="mailto:OpenStack-dev@lists.openstack.org"
target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a moz-do-not-send="true"
href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a moz-do-not-send="true"
href="mailto:OpenStack-dev@lists.openstack.org"
target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a moz-do-not-send="true"
href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>Kevin Benton</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
OpenStack-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>