[openstack-dev] making the dev toolchain easier to bring together

Joshua Harlow harlowja at yahoo-inc.com
Thu Nov 15 01:02:06 UTC 2012


Anvil does get better with this in that it mainly tries to use packages
for everything it can (its avoiding venv as much as it can, since I don't
see venv as being totally useful, since it doesn¹t reflect what will be
deployed, although I guess some people might be deploying in venvs, y!
isn't).

Example file: 
https://github.com/yahoo/Openstack-Anvil/blob/master/conf/distros/rhel.yaml

- That file is used by the python components (nova class for example) to
actually install with. It was made to be a lookup file that can be used to
map pips to there distro package (or add in dependent system packages)...

** Yes I took out the ubuntu stuff (didn't have time to maintain it). No
haters :-P

But http://anvil.readthedocs.org/en/latest/topics/examples.html is what it
can do on RHEL right now (grizzly WIP as I'm ensuring it can run tests and
such there without blowing up).

At yahoo its our early detection system for PIPs (it will blow-up if there
is a new pip added that isn't in the mapping) as well as it runs tests (so
it aids our CI) and it builds rpm packages (CI says its ok after tests
pass, then it activates the same anvil code to say go make me an rpm
specification with whatever passed the tests). The output packages then
get used by other yahoo systems when installing in production (anvil isn't
this system).

On 11/14/12 3:32 PM, "Robert Collins" <robertc at robertcollins.net> wrote:

>On Thu, Nov 15, 2012 at 5:20 AM, Dean Troyer <dtroyer at gmail.com> wrote:
>> On Tue, Nov 13, 2012 at 7:22 PM, Robert Collins
>> <robertc at robertcollins.net> wrote:
>>>  - pull the devstack code for interpreting operating system package
>>> dependencies out of devstack into an oslo tool
>>
>> Have you read that yet? ;)
>
>No, is it scary ? Or super simple?
>
>>> This would also (if desired) allow shrinking this aspect out of
>>>devstack.
>>>
>>> If this sounds good, I'll look closer at the devstack code to see if
>>> its sensible to factor it out, or do something similar but parallel.
>>
>> DevStack is blindly simplistic in handling package dependencies.
>> There is a file for (potentially) each service listing the Ubuntu
>> package requirements and if the service is enabled that list is
>> appended.  That is it.  The files are managed manually.  And there is
>> another set of files for Fedora (rpms).
>
>Yup, found that.
>
>> Note that we used to handle pips the same way, but that was finally
>> unified with the package's tools/{pip|test}-requires so there is some
>> precedence for taking that approach.
>
>Right - I'm suggesting something analagous - whether tightly connected
>to tools/pip|test is a separate discussion IMO.
>
>> There have been a couple of attempts to expand this into a regular
>> package/dependency management but they always seem to get tangled
>> dealing with too many distros and their individual packaging
>> decisions.
>>
>> Take a look at Joshua Harlow's Anvil.  This was one of his motivations
>> to try something different than DevStack's approach, and do it in
>> Python.  He may have something that is complete enough to do what you
>> are planning.
>
>I thought anvil was more production focused, which is fine, so hadn't
>looked. I will do so - thanks.
>
>-Rob
>
>-- 
>Robert Collins <rbtcollins at hp.com>
>Distinguished Technologist
>HP Cloud Services
>
>_______________________________________________
>OpenStack-dev mailing list
>OpenStack-dev at lists.openstack.org
>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list