<p dir="ltr">We literally install every other dependency from pypi with requirements.txt, so I'm struggling understand why all the sudden we need to install this one as a binary, for our devstack specific script, when we are planning a move to a distro that doesn't even support binary packages? Should we switch our entire requirements file to bindep? If not, what makes this different?</p>
<br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 19, 2016, 22:56 Davanum Srinivas <<a href="mailto:davanum@gmail.com">davanum@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Adam,<br class="gmail_msg">
<br class="gmail_msg">
Have you see this yet?<br class="gmail_msg">
<br class="gmail_msg">
<a href="http://docs.openstack.org/infra/bindep/readme.html#writing-requirements-files" rel="noreferrer" class="gmail_msg" target="_blank">http://docs.openstack.org/infra/bindep/readme.html#writing-requirements-files</a><br class="gmail_msg">
<a href="http://codesearch.openstack.org/?q=platform&i=nope&files=bindep.txt&repos=" rel="noreferrer" class="gmail_msg" target="_blank">http://codesearch.openstack.org/?q=platform&i=nope&files=bindep.txt&repos=</a><br class="gmail_msg">
<br class="gmail_msg">
Thanks,<br class="gmail_msg">
Dims<br class="gmail_msg">
<br class="gmail_msg">
On Wed, Oct 19, 2016 at 9:40 AM, Adam Harwell <<a href="mailto:flux.adam@gmail.com" class="gmail_msg" target="_blank">flux.adam@gmail.com</a>> wrote:<br class="gmail_msg">
> Yes, but we need to use SOMETHING for our own devstack gate tests -- maybe<br class="gmail_msg">
> it is easier to think of our devstack code as a "third party setup", and<br class="gmail_msg">
> that it uses gunicorn for its DIB images (but not every deployer needs to).<br class="gmail_msg">
> In this case, how do we include it? Devstack needs it to run our gate jobs,<br class="gmail_msg">
> which means it has to be in our main codebase, but deployers don't<br class="gmail_msg">
> necessarily need it for their deployments (though it is the default option).<br class="gmail_msg">
> Do we include it in global-requirements or not? How do we use it in devstack<br class="gmail_msg">
> if it is not in global-requirements? We don't install it as a binary because<br class="gmail_msg">
> the plan is to stay completely distro-independant (or target a distro that<br class="gmail_msg">
> doesn't even HAVE binary packages like cirros). Originally I just put the<br class="gmail_msg">
> line "pip install gunicorn>=19.0" directly in our DIB script, but was told<br class="gmail_msg">
> that was a dirty hack, and that it should be in requirements.txt like<br class="gmail_msg">
> everything else. I'm not sure I agree, and it seems like maybe others are<br class="gmail_msg">
> suggesting I go back to that method?<br class="gmail_msg">
><br class="gmail_msg">
>  --Adam<br class="gmail_msg">
><br class="gmail_msg">
> On Wed, Oct 19, 2016 at 10:19 PM Hayes, Graham <<a href="mailto:graham.hayes@hpe.com" class="gmail_msg" target="_blank">graham.hayes@hpe.com</a>> wrote:<br class="gmail_msg">
>><br class="gmail_msg">
>> On 18/10/2016 19:57, Doug Wiegley wrote:<br class="gmail_msg">
>> ><br class="gmail_msg">
>> >> On Oct 18, 2016, at 12:42 PM, Doug Hellmann <<a href="mailto:doug@doughellmann.com" class="gmail_msg" target="_blank">doug@doughellmann.com</a>><br class="gmail_msg">
>> >> wrote:<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Excerpts from Doug Wiegley's message of 2016-10-18 12:21:20 -0600:<br class="gmail_msg">
>> >>><br class="gmail_msg">
>> >>>> On Oct 18, 2016, at 12:10 PM, Doug Hellmann <<a href="mailto:doug@doughellmann.com" class="gmail_msg" target="_blank">doug@doughellmann.com</a>><br class="gmail_msg">
>> >>>> wrote:<br class="gmail_msg">
>> >>>><br class="gmail_msg">
>> >>>> Excerpts from Doug Wiegley's message of 2016-10-18 12:00:35 -0600:<br class="gmail_msg">
>> >>>>><br class="gmail_msg">
>> >>>>>> On Oct 18, 2016, at 11:30 AM, Doug Hellmann <<a href="mailto:doug@doughellmann.com" class="gmail_msg" target="_blank">doug@doughellmann.com</a><br class="gmail_msg">
>> >>>>>> <mailto:<a href="mailto:doug@doughellmann.com" class="gmail_msg" target="_blank">doug@doughellmann.com</a>>> wrote:<br class="gmail_msg">
>> >>>>>><br class="gmail_msg">
>> >>>>>> Excerpts from Doug Wiegley's message of 2016-10-18 09:59:54 -0600:<br class="gmail_msg">
>> >>>>>>><br class="gmail_msg">
>> >>>>>>>> On Oct 18, 2016, at 5:14 AM, Ian Cordasco <<a href="mailto:sigmavirus24@gmail.com" class="gmail_msg" target="_blank">sigmavirus24@gmail.com</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:sigmavirus24@gmail.com" class="gmail_msg" target="_blank">sigmavirus24@gmail.com</a>> <mailto:<a href="mailto:sigmavirus24@gmail.com" class="gmail_msg" target="_blank">sigmavirus24@gmail.com</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:sigmavirus24@gmail.com" class="gmail_msg" target="_blank">sigmavirus24@gmail.com</a>>>> wrote:<br class="gmail_msg">
>> >>>>>>>><br class="gmail_msg">
>> >>>>>>>><br class="gmail_msg">
>> >>>>>>>><br class="gmail_msg">
>> >>>>>>>> -----Original Message-----<br class="gmail_msg">
>> >>>>>>>> From: Thierry Carrez <<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a>>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:thierry@openstack.org" class="gmail_msg" target="_blank">thierry@openstack.org</a>>>>><br class="gmail_msg">
>> >>>>>>>> Reply: OpenStack Development Mailing List (not for usage<br class="gmail_msg">
>> >>>>>>>> questions) <<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>>>>><br class="gmail_msg">
>> >>>>>>>> Date: October 18, 2016 at 03:55:41<br class="gmail_msg">
>> >>>>>>>> To: <a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>>>><br class="gmail_msg">
>> >>>>>>>> <<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a><br class="gmail_msg">
>> >>>>>>>> <mailto:<a href="mailto:openstack-dev@lists.openstack.org" class="gmail_msg" target="_blank">openstack-dev@lists.openstack.org</a>>>>><br class="gmail_msg">
>> >>>>>>>> Subject:  Re: [openstack-dev] [requirements][lbaas] gunicorn to<br class="gmail_msg">
>> >>>>>>>> g-r<br class="gmail_msg">
>> >>>>>>>><br class="gmail_msg">
>> >>>>>>>>> Doug Wiegley wrote:<br class="gmail_msg">
>> >>>>>>>>>> [...] Paths forward:<br class="gmail_msg">
>> >>>>>>>>>><br class="gmail_msg">
>> >>>>>>>>>> 1. Add gunicorn to global requirements.<br class="gmail_msg">
>> >>>>>>>>>><br class="gmail_msg">
>> >>>>>>>>>> 2. Create a project specific “amphora-requirements.txt” file<br class="gmail_msg">
>> >>>>>>>>>> for the<br class="gmail_msg">
>> >>>>>>>>>> service VM packages (this is actually my preference.) It has<br class="gmail_msg">
>> >>>>>>>>>> been<br class="gmail_msg">
>> >>>>>>>>>> pointed out that this wouldn’t be kept up-to-date by the bot.<br class="gmail_msg">
>> >>>>>>>>>> We could<br class="gmail_msg">
>> >>>>>>>>>> modify the bot to include it in some way, or do it manually, or<br class="gmail_msg">
>> >>>>>>>>>> with a<br class="gmail_msg">
>> >>>>>>>>>> project specific job.<br class="gmail_msg">
>> >>>>>>>>>><br class="gmail_msg">
>> >>>>>>>>>> 3. Split our service VM builds into another repo, to keep a<br class="gmail_msg">
>> >>>>>>>>>> clean<br class="gmail_msg">
>> >>>>>>>>>> separation between API services and the backend. But, even this<br class="gmail_msg">
>> >>>>>>>>>> new<br class="gmail_msg">
>> >>>>>>>>>> repo’s standlone requirements.txt file will have the g-r issue<br class="gmail_msg">
>> >>>>>>>>>> from #1.<br class="gmail_msg">
>> >>>>>>>>>><br class="gmail_msg">
>> >>>>>>>>>> 4. Boot the backend out of OpenStack entirely.<br class="gmail_msg">
>> >>>>>>>>><br class="gmail_msg">
>> >>>>>>>>> All those options sound valid to me, so the requirements team<br class="gmail_msg">
>> >>>>>>>>> should<br class="gmail_msg">
>> >>>>>>>>> pick what they are the most comfortable with.<br class="gmail_msg">
>> >>>>>>>>><br class="gmail_msg">
>> >>>>>>>>> My 2c: yes g-r is mostly about runtime dependencies and ensuring<br class="gmail_msg">
>> >>>>>>>>> co-installability. However it also includes test/build-time<br class="gmail_msg">
>> >>>>>>>>> deps, and<br class="gmail_msg">
>> >>>>>>>>> generally converging dependencies overall sounds like a valid<br class="gmail_msg">
>> >>>>>>>>> goal. Is<br class="gmail_msg">
>> >>>>>>>>> there any drawback in adding gunicorn to g-r (option 1) ?<br class="gmail_msg">
>> >>>>>>>><br class="gmail_msg">
>> >>>>>>>> The drawback (in my mind) is that new projects might start using<br class="gmail_msg">
>> >>>>>>>> it giving operators yet another thing to learn about when deploying a new<br class="gmail_msg">
>> >>>>>>>> component (eventlet, gevent, gunicorn, ...).<br class="gmail_msg">
>> >>>>>>>><br class="gmail_msg">
>> >>>>>>>> On the flip, what's the benefit of adding it to g-r?<br class="gmail_msg">
>> >>>>>>><br class="gmail_msg">
>> >>>>>>> The positive benefit is the same as Octavia’s use case: it<br class="gmail_msg">
>> >>>>>>> provides an alternative for any non-frontline-api service to run a<br class="gmail_msg">
>> >>>>>>> lightweight http/wsgi service as needed (service VMs, health monitor agents,<br class="gmail_msg">
>> >>>>>>> etc). And something better than the built-in debug servers in most of the<br class="gmail_msg">
>> >>>>>>> frameworks.<br class="gmail_msg">
>> >>>>>>><br class="gmail_msg">
>> >>>>>>> On the proliferation point, it is certainly a risk, though I’ve<br class="gmail_msg">
>> >>>>>>> personally heard pretty strong guidance that all main API services in our<br class="gmail_msg">
>> >>>>>>> community should be trending towards pecan.<br class="gmail_msg">
>> >>>>>><br class="gmail_msg">
>> >>>>>> Pecan is a way to build WSGI applications. Gunicorn is a way to<br class="gmail_msg">
>> >>>>>> deploy<br class="gmail_msg">
>> >>>>>> them. So they're not mutually exclusive.<br class="gmail_msg">
>> >>>>><br class="gmail_msg">
>> >>>>> Right, agreed.<br class="gmail_msg">
>> >>>>><br class="gmail_msg">
>> >>>>> What we’re trying to convey here is:<br class="gmail_msg">
>> >>>>><br class="gmail_msg">
>> >>>>> - The normal way of making a REST endpoint in OpenStack is to use<br class="gmail_msg">
>> >>>>> pecan (or flask or falcon), and let the deployer or packager worry about the<br class="gmail_msg">
>> >>>>> runtime wsgi and/or reverse proxy.<br class="gmail_msg">
>> >>>>><br class="gmail_msg">
>> >>>>> - This isn't a “normal” OpenStack endpoint, because it’s a<br class="gmail_msg">
>> >>>>> microservice inside a service VM, and thus has different needs, and is much<br class="gmail_msg">
>> >>>>> less likely to be customized by a non-dev, to boot. And it needs to be<br class="gmail_msg">
>> >>>>> “deploy ready” as a simple matter of it being a service VM black box. It’s<br class="gmail_msg">
>> >>>>> part of the data plane, not the control plane.<br class="gmail_msg">
>> >>>>><br class="gmail_msg">
>> >>>>> Thanks,<br class="gmail_msg">
>> >>>>> doug<br class="gmail_msg">
>> >>>><br class="gmail_msg">
>> >>>> That all seems reasonable.<br class="gmail_msg">
>> >>>><br class="gmail_msg">
>> >>>> We have a proliferation of these service VMs. It would be good to<br class="gmail_msg">
>> >>>> get some of the folks involved together to start a working group<br class="gmail_msg">
>> >>>> to see if there are some commonalities that can lead to shared<br class="gmail_msg">
>> >>>> processes or tools.<br class="gmail_msg">
>> >>><br class="gmail_msg">
>> >>> That’s a good idea. I wonder if we can organize something in time for<br class="gmail_msg">
>> >>> next week. I don’t think we should wait to make forward progress for that,<br class="gmail_msg">
>> >>> but there is definitely some commonality we should be defining and striving<br class="gmail_msg">
>> >>> towards.<br class="gmail_msg">
>> >>><br class="gmail_msg">
>> >>> doug<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Sure, and I hope I didn't come across as implying that this work should<br class="gmail_msg">
>> >> wait.<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> I expect you could take over a corner of the dev lounge or some<br class="gmail_msg">
>> >> other space to hold a BoF to at least start the discussion and get<br class="gmail_msg">
>> >> some interested folks lined up to lead the WG.<br class="gmail_msg">
>> ><br class="gmail_msg">
>> > Sounds good. In prep to sending an ML invite, what projects use service<br class="gmail_msg">
>> > VMs?   There’s Octavia, Trove, and Tacker.  What else?<br class="gmail_msg">
>><br class="gmail_msg">
>> It is in our (long term) road map for Designate as well.<br class="gmail_msg">
>><br class="gmail_msg">
>> > Thanks,<br class="gmail_msg">
>> > doug<br class="gmail_msg">
>> ><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> Doug<br class="gmail_msg">
>> >><br class="gmail_msg">
>> >><br class="gmail_msg">
>> >> __________________________________________________________________________<br class="gmail_msg">
>> >> OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
>> >> Unsubscribe:<br class="gmail_msg">
>> >> <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
>> >> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
>> ><br class="gmail_msg">
>> ><br class="gmail_msg">
>> ><br class="gmail_msg">
>> > __________________________________________________________________________<br class="gmail_msg">
>> > OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
>> > Unsubscribe:<br class="gmail_msg">
>> > <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
>> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
>> ><br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> __________________________________________________________________________<br class="gmail_msg">
>> OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
>> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> __________________________________________________________________________<br class="gmail_msg">
> OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
> Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
><br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
--<br class="gmail_msg">
Davanum Srinivas :: <a href="https://twitter.com/dims" rel="noreferrer" class="gmail_msg" target="_blank">https://twitter.com/dims</a><br class="gmail_msg">
<br class="gmail_msg">
__________________________________________________________________________<br class="gmail_msg">
OpenStack Development Mailing List (not for usage questions)<br class="gmail_msg">
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" class="gmail_msg" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br class="gmail_msg">
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br class="gmail_msg">
</blockquote></div>