[openstack-dev] A daily life of a dev in ${name_your_fav_project}

Paul Belanger pabelanger at redhat.com
Sat Aug 27 00:44:08 UTC 2016


On Fri, Aug 26, 2016 at 09:48:26AM -0700, Clark Boylan wrote:
> On Fri, Aug 26, 2016, at 09:03 AM, Joshua Harlow wrote:
> > Hi folks (dev and more!),
> > 
> > I was having a conversation with some folks at godaddy around our future 
> > plans for a developer lab (where we can have various setups of 
> > networking, compute, storage...) for 'exploring' purposes (testing out a 
> > new LBAAS for example or ...) and as well as for 'developer' purposes 
> > (aka, the 'I need to reproduce a bug or work on a feature that requires 
> > having a setup mimicking closer to what we have in staging or
> > production').
> > 
> > And it got me thinking about how other developers (and other companies) 
> > are doing this. Do various companies have shared labs that their 
> > developers get partitions of for (periods of) usage (for example for a 
> > volume vendor I would expect this) or if you are a networking company do 
> > you hand out miniature networks (with associated gear) as needed (or do 
> > you build out such labs via SDN and software only)?
> > 
> > Then of course there are the people developing libraries (somewhat of my 
> > territory), part of that development can just be done locally and 
> > running of tox and such via that, but often times even that is not 
> > sufficient (for example pick oslo.messaging or oslo.db, altering this in 
> > ways that could pass unittests could still end up breaking its 
> > integration with other projects); so the gate helps here (but the gate 
> > really is a 'last barrier') so have folks that have been working on say 
> > zeromq or the newer amqp versions, what is the daily life of testing and 
> > exploring features and development for you?
> > 
> > Are any of the environments that people may be getting build-out on 
> > demand (ie in a cloud-like manner)? For example I could see how it could 
> > be pretty nifty to request a environment be built out with say something 
> > like the following as a descriptor language:
> > 
> > build_out:
> >     nova:
> >        git_url: git://git.openstack.org/openstack/nova
> >        git_ref: ....
> >     neutron:
> >        git_url: <my personal git repo>
> >        git_ref: my sha
> >     ....
> >     topology:
> >        use_standard_config: true
> >        build_with_switch_type: XYZ...
> > 
> > I hope this info is not just useful to myself (and maybe it's been 
> > talked about before, but nothing of recent that I can recall) and I'd be 
> > very much interested in hearing what other companies (big and small) are 
> > doing here (and also from folks that are not associated with any 
> > company, which I guess brings in the question of the OSIC lab).
> 
> As someone that semi frequently has to reproduce gate results my current
> setup involves semi frequently building the infra test images locally
> using openstack-infra/project-config/tools/build-image.sh then booting
> this image on my workstation using kvm. With that I can easily run a
> devstack-gate reproduce.sh or tox -e whatever and have a high degree of
> confidence that my setup mirrors the gate's.
> 
> When I worked for HP I did similar on top of HPCloud. This actually
> worked very well as I could much more easily share the results. If I had
> my choice of setup I would just ask for a set of openstack cloud
> credentials with a reasonable amount of quota. Dogfooding has been a
> great way to understand how openstack works and I think it has produced
> valuable feedback helping openstack improve.
> 
> Granted this is much harder to hand out when you need specific hardware
> resources (network switches, server hardware, whatever), but with Ironic
> most of that should be doable with the "give devs cloud credentials"
> model.
> 
> As for requesting an environment with nova version foo and neutron
> version bar and topology baz devstack does this a few thousand times per
> day. It may not be everyone's preferred tool, but my suggestion would be
> to not make another tool that does this and never gets tested. Instead
> use what is being tested.
> 
> TL;DR dogfood and use openstack, it solves this problem well.
> 
With zuulv2.5 we've started to make this easier too, we now publish our
ansible-playbooks along side our job logs[1]. I have visions where we also
publish minimal images create by nodepool (minus openstack-infra SSH keys and
git / package cache). Then write a new ansible-playbook to bootstrap a node to
your local environment (ansible-role-cloud-launcher) and or public cloud
account, then fire off the same ansible-playbook we did in zuul-launcher
(obviously using the reproduce.sh script).

It sounds like a mouth full, but I don't actually think it will be too much
work.  I've started pushing up patches to zuul-launcher to do this, but haven't
asked for the code to be merged. Mostly because I think we want to wait until
zuulv3 for this.

[1] http://logs.openstack.org/49/361449/2/check/gate-puppet-iptables-puppet-lint/797d4da/_zuul_ansible/
[2] https://review.openstack.org/#/c/352627/



More information about the OpenStack-dev mailing list