<div dir="ltr"><br>Hi Dan!<div><br></div><div>thanks for the testing! I've got couple of questions...</div><div><br></div><div> <br></div><div><div class="gmail_quote"><div dir="ltr">po 16. 10. 2017 v 20:04 odesílatel Dan Prince <<a href="mailto:dprince@redhat.com">dprince@redhat.com</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 2017-10-04 at 15:10 +0200, Dmitry Tantsur wrote:<br>
> (top-posting, as it is not a direct response to a specific line)<br>
><br>
> This is your friendly reminder that we're not quite near<br>
> containerized<br>
> ironic-inspector. The THT for it has probably never been tested at<br>
> all, and the<br>
> iptables magic we do may simply not be containers-compatible. Milan<br>
> would<br>
> appreciate any help with his ironic-inspector rework.<br>
<br>
<br>
I spent the time today to test our (very old) ironic-inspector patch<br>
from Pike.<br>
<br>
<a href="https://review.openstack.org/#/c/457822/" rel="noreferrer" target="_blank">https://review.openstack.org/#/c/457822/</a><br>
<br>
Aside from one tweak I made to run dnsmasq as root (this is how systemd<br>
runs this process as well) the service seems to be working perfectly.<br>
Demo recording of what I did below:<br>
<br>
<a href="https://asciinema.org/a/wGtvZwE65yoasKrRS8NeGMsrH" rel="noreferrer" target="_blank">https://asciinema.org/a/wGtvZwE65yoasKrRS8NeGMsrH</a><br>
<br></blockquote><div><br></div><div>Does it mean dnsmasq was run from a stand-alone container?</div><div><br></div><div>Could you please point me (in the patch probably) to the spot where we configure inspector container to be able to talk to the iptables to filter the DHCP traffic for dnsmasq?</div><div><br></div><div>I guess this configuration binds the dnsmasq container to be "scheduled" together with inspector container on the same node (because of the iptables).</div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Also, just want to re-interate that the t-h-t architecture is also<br>
capable as a baremetal installation tool. While I would like to see<br>
inspector containerized if we really need to run it on baremetal this<br>
architecture would support that fine. It is the same architecture we<br>
use for the overcloud and as such it supports mixing and matching<br>
containers alongside baremetal services.</blockquote><div> </div><div>Nice! </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
If that doesn't make sense let me just say that whatever you plan on<br>
doing in Queens to Ironic if you plan on supporting that w/ Puppet on<br>
instack-undercloud I have no doubts about being able to support it in<br>
the architecture I'm proposing we adopt here... whether we run the<br>
service on baremetal or in a container.<br></blockquote><div><br></div><div>What I'd vote for would be to pack both inspector and its dnsmasq sidekick into a single container instead, and adopt the dnsmasq filter[1] instead of the iptables filter. This will make the inspector a self-contained service/container one could "schedule" where ever they needed.<br></div><div><br></div><div>Cheers,</div><div>milan</div><div><br></div><div>[1] <a href="https://review.openstack.org/#/q/topic:rebasing_filter+(status:open+OR+status:merged)">https://review.openstack.org/#/q/topic:rebasing_filter+(status:open+OR+status:merged)</a></div><div><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Dan<br>
<br>
><br>
> Dmitry<br>
><br>
> On 10/04/2017 03:00 PM, Dan Prince wrote:<br>
> > On Tue, 2017-10-03 at 16:03 -0600, Alex Schultz wrote:<br>
> > > On Tue, Oct 3, 2017 at 2:46 PM, Dan Prince <<a href="mailto:dprince@redhat.com" target="_blank">dprince@redhat.com</a>><br>
> > > wrote:<br>
> > > ><br>
> > > ><br>
> > > > On Tue, Oct 3, 2017 at 3:50 PM, Alex Schultz <aschultz@redhat.c<br>
> > > > om><br>
> > > > wrote:<br>
> > > > ><br>
> > > > > On Tue, Oct 3, 2017 at 11:12 AM, Dan Prince <dprince@redhat.c<br>
> > > > > om><br>
> > > > > wrote:<br>
> > > > > > On Mon, 2017-10-02 at 15:20 -0600, Alex Schultz wrote:<br>
> > > > > > > Hey Dan,<br>
> > > > > > ><br>
> > > > > > > Thanks for sending out a note about this. I have a few<br>
> > > > > > > questions<br>
> > > > > > > inline.<br>
> > > > > > ><br>
> > > > > > > On Mon, Oct 2, 2017 at 6:02 AM, Dan Prince <dprince@redha<br>
> > > > > > > <a href="http://t.co" rel="noreferrer" target="_blank">t.co</a><br>
> > > > > > > m><br>
> > > > > > > wrote:<br>
> > > > > > > > One of the things the TripleO containers team is<br>
> > > > > > > > planning<br>
> > > > > > > > on<br>
> > > > > > > > tackling<br>
> > > > > > > > in Queens is fully containerizing the undercloud. At<br>
> > > > > > > > the<br>
> > > > > > > > PTG we<br>
> > > > > > > > created<br>
> > > > > > > > an etherpad [1] that contains a list of features that<br>
> > > > > > > > need<br>
> > > > > > > > to be<br>
> > > > > > > > implemented to fully replace instack-undercloud.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > I know we talked about this at the PTG and I was<br>
> > > > > > > skeptical<br>
> > > > > > > that this<br>
> > > > > > > will land in Queens. With the exception of the<br>
> > > > > > > Container's<br>
> > > > > > > team<br>
> > > > > > > wanting this, I'm not sure there is an actual end user<br>
> > > > > > > who is<br>
> > > > > > > looking<br>
> > > > > > > for the feature so I want to make sure we're not just<br>
> > > > > > > doing<br>
> > > > > > > more work<br>
> > > > > > > because we as developers think it's a good idea.<br>
> > > > > ><br>
> > > > > > I've heard from several operators that they were actually<br>
> > > > > > surprised we<br>
> > > > > > implemented containers in the Overcloud first. Validating a<br>
> > > > > > new<br>
> > > > > > deployment framework on a single node Undercloud (for<br>
> > > > > > operators) before<br>
> > > > > > overtaking their entire cloud deployment has a lot of merit<br>
> > > > > > to<br>
> > > > > > it IMO.<br>
> > > > > > When you share the same deployment architecture across the<br>
> > > > > > overcloud/undercloud it puts us in a better position to<br>
> > > > > > decide<br>
> > > > > > where to<br>
> > > > > > expose new features to operators first (when creating the<br>
> > > > > > undercloud or<br>
> > > > > > overcloud for example).<br>
> > > > > ><br>
> > > > > > Also, if you read my email again I've explicitly listed the<br>
> > > > > > "Containers" benefit last. While I think moving the<br>
> > > > > > undercloud<br>
> > > > > > to<br>
> > > > > > containers is a great benefit all by itself this is more of<br>
> > > > > > a<br>
> > > > > > "framework alignment" in TripleO and gets us out of<br>
> > > > > > maintaining<br>
> > > > > > huge<br>
> > > > > > amounts of technical debt. Re-using the same framework for<br>
> > > > > > the<br>
> > > > > > undercloud and overcloud has a lot of merit. It effectively<br>
> > > > > > streamlines<br>
> > > > > > the development process for service developers, and 3rd<br>
> > > > > > parties<br>
> > > > > > wishing<br>
> > > > > > to integrate some of their components on a single node. Why<br>
> > > > > > be<br>
> > > > > > forced<br>
> > > > > > to create a multi-node dev environment if you don't have to<br>
> > > > > > (aren't<br>
> > > > > > using HA for example).<br>
> > > > > ><br>
> > > > > > Lets be honest. While instack-undercloud helped solve the<br>
> > > > > > old<br>
> > > > > > "seed" VM<br>
> > > > > > issue it was outdated the day it landed upstream. The<br>
> > > > > > entire<br>
> > > > > > premise of<br>
> > > > > > the tool is that it uses old style "elements" to create the<br>
> > > > > > undercloud<br>
> > > > > > and we moved away from those as the primary means driving<br>
> > > > > > the<br>
> > > > > > creation<br>
> > > > > > of the Overcloud years ago at this point. The new<br>
> > > > > > 'undercloud_deploy'<br>
> > > > > > installer gets us back to our roots by once again sharing<br>
> > > > > > the<br>
> > > > > > same<br>
> > > > > > architecture to create the over and underclouds. A demo<br>
> > > > > > from<br>
> > > > > > long ago<br>
> > > > > > expands on this idea a bit:  <a href="https://www.youtube.com/watch" rel="noreferrer" target="_blank">https://www.youtube.com/watch</a>?<br>
> > > > > > v=y1<br>
> > > > > > qMDLAf26<br>
> > > > > > Q&t=5s<br>
> > > > > ><br>
> > > > > > In short, we aren't just doing more work because developers<br>
> > > > > > think it is<br>
> > > > > > a good idea. This has potential to be one of the most<br>
> > > > > > useful<br>
> > > > > > architectural changes in TripleO that we've made in years.<br>
> > > > > > Could<br>
> > > > > > significantly decrease our CI reasources if we use it to<br>
> > > > > > replace the<br>
> > > > > > existing scenarios jobs which take multiple VMs per job. Is<br>
> > > > > > a<br>
> > > > > > building<br>
> > > > > > block we could use for other features like and HA<br>
> > > > > > undercloud.<br>
> > > > > > And yes,<br>
> > > > > > it does also have a huge impact on developer velocity in<br>
> > > > > > that<br>
> > > > > > many of<br>
> > > > > > us already prefer to use the tool as a means of<br>
> > > > > > streamlining<br>
> > > > > > our<br>
> > > > > > dev/test cycles to minutes instead of hours. Why spend<br>
> > > > > > hours<br>
> > > > > > running<br>
> > > > > > quickstart Ansible scripts when in many cases you can just<br>
> > > > > > doit.sh. htt<br>
> > > > > > ps://<a href="http://github.com/dprince/undercloud_containers/blob/master/d" rel="noreferrer" target="_blank">github.com/dprince/undercloud_containers/blob/master/d</a><br>
> > > > > > oit.<br>
> > > > > > sh<br>
> > > > > ><br>
> > > > ><br>
> > > > > So like I've repeatedly said, I'm not completely against it<br>
> > > > > as I<br>
> > > > > agree<br>
> > > > > what we have is not ideal.  I'm not -2, I'm -1 pending<br>
> > > > > additional<br>
> > > > > information. I'm trying to be realistic and reduce our risk<br>
> > > > > for<br>
> > > > > this<br>
> > > > > cycle.<br>
> > > ><br>
> > > ><br>
> > > > This reduces our complexity greatly I think in that once it is<br>
> > > > completed<br>
> > > > will allow us to eliminate two project (instack and instack-<br>
> > > > undercloud) and<br>
> > > > the maintenance thereof. Furthermore, as this dovetails nice<br>
> > > > with<br>
> > > > the<br>
> > > > Ansible<br>
> > > ><br>
> > ><br>
> > > I agree. So I think there's some misconceptions here about my<br>
> > > thoughts<br>
> > > on this effort. I am not against this effort. I am for this<br>
> > > effort<br>
> > > and<br>
> > > wish to see more of it. I want to see the effort communicated<br>
> > > publicly<br>
> > > via ML and IRC meetings.  What I am against switching the default<br>
> > > undercloud method until the containerization of the undercloud<br>
> > > has<br>
> > > the<br>
> > > appropriate test coverage and documentation to ensure it is on<br>
> > > par<br>
> > > with what it is replacing.  Does this make sense?<br>
> > ><br>
> > > > ><br>
> > > > >   IMHO doit.sh is not acceptable as an undercloud installer<br>
> > > > > and<br>
> > > > > this is what I've been trying to point out as the actual<br>
> > > > > impact<br>
> > > > > to the<br>
> > > > > end user who has to use this thing.<br>
> > > ><br>
> > > ><br>
> > > > doit.sh is an example of where the effort is today. It is<br>
> > > > essentially the<br>
> > > > same stuff we document online here:<br>
> > > > <a href="http://tripleo.org/install/containers_deployment/undercloud.htm" rel="noreferrer" target="_blank">http://tripleo.org/install/containers_deployment/undercloud.htm</a><br>
> > > > l.<br>
> > > ><br>
> > > > Similar to quickstart it is just something meant to help you<br>
> > > > setup<br>
> > > > a dev<br>
> > > > environment.<br>
> > > ><br>
> > ><br>
> > > Right, providing something that the non-developer uses vs<br>
> > > providing<br>
> > > something for hacking are two separate things. Making it<br>
> > > consumable<br>
> > > by<br>
> > > the end user (not developer) is what I'm pointing out that needs<br>
> > > to<br>
> > > be<br>
> > > accounted for.  This is a recurring theme that I have pushed for<br>
> > > in<br>
> > > OpenStack to ensure that the operator (actual end user) is<br>
> > > accounted<br>
> > > for when making decisions.  Tripleo has not done a good job of<br>
> > > this<br>
> > > either.  Sure the referenced documentation works for the dev<br>
> > > case,<br>
> > > but<br>
> > > probably not the actual deployer/operator case.<br>
> ><br>
> > This will come in time. What I would encourage us to do upstream is<br>
> > make as much progress on this in Queens as possible so that getting<br>
> > to<br>
> > the point of polishing our documentation is the focus... instead of<br>
> > the<br>
> > remaining work.<br>
> ><br>
> > And to be clear all of this work advocates for the Operator just as<br>
> > much as it does for the developer. No regressions, improved Ansible<br>
> > feedback on the CLI, potential for future features around multitude<br>
> > and<br>
> >   alignment of the architecture around containers. Boom! I think<br>
> > operators will like all of this. We can and will document it.<br>
> ><br>
> > >    There needs to be a<br>
> > > migration guide or documentation of old configuration -> new<br>
> > > configuration for the people who are familiar with non-<br>
> > > containerized<br>
> > > undercloud vs containerized undercloud.  Do we have all the use<br>
> > > cases<br>
> > > accounted for etc. etc. This is the part that I don't think we<br>
> > > have<br>
> > > figured out and which is what I'm asking that we make sure we<br>
> > > account<br>
> > > for with this.<br>
> ><br>
> > The use case is the replace instack-undercloud with no feature<br>
> > regressions.<br>
> ><br>
> > ><br>
> > > > ><br>
> > > > > We have an established<br>
> > > > > installation method for the undercloud, that while isn't<br>
> > > > > great,<br>
> > > > > isn't<br>
> > > > > a bash script with git fetches, etc.  So as for the<br>
> > > > > implementation,<br>
> > > > > this is what I want to see properly flushed out prior to<br>
> > > > > accepting<br>
> > > > > this feature as complete for Queens (and the new default).<br>
> > > ><br>
> > > ><br>
> > > > Of course the feature would need to prove itself before it<br>
> > > > becomes<br>
> > > > the new<br>
> > > > default Undercloud. I'm trying to build consensus and get the<br>
> > > > team<br>
> > > > focused<br>
> > > > on these things.<br>
> > > ><br>
> > > > What strikes me as odd is your earlier comment about " I want<br>
> > > > to<br>
> > > > make sure<br>
> > > > we're not just doing more work because we as developers think<br>
> > > > it's<br>
> > > > a good<br>
> > > > idea." I'm a developer and I do think this is a good idea.<br>
> > > > Please<br>
> > > > don't try<br>
> > > > to de-motivate this effort just because you happen to believe<br>
> > > > this.<br>
> > > > It was<br>
> > > > accepted for Pike and unfortunately we didn't get enough buy in<br>
> > > > early enough<br>
> > > > to get focus on it. Now that is starting to change and just as<br>
> > > > it<br>
> > > > is you are<br>
> > > > suggesting we not keep it a priority?<br>
> > > ><br>
> > ><br>
> > > Once again, I agree and I am on board to the end goal that I<br>
> > > think is<br>
> > > trying to be achieved by this effort. What I am currently not on<br>
> > > board<br>
> > > with is the time frame of for Queens based on concerns previously<br>
> > > mentioned.  This is not about trying to demotivating an effort.<br>
> > > It's<br>
> > > about ensuring quality and something that is consumable by an<br>
> > > additional set of end users of the software (the<br>
> > > operator/deployer,<br>
> > > not developer).  Given that we have not finished the overcloud<br>
> > > deployment and are still working on fixing items found for that,<br>
> > > I<br>
> > > personally feel it's a bit early to consider switching the<br>
> > > undercloud<br>
> > > default install to a containerized method.  That being said, I<br>
> > > have<br>
> > > repeatedly stated that if we account for updates, upgrades, docs<br>
> > > and<br>
> > > the operator UX there's no problems with this effort. I just<br>
> > > don't<br>
> > > think it's realistic given current timelines (~9 weeks).<br>
> > >   Please feel<br>
> > > free to provide information/patches to the contrary.<br>
> ><br>
> > Whether this feature makes the release or not I think it is too<br>
> > early<br>
> > to say. What I can say is the amount of work remaining on the<br>
> > Undercloud feature is IMO a good bit less than we knocked out in<br>
> > the<br>
> > last release:<br>
> ><br>
> > <a href="https://etherpad.openstack.org/p/tripleo-composable-containers-unde" rel="noreferrer" target="_blank">https://etherpad.openstack.org/p/tripleo-composable-containers-unde</a><br>
> > rclo<br>
> > ud<br>
> ><br>
> > And regardless of whether we make the release or not there is a<br>
> > huge<br>
> > value to moving the work forward now... if only to put us in a<br>
> > better<br>
> > position for the next release.<br>
> ><br>
> > I've been on the containers team for a while now and I'm more<br>
> > familiar<br>
> > with the velocity that we could handle. Let us motivate ourselves<br>
> > and<br>
> > give updates along the way over the next 2 months as this effort<br>
> > progresses. Please don't throw "cold water" on why you don't think<br>
> > we<br>
> > are going to make the release (especially as PTL, this can be quite<br>
> > harmful to the effort for some). In fact, lets just stop talking<br>
> > about<br>
> > Queens, and Rocky entirely. I think we can agree that this feature<br>
> > is a<br>
> > high priority and have people move the effort forward as much as we<br>
> > can.<br>
> ><br>
> > This *is* a very important feature. It can be fun to work on. Let<br>
> > those<br>
> > of us who are doing the work finish scoping it and at least have a<br>
> > chance at making progress before you throw weight against us not<br>
> > making<br>
> > the release months from now.<br>
> ><br>
> > >   I have not said<br>
> > > don't work on it.  I just want to make sure we have all the<br>
> > > pieces in<br>
> > > place needed to consider it a proper replacement for the existing<br>
> > > undercloud installation (by M2).  If anything there's probably<br>
> > > more<br>
> > > work that needs to be done and if we want to make it a priority<br>
> > > to<br>
> > > happen, then it needs to be documented and communicated so folks<br>
> > > can<br>
> > > assist as they have cycles.<br>
> > ><br>
> > > ><br>
> > > > ><br>
> > > > > I would<br>
> > > > > like to see a plan of what features need to be added (eg. the<br>
> > > > > stuff on<br>
> > > > > the etherpad), folks assigned to do this work, and estimated<br>
> > > > > timelines.  Given that we shouldn't be making major feature<br>
> > > > > changes<br>
> > > > > after M2 (~9 weeks), I want to get an understanding of what<br>
> > > > > is<br>
> > > > > realistically going to make it.  If after reviewing the<br>
> > > > > initial<br>
> > > > > details we find that it's not actually going to make M2, then<br>
> > > > > let's<br>
> > > > > agree to this now rather than trying to force it in at the<br>
> > > > > end.<br>
> > > ><br>
> > > ><br>
> > > > All of this is forthcoming. Those details will come in time.<br>
> > > ><br>
> > > > ><br>
> > > > ><br>
> > > > > I know you've been a great proponent of the containerized<br>
> > > > > undercloud<br>
> > > > > and I agree it offers a lot more for development efforts. But<br>
> > > > > I<br>
> > > > > just<br>
> > > > > want to make sure that we are getting all the feedback we can<br>
> > > > > before<br>
> > > > > continuing down this path.  Since, as you point out, a bunch<br>
> > > > > of<br>
> > > > > this<br>
> > > > > work is already available for consumption by developers, I<br>
> > > > > don't<br>
> > > > > see<br>
> > > > > making it the new default as a requirement for Queens unless<br>
> > > > > it's<br>
> > > > > a<br>
> > > > > fully implemented and tested.  There's nothing stopping folks<br>
> > > > > from<br>
> > > > > using it now and making incremental improvements during<br>
> > > > > Queens<br>
> > > > > and we<br>
> > > > > commit to making it the new default for Rocky.<br>
> > > > ><br>
> > > > > The point of this cycle was supposed to be more<br>
> > > > > stablization/getting<br>
> > > > > all the containers in place. Doing something like this seems<br>
> > > > > to<br>
> > > > > go<br>
> > > > > against what we were actually trying to achieve.  I'd rather<br>
> > > > > make<br>
> > > > > smaller incremental progress with your proposal being the end<br>
> > > > > goal and<br>
> > > > > agreeing that perhaps Rocky is more realistic for the default<br>
> > > > > cut<br>
> > > > > over.<br>
> > > ><br>
> > > ><br>
> > > > I thought the point of this release was full containerization?<br>
> > > > And<br>
> > > > part of<br>
> > > > that is containerizing the undercloud too right?<br>
> > > ><br>
> > ><br>
> > > Not that I was aware of. Others have asked because they have not<br>
> > > been<br>
> > > aware that it included the undercloud.  Given that we are wanting<br>
> > > to<br>
> > > eventually look to kubernetes maybe we don't need to containerize<br>
> > > the<br>
> > > undercloud as it may be it could be discarded with that switch.<br>
> ><br>
> > I don't think so. The whole point of the initial Undercloud work<br>
> > was<br>
> > that it aligns the architectures. Using Kubernetes to maintain an<br>
> > Undercloud would also be a valid approach I think. Perhaps a bit<br>
> > overkill but it would be a super useful dev environment tool to<br>
> > develop<br>
> >   Kubernetes services on regardless.<br>
> ><br>
> > And again, there are no plans to containerize instack-undercloud<br>
> > components as is. I think we have agreement that using containers<br>
> > in<br>
> > the Undercloud is a high priority and we need to move this effort<br>
> > forwards.<br>
> ><br>
> > > That's probably a longer discussion. It might need to be<br>
> > > researched<br>
> > > which is why it's important to understand why we're doing the<br>
> > > containerization effort and what exactly it entails.  Given that<br>
> > > I<br>
> > > don't think we're looking to deploy kubernetes via<br>
> > > THT/tripleo-puppet/containers, I wonder what impact this would<br>
> > > have<br>
> > > with this effort?  That's probably a conversation for another<br>
> > > thread.<br>
> > ><br>
> > > > ><br>
> > > > ><br>
> > > > > > Lastly, this isn't just a containers team thing. We've been<br>
> > > > > > using the<br>
> > > > > > undercloud_deploy architecture across many teams to help<br>
> > > > > > develop for<br>
> > > > > > almost an entire cycle now. Huge benefits. I would go as<br>
> > > > > > far as<br>
> > > > > > saying<br>
> > > > > > that undercloud_deploy was *the* biggest feature in Pike<br>
> > > > > > that<br>
> > > > > > enabled<br>
> > > > > > us to bang out a majority of the docker/service templates<br>
> > > > > > in<br>
> > > > > > tripleo-<br>
> > > > > > heat-templates.<br>
> > > > > ><br>
> > > > > > >   Given that etherpad<br>
> > > > > > > appears to contain a pretty big list of features, are we<br>
> > > > > > > going to be<br>
> > > > > > > able to land all of them by M2?  Would it be beneficial<br>
> > > > > > > to<br>
> > > > > > > craft a<br>
> > > > > > > basic spec related to this to ensure we are not missing<br>
> > > > > > > additional<br>
> > > > > > > things?<br>
> > > > > ><br>
> > > > > > I'm not sure there is a lot of value in creating a spec at<br>
> > > > > > this<br>
> > > > > > point.<br>
> > > > > > We've already got an approved blueprint for the feature in<br>
> > > > > > Pike<br>
> > > > > > here: h<br>
> > > > > > ttps://<a href="http://blueprints.launchpad.net/tripleo/+spec/containerized" rel="noreferrer" target="_blank">blueprints.launchpad.net/tripleo/+spec/containerized</a><br>
> > > > > > -<br>
> > > > > > undercloud<br>
> > > > > ><br>
> > > > > > I think we might get more velocity out of grooming the<br>
> > > > > > etherpad<br>
> > > > > > and<br>
> > > > > > perhaps dividing this work among the appropriate teams.<br>
> > > > > ><br>
> > > > ><br>
> > > > > That's fine, but I would like to see additional efforts made<br>
> > > > > to<br>
> > > > > organize this work, assign folks and add proper timelines.<br>
> > > > ><br>
> > > > > > ><br>
> > > > > > > > Benefits of this work:<br>
> > > > > > > ><br>
> > > > > > > >   -Alignment: aligning the undercloud and overcloud<br>
> > > > > > > > installers gets<br>
> > > > > > > > rid<br>
> > > > > > > > of dual maintenance of services.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > I like reusing existing stuff. +1<br>
> > > > > > ><br>
> > > > > > > >   -Composability: tripleo-heat-templates and our new<br>
> > > > > > > > Ansible<br>
> > > > > > > > architecture around it are composable. This means any<br>
> > > > > > > > set<br>
> > > > > > > > of<br>
> > > > > > > > services<br>
> > > > > > > > can be used to build up your own undercloud. In other<br>
> > > > > > > > words<br>
> > > > > > > > the<br>
> > > > > > > > framework here isn't just useful for "underclouds". It<br>
> > > > > > > > is<br>
> > > > > > > > really<br>
> > > > > > > > the<br>
> > > > > > > > ability to deploy Tripleo on a single node with no<br>
> > > > > > > > external<br>
> > > > > > > > dependencies. Single node TripleO installer. The<br>
> > > > > > > > containers<br>
> > > > > > > > team<br>
> > > > > > > > has<br>
> > > > > > > > already been leveraging existing (experimental)<br>
> > > > > > > > undercloud_deploy<br>
> > > > > > > > installer to develop services for Pike.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > Is this something that is actually being asked for or is<br>
> > > > > > > this<br>
> > > > > > > just an<br>
> > > > > > > added bonus because it allows developers to reduce what<br>
> > > > > > > is<br>
> > > > > > > actually<br>
> > > > > > > being deployed for testing?<br>
> > > > > ><br>
> > > > > > There is an implied ask for this feature when a new<br>
> > > > > > developer<br>
> > > > > > starts to<br>
> > > > > > use TripleO. Right now resource bar is quite high for<br>
> > > > > > TripleO.<br>
> > > > > > You have<br>
> > > > > > to have a multi-node development environment at the very<br>
> > > > > > least<br>
> > > > > > (one<br>
> > > > > > undercloud node, and one overcloud node). The ideas we are<br>
> > > > > > talking<br>
> > > > > > about here short circuits this in many cases... where if<br>
> > > > > > you<br>
> > > > > > aren't<br>
> > > > > > testing HA services or Ironic you could simple use<br>
> > > > > > undercloud_deploy to<br>
> > > > > > test tripleo-heat-template changes on a single VM. Less<br>
> > > > > > resources, and<br>
> > > > > > much less time spent learning and waiting.<br>
> > > > > ><br>
> > > > ><br>
> > > > > IMHO I don't think the undercloud install is the limiting<br>
> > > > > factor<br>
> > > > > for<br>
> > > > > new developers and I'm not sure this is actually reducing<br>
> > > > > that<br>
> > > > > complexity.  It does reduce the amount of hardware needed to<br>
> > > > > develop<br>
> > > > > some items, but there's a cost in complexity by moving the<br>
> > > > > configuration to THT which is already where many people<br>
> > > > > struggle.  As<br>
> > > > > I previously mentioned, there's nothing stopping us from<br>
> > > > > promoting the<br>
> > > > > containerized undercloud as a development tool and ensuring<br>
> > > > > it's<br>
> > > > > full<br>
> > > > > featured before switching to it as the default at a later<br>
> > > > > date.<br>
> > > ><br>
> > > ><br>
> > > > Because the new undercloud_deploy installer uses t-h-t we get<br>
> > > > containers for<br>
> > > > free. Additionally as we convert over to Ansible instead of<br>
> > > > Heat<br>
> > > > software<br>
> > > > deployments we also get better operator feedback there as well.<br>
> > > > Woudn't it<br>
> > > > be nice to have an Undercloud installer driven by Ansible<br>
> > > > instead<br>
> > > > of Python<br>
> > > > and tripleo-image-elements?<br>
> > ><br>
> > > Yup, and once again I recognize this as a benefit.<br>
> > ><br>
> > > ><br>
> > > > The reason I linked in doit.sh above (and if you actually go<br>
> > > > and<br>
> > > > look at the<br>
> > > > recent patches) we are already wiring these things up right now<br>
> > > > (before M1!)<br>
> > > > and it looks really nice. As we eventually move away from<br>
> > > > Puppet<br>
> > > > for<br>
> > > > configuration that too goes away. So I think the idea here is a<br>
> > > > net-reduction in complexity because we no longer have to<br>
> > > > maintain<br>
> > > > instack-undercloud, puppet modules, and elements.<br>
> > > ><br>
> > > > It isn't that the undercloud install is a limiting factor. It<br>
> > > > is<br>
> > > > that the<br>
> > > > set of services making up your "Undercloud" can be anything you<br>
> > > > want because<br>
> > > > t-h-t supports all of our services. Anything you want with<br>
> > > > minimal<br>
> > > > t-h-t,<br>
> > > > Ansible, and containers. This means you can effectively develop<br>
> > > > on<br>
> > > > a single<br>
> > > > node for many cases and it will just work in a multi-node<br>
> > > > Overcloud<br>
> > > > setup<br>
> > > > too because we have the same architecture.<br>
> > > ><br>
> > ><br>
> > > My concern is making sure we aren't moving too fast and<br>
> > > introducing<br>
> > > more regressions/bugs/missing use cases/etc. My hope is by<br>
> > > documenting<br>
> > > all of this, ensuring we have proper expectations around a<br>
> > > definition<br>
> > > of done (and time frames), and allowing for additional review, we<br>
> > > will<br>
> > > reduce the risk introduced by this switch.  These types of things<br>
> > > align with what we talked about at the PTG in during the retro[0]<br>
> > > (see: start define definition of done,  start status reporting on<br>
> > > ML,<br>
> > > stop over committing, stop big change without tests, less<br>
> > > complexity,<br>
> > > etc, etc).  This stuff's complicated, let's make sure we do it<br>
> > > right.<br>
> > ><br>
> > > Thanks,<br>
> > > -Alex<br>
> > ><br>
> > > [0] <a href="http://people.redhat.com/aschultz/denver-ptg/tripleo-ptg-retr" rel="noreferrer" target="_blank">http://people.redhat.com/aschultz/denver-ptg/tripleo-ptg-retr</a><br>
> > > <a href="http://o.jp" rel="noreferrer" target="_blank">o.jp</a><br>
> > > g<br>
> > ><br>
> > > > Dan<br>
> > > ><br>
> > > > > > ><br>
> > > > > > > >   -Development: The containerized undercloud is a great<br>
> > > > > > > > development<br>
> > > > > > > > tool. It utilizes the same framework as the full<br>
> > > > > > > > overcloud<br>
> > > > > > > > deployment<br>
> > > > > > > > but takes about 20 minutes to deploy.  This means<br>
> > > > > > > > faster<br>
> > > > > > > > iterations,<br>
> > > > > > > > less waiting, and more testing.  Having this be a first<br>
> > > > > > > > class<br>
> > > > > > > > citizen<br>
> > > > > > > > in the ecosystem will ensure this platform is<br>
> > > > > > > > functioning<br>
> > > > > > > > for<br>
> > > > > > > > developers to use all the time.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > Seems to go with the previous question about the re-<br>
> > > > > > > usability<br>
> > > > > > > for<br>
> > > > > > > people who are not developers.  Has everyone (including<br>
> > > > > > > non-<br>
> > > > > > > container<br>
> > > > > > > folks) tried this out and attest that it's a better<br>
> > > > > > > workflow<br>
> > > > > > > for<br>
> > > > > > > them?<br>
> > > > > > >   Are there use cases that are made worse by switching?<br>
> > > > > ><br>
> > > > > > I would let other chime in but the feedback I've gotten has<br>
> > > > > > mostly been<br>
> > > > > >   that it improves the dev/test cycle greatly.<br>
> > > > > ><br>
> > > > > > ><br>
> > > > > > > >   -CI resources: better use of CI resources. At the PTG<br>
> > > > > > > > we<br>
> > > > > > > > received<br>
> > > > > > > > feedback from the OpenStack infrastructure team that<br>
> > > > > > > > our<br>
> > > > > > > > upstream<br>
> > > > > > > > CI<br>
> > > > > > > > resource usage is quite high at times (even as high as<br>
> > > > > > > > 50%<br>
> > > > > > > > of the<br>
> > > > > > > > total). Because of the shared framework and single node<br>
> > > > > > > > capabilities we<br>
> > > > > > > > can re-architecture much of our upstream CI matrix<br>
> > > > > > > > around<br>
> > > > > > > > single<br>
> > > > > > > > node.<br>
> > > > > > > > We no longer require multinode jobs to be able to test<br>
> > > > > > > > many<br>
> > > > > > > > of the<br>
> > > > > > > > services in tripleo-heat-templates... we can just use a<br>
> > > > > > > > single<br>
> > > > > > > > cloud VM<br>
> > > > > > > > instead. We'll still want multinode undercloud -><br>
> > > > > > > > overcloud<br>
> > > > > > > > jobs<br>
> > > > > > > > for<br>
> > > > > > > > testing things like HA and baremetal provisioning. But<br>
> > > > > > > > we<br>
> > > > > > > > can cover<br>
> > > > > > > > a<br>
> > > > > > > > large set of the services (in particular many of the<br>
> > > > > > > > new<br>
> > > > > > > > scenario<br>
> > > > > > > > jobs<br>
> > > > > > > > we added in Pike) with single node CI test runs in much<br>
> > > > > > > > less time.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > I like this idea but would like to see more details<br>
> > > > > > > around<br>
> > > > > > > this.<br>
> > > > > > > Since this is a new feature we need to make sure that we<br>
> > > > > > > are<br>
> > > > > > > properly<br>
> > > > > > > covering the containerized undercloud with CI as well.  I<br>
> > > > > > > think we<br>
> > > > > > > need 3 jobs to properly cover this feature before marking<br>
> > > > > > > it<br>
> > > > > > > done. I<br>
> > > > > > > added them to the etherpad but I think we need to ensure<br>
> > > > > > > the<br>
> > > > > > > following<br>
> > > > > > > 3 jobs are defined and voting by M2 to consider actually<br>
> > > > > > > switching<br>
> > > > > > > from the current instack-undercloud installation to the<br>
> > > > > > > containerized<br>
> > > > > > > version.<br>
> > > > > > ><br>
> > > > > > > 1) undercloud-containers - a containerized install,<br>
> > > > > > > should be<br>
> > > > > > > voting<br>
> > > > > > > by m1<br>
> > > > > > > 2) undercloud-containers-update - minor updates run on<br>
> > > > > > > containerized<br>
> > > > > > > underclouds, should be voting by m2<br>
> > > > > > > 3) undercloud-containers-upgrade - major upgrade from<br>
> > > > > > > non-containerized to containerized undercloud, should be<br>
> > > > > > > voting by<br>
> > > > > > > m2.<br>
> > > > > > ><br>
> > > > > > > If we have these jobs, is there anything we can drop or<br>
> > > > > > > mark<br>
> > > > > > > as<br>
> > > > > > > covered that is currently being covered by an overcloud<br>
> > > > > > > job?<br>
> > > > > > ><br>
> > > > ><br>
> > > > > Can you please comment on these expectations as being<br>
> > > > > achievable?  If<br>
> > > > > they are not achievable, I don't think we can agree to switch<br>
> > > > > the<br>
> > > > > default for Queens.  As we shipped the 'undercloud deploy' as<br>
> > > > > experimental for Pike, it's well within reason to continue to<br>
> > > > > do<br>
> > > > > so<br>
> > > > > for Queens. Perhaps we change the labeling to beta or working<br>
> > > > > it<br>
> > > > > into<br>
> > > > > a --containerized option for 'undercloud install'.<br>
> > > > ><br>
> > > > > I think my ask for the undercloud-containers job as non-<br>
> > > > > voting by<br>
> > > > > m1<br>
> > > > > is achievable today because it's currently green (pending any<br>
> > > > > zuul<br>
> > > > > freezes). My concern is really minor updates and upgrades<br>
> > > > > need to<br>
> > > > > be<br>
> > > > > understood and accounted for ASAP.  If we're truly able to<br>
> > > > > reuse<br>
> > > > > some<br>
> > > > > of the work we did for O->P upgrades, then these should be<br>
> > > > > fairly<br>
> > > > > straight forward things to accomplish and there would be<br>
> > > > > fewer<br>
> > > > > blockers to make the switch.<br>
> > > > ><br>
> > > > > > > >   -Containers: There are no plans to containerize the<br>
> > > > > > > > existing<br>
> > > > > > > > instack-<br>
> > > > > > > > undercloud work. By moving our undercloud installer to<br>
> > > > > > > > a<br>
> > > > > > > > tripleo-<br>
> > > > > > > > heat-<br>
> > > > > > > > templates and Ansible architecture we can leverage<br>
> > > > > > > > containers.<br>
> > > > > > > > Interestingly, the same installer also supports<br>
> > > > > > > > baremetal<br>
> > > > > > > > (package)<br>
> > > > > > > > installation as well at this point. Like to overcloud<br>
> > > > > > > > however I<br>
> > > > > > > > think<br>
> > > > > > > > making containers our undercloud default would better<br>
> > > > > > > > align<br>
> > > > > > > > the<br>
> > > > > > > > TripleO<br>
> > > > > > > > tooling.<br>
> > > > > > > ><br>
> > > > > > > > We are actively working through a few issues with the<br>
> > > > > > > > deployment<br>
> > > > > > > > framework Ansible effort to fully integrate that into<br>
> > > > > > > > the<br>
> > > > > > > > undercloud<br>
> > > > > > > > installer. We are also reaching out to other teams like<br>
> > > > > > > > the<br>
> > > > > > > > UI and<br>
> > > > > > > > Security folks to coordinate the efforts around those<br>
> > > > > > > > components.<br>
> > > > > > > > If<br>
> > > > > > > > there are any questions about the effort or you'd like<br>
> > > > > > > > to<br>
> > > > > > > > be<br>
> > > > > > > > involved<br>
> > > > > > > > in the implementation let us know. Stay tuned for more<br>
> > > > > > > > specific<br>
> > > > > > > > updates<br>
> > > > > > > > as we organize to get as much of this in M1 and M2 as<br>
> > > > > > > > possible.<br>
> > > > > > > ><br>
> > > > > > ><br>
> > > > > > > I would like to see weekly updates on this effort during<br>
> > > > > > > the<br>
> > > > > > > IRC<br>
> > > > > > > meeting. As previously mentioned around squad status,<br>
> > > > > > > I'll be<br>
> > > > > > > asking<br>
> > > > > > > for them during the meeting so it would be nice to get an<br>
> > > > > > > update this<br>
> > > > > > > on a weekly basis so we can make sure that we'll be OK to<br>
> > > > > > > cut<br>
> > > > > > > over.<br>
> > > > > > ><br>
> > > > > > > Also what does the cut over plan look like?  This is<br>
> > > > > > > something that<br>
> > > > > > > might be beneficial to have in a spec. IMHO, I'm ok to<br>
> > > > > > > continue<br>
> > > > > > > pushing the container effort using the openstack<br>
> > > > > > > undercloud<br>
> > > > > > > deploy<br>
> > > > > > > method for now. Once we have voting CI jobs and the<br>
> > > > > > > feature<br>
> > > > > > > list has<br>
> > > > > > > been covered then we can evaluate if we've made the M2<br>
> > > > > > > time<br>
> > > > > > > frame to<br>
> > > > > > > switching openstack undercloud deploy to be the new<br>
> > > > > > > undercloud<br>
> > > > > > > install.  I want to make sure we don't introduce<br>
> > > > > > > regressions<br>
> > > > > > > and are<br>
> > > > > > > doing thing in a user friendly fashion since the<br>
> > > > > > > undercloud<br>
> > > > > > > is the<br>
> > > > > > > first intro an end user gets to tripleo. It would be a<br>
> > > > > > > good<br>
> > > > > > > idea to<br>
> > > > > > > review what the new install process looks like and make<br>
> > > > > > > sure<br>
> > > > > > > it "just<br>
> > > > > > > works" given that the current process[0] (with all it's<br>
> > > > > > > flaws) is<br>
> > > > > > > fairly trivial to perform.<br>
> > > > > > ><br>
> > > > ><br>
> > > > > Basically what I would like to see before making this new<br>
> > > > > default<br>
> > > > > is:<br>
> > > > > 1) minor updates work (with CI)<br>
> > > > > 2) P->Q upgrades work (with CI)<br>
> > > > > 3) Documentation complete<br>
> > > > > 4) no UX impact for installation (eg. how they installed it<br>
> > > > > before is<br>
> > > > > the same as they install it now for containers)<br>
> > > > ><br>
> > > > > If these are accounted for and completed before M2 then I<br>
> > > > > would<br>
> > > > > be +2<br>
> > > > > on the switch.<br>
> > > > ><br>
> > > > > > > Thanks,<br>
> > > > > > > -Alex<br>
> > > > > > ><br>
> > > > > > > [0] <a href="https://docs.openstack.org/tripleo-docs/latest/instal" rel="noreferrer" target="_blank">https://docs.openstack.org/tripleo-docs/latest/instal</a><br>
> > > > > > > l/in<br>
> > > > > > > stallati<br>
> > > > > > > on/installation.html#installing-the-undercloud<br>
> > > > > > ><br>
> > > > > > > > On behalf of the containers team,<br>
> > > > > > > ><br>
> > > > > > > > Dan<br>
> > > > > > > ><br>
> > > > > > > > [1] <a href="https://etherpad.openstack.org/p/tripleo-queens-und" rel="noreferrer" target="_blank">https://etherpad.openstack.org/p/tripleo-queens-und</a><br>
> > > > > > > > ercl<br>
> > > > > > > > oud-cont<br>
> > > > > > > > aine<br>
> > > > > > > > rs<br>
> > > > > > > ><br>
> > > > > > > > _______________________________________________________<br>
> > > > > > > > ____<br>
> > > > > > > > ________<br>
> > > > > > > > _______<br>
> > > > > > > > OpenStack Development Mailing List (not for usage<br>
> > > > > > > > questions)<br>
> > > > > > > > Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank">OpenStack-dev-request@lists.openstack.org</a>?<br>
> > > > > > > > subj<br>
> > > > > > > > ect:unsu<br>
> > > > > > > > bscribe<br>
> > > > > > > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/ope" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/ope</a><br>
> > > > > > > > nsta<br>
> > > > > > > > ck-dev<br>
> > > > > > ><br>
> > > > > > > _________________________________________________________<br>
> > > > > > > ____<br>
> > > > > > > ________<br>
> > > > > > > _____<br>
> > > > > > > OpenStack Development Mailing List (not for usage<br>
> > > > > > > questions)<br>
> > > > > > > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?su" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?su</a><br>
> > > > > > > bjec<br>
> > > > > > > t:unsubs<br>
> > > > > > > cribe<br>
> > > > > > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/opens" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/opens</a><br>
> > > > > > > tack<br>
> > > > > > > -dev<br>
> > > > > ><br>
> > > > > ><br>
> > > > > > ___________________________________________________________<br>
> > > > > > ____<br>
> > > > > > ___________<br>
> > > > > > OpenStack Development Mailing List (not for usage<br>
> > > > > > questions)<br>
> > > > > > Unsubscribe:<br>
> > > > > > <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscri" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscri</a><br>
> > > > > > be<br>
> > > > > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/opensta" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/opensta</a><br>
> > > > > > ck-d<br>
> > > > > > ev<br>
> > > > ><br>
> > > > > _____________________________________________________________<br>
> > > > > ____<br>
> > > > > _________<br>
> > > > > OpenStack Development Mailing List (not for usage questions)<br>
> > > > > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subjec" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subjec</a><br>
> > > > > t:un<br>
> > > > > subscribe<br>
> > > > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack</a><br>
> > > > > -dev<br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > > _______________________________________________________________<br>
> > > > ____<br>
> > > > _______<br>
> > > > OpenStack Development Mailing List (not for usage questions)<br>
> > > > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject</a>:<br>
> > > > unsu<br>
> > > > bscribe<br>
> > > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-d" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-d</a><br>
> > > > ev<br>
> > > ><br>
> > ><br>
> > > _________________________________________________________________<br>
> > > ____<br>
> > > _____<br>
> > > OpenStack Development Mailing List (not for usage questions)<br>
> > > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:un" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:un</a><br>
> > > subs<br>
> > > cribe<br>
> > > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> ><br>
> > ___________________________________________________________________<br>
> > _______<br>
> > OpenStack Development Mailing List (not for usage questions)<br>
> > Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsu" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsu</a><br>
> > bscribe<br>
> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> ><br>
><br>
><br>
> _____________________________________________________________________<br>
> _____<br>
> OpenStack Development Mailing List (not for usage questions)<br>
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubs" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubs</a><br>
> cribe<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div></div></div>