Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-10 Thread Luke Gorrie
On 9 July 2014 20:24, Sullivan, Jon Paul jonpaul.sulli...@hp.com wrote:

Incidentally, is there already way to review what votes my CI (or
 indeed anybody's) is casting via an openstack.org web interface?



  You can look at the individual account dashboards in Gerrit, like:
 https://review.openstack.org/#/dashboard/12019


This search seems to omit many entries that I am interested in. For
example, the Tail-f CI has tested  reviewed hundreds of Neutron changes
recently but the search comes up empty. Is this an issue with accounts that
don't have the voting bit set?

For the use case of bringing new CIs online I would find it very useful to
be able to review all the reviews that the CI makes even before it has
voting enabled.

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-10 Thread Luke Gorrie
Howdy!

I've been operating a shellci for a while now and overall it is very smooth.

The main new feature now is to automatically retrigger events that neither
definitely succeed (exit status 100) nor definitely fail (exit status 101).
In this case the CI will vote 0 with the logs and then automatically
schedule a new test, up to a max of 5 tests, until it can conclude +1 or -1.

This seems to work well. On my setup I often see tests fail due to network
problems (e.g. timeout during a Git checkout) and automatic retries filer
away this class of error very neatly, ultimately casting the +1/-1 votes
based purely on the relatively reliable contents of tempest.log. (Thanks
Jim Gray for pointing out that detectable intermittent bugs are really easy
to deal with http://www.hpl.hp.com/techreports/tandem/TR-85.7.pdf).

[The network problems themselves are a little suspicious but for now I see
them as a blessing that helps me make shellci robust and I don't worry too
much about the root cause.]

I'm running 5 parallel builds at the moment. I've tried ramping that up to
10 or 20 but then I start to see Vagrant/VirtualBox startup errors. Again,
I'm using this as a test case for the automatic retries, and not digging
too deep yet.

I'd like to be able to track the results via RSS feeds. Can I do this via
openstack.org or should I support that directly in shellci?

disk space will become an issue soon. Currently I'm running around 500
builds per day and each one generates around 8MB of logs. Compression and
redundancy-avoidance may go a long way towards reducing his problem,
however it seems a pity to have a scarcity mentality when it comes to
logging (I'd prefer to do more rather than less). Any bright ideas for
conveniently archiving some terabytes of logs?

Overall I'd say that shellci is quite reliable now. The main reason I don't
recommend it to others yet is that I'm a bit too busy to provide support
with setting it up this week.

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-10 Thread Luke Gorrie
On 10 July 2014 10:06, Luke Gorrie l...@snabb.co wrote:

 The main new feature now is to automatically retrigger events that neither
 definitely succeed (exit status 100) nor definitely fail (exit status 101).
 In this case the CI will vote 0 with the logs and then automatically
 schedule a new test, up to a max of 5 tests, until it can conclude +1 or -1.


... and while I have your attention, I may as well show you the code for
that feature, to help describe the genera style of shellci:
https://github.com/SnabbCo/shellci/commit/d9716d83c85e532ad05d04fcd72af3995f66899d
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-10 Thread Kevin Benton
If I understand correctly, you are having it comment when there is a
retrigger due to an internal CI failure? If so, please don't do this
because it makes the Gerrit reviews very noisy and it provides nothing
relevant to the contributor submitting the patch.

Nobody wants a CI to report that it has nothing useful to say, especially
up to five times on a single patch. :-)
Howdy!

I've been operating a shellci for a while now and overall it is very smooth.

The main new feature now is to automatically retrigger events that neither
definitely succeed (exit status 100) nor definitely fail (exit status 101).
In this case the CI will vote 0 with the logs and then automatically
schedule a new test, up to a max of 5 tests, until it can conclude +1 or -1.

This seems to work well. On my setup I often see tests fail due to network
problems (e.g. timeout during a Git checkout) and automatic retries filer
away this class of error very neatly, ultimately casting the +1/-1 votes
based purely on the relatively reliable contents of tempest.log. (Thanks
Jim Gray for pointing out that detectable intermittent bugs are really easy
to deal with http://www.hpl.hp.com/techreports/tandem/TR-85.7.pdf).

[The network problems themselves are a little suspicious but for now I see
them as a blessing that helps me make shellci robust and I don't worry too
much about the root cause.]

I'm running 5 parallel builds at the moment. I've tried ramping that up to
10 or 20 but then I start to see Vagrant/VirtualBox startup errors. Again,
I'm using this as a test case for the automatic retries, and not digging
too deep yet.

I'd like to be able to track the results via RSS feeds. Can I do this via
openstack.org or should I support that directly in shellci?

disk space will become an issue soon. Currently I'm running around 500
builds per day and each one generates around 8MB of logs. Compression and
redundancy-avoidance may go a long way towards reducing his problem,
however it seems a pity to have a scarcity mentality when it comes to
logging (I'd prefer to do more rather than less). Any bright ideas for
conveniently archiving some terabytes of logs?

Overall I'd say that shellci is quite reliable now. The main reason I don't
recommend it to others yet is that I'm a bit too busy to provide support
with setting it up this week.

Cheers,
-Luke




___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-10 Thread Kevin Benton
For log storage I would definitely start with compression since these are
just plain text. Make sure you enable gzip decompression in your web server
software so people can still view the log files in their browser.

Before spending tons of disk space on log storage, I would also have it
purge logs from successful runs that are more than a few weeks old. The
ones people are interested in are the ones that break.
On Jul 10, 2014 1:08 AM, Luke Gorrie l...@snabb.co wrote:

 Howdy!

 I've been operating a shellci for a while now and overall it is very
 smooth.

 The main new feature now is to automatically retrigger events that neither
 definitely succeed (exit status 100) nor definitely fail (exit status 101).
 In this case the CI will vote 0 with the logs and then automatically
 schedule a new test, up to a max of 5 tests, until it can conclude +1 or -1.

 This seems to work well. On my setup I often see tests fail due to network
 problems (e.g. timeout during a Git checkout) and automatic retries filer
 away this class of error very neatly, ultimately casting the +1/-1 votes
 based purely on the relatively reliable contents of tempest.log. (Thanks
 Jim Gray for pointing out that detectable intermittent bugs are really easy
 to deal with http://www.hpl.hp.com/techreports/tandem/TR-85.7.pdf).

 [The network problems themselves are a little suspicious but for now I see
 them as a blessing that helps me make shellci robust and I don't worry too
 much about the root cause.]

 I'm running 5 parallel builds at the moment. I've tried ramping that up to
 10 or 20 but then I start to see Vagrant/VirtualBox startup errors. Again,
 I'm using this as a test case for the automatic retries, and not digging
 too deep yet.

 I'd like to be able to track the results via RSS feeds. Can I do this via
 openstack.org or should I support that directly in shellci?

 disk space will become an issue soon. Currently I'm running around 500
 builds per day and each one generates around 8MB of logs. Compression and
 redundancy-avoidance may go a long way towards reducing his problem,
 however it seems a pity to have a scarcity mentality when it comes to
 logging (I'd prefer to do more rather than less). Any bright ideas for
 conveniently archiving some terabytes of logs?

 Overall I'd say that shellci is quite reliable now. The main reason I
 don't recommend it to others yet is that I'm a bit too busy to provide
 support with setting it up this week.

 Cheers,
 -Luke




 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-10 Thread Luke Gorrie
Hi again Jon Paul,

My mistake! This seems to be exactly what I was looking for, thank you. (I
goofed the query which is why I thought it was lacking.)

Cheers :)
-Luke



On 10 July 2014 09:17, Luke Gorrie l...@snabb.co wrote:

 On 9 July 2014 20:24, Sullivan, Jon Paul jonpaul.sulli...@hp.com wrote:

Incidentally, is there already way to review what votes my CI (or
 indeed anybody's) is casting via an openstack.org web interface?



  You can look at the individual account dashboards in Gerrit, like:
 https://review.openstack.org/#/dashboard/12019


 This search seems to omit many entries that I am interested in. For
 example, the Tail-f CI has tested  reviewed hundreds of Neutron changes
 recently but the search comes up empty. Is this an issue with accounts that
 don't have the voting bit set?

 For the use case of bringing new CIs online I would find it very useful to
 be able to review all the reviews that the CI makes even before it has
 voting enabled.

 Cheers,
 -Luke



___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-09 Thread Sullivan, Jon Paul
From: Luke Gorrie [mailto:l...@snabb.co]
Sent: 07 July 2014 10:54
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

On 7 July 2014 11:41, Luke Gorrie l...@snabb.comailto:l...@snabb.co wrote:
I'm running an additional non-voting instance that runs five parallel builds 
and triggers on all OpenStack projects.

To clarify: by non-voting I mean not posting any results to 
review.openstack.orghttp://review.openstack.org at all, to avoid noise. 
(Posting comments is only enabled for the instance that tracks 
openstack-dev/sandbox.)

Incidentally, is there already way to review what votes my CI (or indeed 
anybody's) is casting via an openstack.orghttp://openstack.org web interface?

 You can look at the individual account dashboards in Gerrit, like: 
 https://review.openstack.org/#/dashboard/12019

 You can get the user id through the REST API, using a simple wget: “wget 
 https://review.openstack.org/accounts/openstack...@snabb.co”


Thanks,
Jon-Paul Sullivan ☺ Cloud Services - @hpcloud

Postal Address: Hewlett-Packard Galway Limited, Ballybrit Business Park, Galway.
Registered Office: Hewlett-Packard Galway Limited, 63-74 Sir John Rogerson's 
Quay, Dublin 2.
Registered Number: 361933

The contents of this message and any attachments to it are confidential and may 
be legally privileged. If you have received this message in error you should 
delete it from your system immediately and advise the sender.

To any recipient of this message within HP, unless otherwise stated, you should 
consider this message and attachments as HP CONFIDENTIAL.

___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-07 Thread Luke Gorrie
On 3 July 2014 19:05, Luke Gorrie l...@snabb.co wrote:

 Time to make it start running real tempest tests.


Howdy!

shellci now supports running n parallel build processes and by default
runs each test with devstack+tempest in a one-shot Vagrant VM.

The README is updated on Github: https://github.com/SnabbCo/shellci

I'm running an additional non-voting instance that runs five parallel
builds and triggers on all OpenStack projects. For the curious, this
instance's logs are at http://horgen.snabb.co/shellci/log/ and the build
directories are under http://horgen.snabb.co/shellci/tests/.

This week I should discover how much maintenance is needed to keep it
humming along and then we'll see if I can recommend it to anybody else or
not. (I don't recommend it yet but I did try to make the README detailed
enough in case there is anybody who wants to play now.)

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-07 Thread Kyle Mestery
On Mon, Jul 7, 2014 at 4:41 AM, Luke Gorrie l...@snabb.co wrote:
 On 3 July 2014 19:05, Luke Gorrie l...@snabb.co wrote:

 Time to make it start running real tempest tests.


 Howdy!

 shellci now supports running n parallel build processes and by default
 runs each test with devstack+tempest in a one-shot Vagrant VM.

 The README is updated on Github: https://github.com/SnabbCo/shellci

 I'm running an additional non-voting instance that runs five parallel builds
 and triggers on all OpenStack projects. For the curious, this instance's
 logs are at http://horgen.snabb.co/shellci/log/ and the build directories
 are under http://horgen.snabb.co/shellci/tests/.

 This week I should discover how much maintenance is needed to keep it
 humming along and then we'll see if I can recommend it to anybody else or
 not. (I don't recommend it yet but I did try to make the README detailed
 enough in case there is anybody who wants to play now.)

This sounds promising Luke. I for one will be kicking the tires on
this and having a look once you bless it.

Thanks,
Kyle

 Cheers,
 -Luke



 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-03 Thread Luke Gorrie
On 1 July 2014 19:12, Luke Gorrie l...@tail-f.com wrote:

 It does not yet run devstack/tempest and I hope to reuse that part from
 somebody else's efforts.


shellci is happily voting on the sandbox with the Snabb NFV CI account so
far: http://egg.snabb.co:81/shellci/shellci.log

Time to make it start running real tempest tests.

I whipped up a simple Vagrantfile that runs devstack and tempest in a
disposable VM. The idea is that out-of-the-box you get a setup that runs
tempest and votes on the results. Then you customize local.conf,
tempest.conf, and optionally the whole script to do the appropriate testing
for your driver. (Or, if you like, skip this part and supply your own
testing script to do whatever you like.)

Vagrant scripts only in a Gist for now:
https://gist.github.com/lukego/bdefc792b8255d141e4c

I'll see how the performance looks. Vagrant probably slows down serial
performance but should make independent parallel runs easy. I ordered a
hetzner.de server with 128GB RAM and if that comes through tomorrow we'll
see how that plays out.

The plan for parallelism is sharding. Each gerrit-stream event will be
hashed into one of N buckets and then you can run N copies of the testing
script (on whatever machine(s)) and each copy chooses a different hash
bucket to trigger on.

Let's see how promising (or not) that looks tomorrow :-). If it works out
for me then hopefully somebody else will want to kick the tires next week.

(We'll need a separate 100 line budget for the Vagrant/devstack/tempest
stuff by the look of it! Lies, damned lies, budgets...)

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-07-01 Thread Luke Gorrie
Howdy!

I wrote a new version of shellci today and have it up and running and
voting on the sandbox.

It's described on the Github page: https://github.com/SnabbCo/shellci

Currently this is simple shell scripts to receive review.openstack.org
gerrit events, run tests and determine results, then post reviews. It does
not yet run devstack/tempest and I hope to reuse that part from somebody
else's efforts. (I know ODL have done reusable work here and I plan to look
into that. Anybody else?)

Ideas and encouragement welcome as always. Let's find out if this point in
the design space is practical or not.

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


[openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-06-30 Thread Luke Gorrie
Howdy!

Paging other 3rd party CI operators...

I would like to run a simple and robust 3rd party CI. Simple as in a small
number of moving parts, robust as in unlikely to make mistakes due to
unexpected problems.

I'm imagining:

- 100 lines of shell for the implementation.

- Minimum of daemons. (Just Jenkins? Ideally not even that...)

- Robust detection of operational problems (CI bugs) vs system-under-test
problems (changes that should be voted against).

- Effective notifications on all errors or negative votes.

Does anybody already have an implementation like this that they would like
to share? (Is anybody else wanting something in this direction?)

I've been iterating on 3rd party CI mechanisms (currently onto my 3rd
from-scratch setup) and I have not been completely satisfied with any of
them. I would love to hear from someone who has a minimalist implementation
that they are happy with :).

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-06-30 Thread Luke Gorrie
On 30 June 2014 17:34, Kyle Mestery mest...@noironetworks.com wrote:

 It would be great to get you to join the 3rd Party meeting [1] in
 #openstack-meeting at 1800UTC to discuss this. Can you make it today
 Luke?


Yes, I'll be there.

Currently I'm looking into the simplest 3rd party CI that could possibly
work which would be less sophisticated than devstack-gate but easier for
the operator to understand and be responsible for. (Or: CI in 100 lines of
shell with no Jenkins or other large pieces of software to install.)

I'm on #openstack-neutron if anybody wants to kick around ideas or share
scripts that I can borrow ideas from (thanks ODL gang for doing this
already).

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-06-30 Thread Asselin, Ramy
Not sure if these are “minimalist” but at least they setup automagically, so 
you don’t need to do it from scratch:

You can check out these repos which automate the 3rd party ci setup:

Jay Pipe’s solution:
https://github.com/jaypipes/os-ext-testing
https://github.com/jaypipes/os-ext-testing-data

My WIP fork of Jay Pipe’s that also includes Nodepool:
https://github.com/rasselin/os-ext-testing
https://github.com/rasselin/os-ext-testing-data

Ramy


From: Luke Gorrie [mailto:l...@tail-f.com]
Sent: Monday, June 30, 2014 9:26 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

On 30 June 2014 17:34, Kyle Mestery 
mest...@noironetworks.commailto:mest...@noironetworks.com wrote:
It would be great to get you to join the 3rd Party meeting [1] in
#openstack-meeting at 1800UTC to discuss this. Can you make it today
Luke?

Yes, I'll be there.

Currently I'm looking into the simplest 3rd party CI that could possibly work 
which would be less sophisticated than devstack-gate but easier for the 
operator to understand and be responsible for. (Or: CI in 100 lines of shell 
with no Jenkins or other large pieces of software to install.)

I'm on #openstack-neutron if anybody wants to kick around ideas or share 
scripts that I can borrow ideas from (thanks ODL gang for doing this already).

Cheers,
-Luke


___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-06-30 Thread Luke Gorrie
On 30 June 2014 19:37, Asselin, Ramy ramy.asse...@hp.com wrote:

  Not sure if these are “minimalist” but at least they setup
 automagically, so you don’t need to do it from scratch:


I'm aiming to do exactly the opposite of this i.e. no automagic.

My experience has been that the really heavy-duty CI setups are too
difficult to understand and troubleshoot for end-users like me. I spent a
week working on installing Jay's tools, with very generous help from Jay
himself, and for me it was a dead end [*]. I now consider these to be tools
for openstack-infra insiders rather than guys like me who are maintaining
tiny drivers.

I don't know if other people have had a different experience from me. It
does seem like 3rd party CI is broadly a lot more problematic than
advertised. I have seen only relatively few frank experience reports from
people operating CIs and I suspect there is a rich and interesting untold
story there :-). (Maybe it would be interesting to do a survey some day.)

[*] http://openstack-dev-openstack.git.net/2014-March/030022.html  other
posts in that thread.
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [neutron][third-party] Simple and robust CI script?

2014-06-30 Thread Luke Gorrie
I have a really early sketch of this project on Github now.

shellci - OpenStack 3rd party CI in 100 lines of shell
https://github.com/SnabbCo/shellci

This is not finished yet but I'll try to use it for the new Neutron mech
driver that I want to contribute to Juno.

Ideas and encouragement welcome :-).

Cheers,
-Luke
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev