Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-16 Thread Robert Collins
On 16 February 2014 17:57, Jay Pipes jaypi...@gmail.com wrote:

 Personally, I believe having Gerrit and Jenkins as the default will turn
 more people off Solumn than attract them to it.

 Just because we in the OpenStack community love our gating workflow and
 think it's all groovy does not mean that view is common, wanted, or
 understood by the vast majority of users of Heroku-like solutions.

There are quite a number of such solutions; do we want to write yet
another? What makes solum special ? Is it supporting OpenStack? [If so
- I'd argue that our success elsewhere will guarantee other such
platforms support OpenStack - and e.g. OpenShift already do AFAIK].
Why are we writing Solum?

 Who is the audience here? It is not experienced developers who already
 understand things like Gerrit and Jenkins. It's developers who just want
 to simplify the process of pushing code up to some system other than
 Github or their workstation. Adding the awkwardness of Gerrit's code

If thats all, then I don't think we should be writing Solum. We should
just pick some of the existing tooling for that and say 'use that'.

 review system -- and the associated pain of trying to understand how to
 define Jenkins jobs -- is something that I don't think the *default*
 Solum experience should invite.

 The default experience should be a simple push code, run merge tests,

What are merge tests? How are they defined? What about that definition
makes it impossible for us to run them in Jenkins or similar? What
makes it impossible to run them before the merge?

 and deploy into the deployment unit (whatever that is called in Solum
 nowadays). There should be well-documented ways to add commit hooks into
 this workflow, but having a complex Gerrit and Jenkins gated workflow is
 just overkill for the default experience.

Even in small teams - 4-5 people - gated workflow and CI/CD is a game
changer for velocity. If your point is 'doing the sophisticated thing
OpenStack does is hard and we shouldn't try to sell people on working
hard' - I agree. But your point currently sounds like 'there's no way
we can make this stuff easy, discoverable, and straight forward, so we
should focus on something much less capable'. Perhaps thats not what
you mean?

I think there is a spectrum here. We need to aim high, or we achieve
low. We also need to deliver incrementally, and we need to provide a
-really- gentle onramp for users. Make the first basic steps easy and
simple: but thats not in any way incompatible with gating by default.

It *might* be incompatible with Jenkins and zuul: but thats a slightly
different discussion- my +1, which you replied to, was about /gating/
by default, not about the implementation thereof.

-Rob

-- 
Robert Collins rbtcoll...@hp.com
Distinguished Technologist
HP Converged Cloud

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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-16 Thread Adrian Otto

On Feb 16, 2014, at 2:31 AM, Robert Collins robe...@robertcollins.net
 wrote:

 On 16 February 2014 17:57, Jay Pipes jaypi...@gmail.com wrote:
 
 Personally, I believe having Gerrit and Jenkins as the default will turn
 more people off Solumn than attract them to it.
 
 Just because we in the OpenStack community love our gating workflow and
 think it's all groovy does not mean that view is common, wanted, or
 understood by the vast majority of users of Heroku-like solutions.
 
 There are quite a number of such solutions; do we want to write yet
 another? What makes solum special ? Is it supporting OpenStack? [If so
 - I'd argue that our success elsewhere will guarantee other such
 platforms support OpenStack - and e.g. OpenShift already do AFAIK].
 Why are we writing Solum?

Excellent focusing question. We are focused on the Application Developer 
persona as a class. We want clouds to be easier to use, and more accessible for 
them. We'd like to offer streamlined experiences that help them focus on 
application development, and worry less about how to get their applications to 
run on the cloud. We expect to be able to achieve this goal by letting the 
developers connect their code repositories with Solum enabled clouds, and use 
development best practices to automate the building, testing, and deploying of 
code.

Why? Because Application Developers have enough to worry about, without 
contemplating all of the above in a DIY approach. We'd like to address this 
focus area in a way that offers the developers a sense of insurance that when 
their application becomes successful one day (and they want to begin focusing 
on the details and potentially customizing the various aspects of how code is 
handled and deployed, and what environments it it run in) that they will not 
need to forklift their code from one cloud to another, but can begin to use a 
wider variety of control system API's to tap into what's already there.

Cloud operators (public and private alike) want to offer these streamlined user 
experiences to the Application Developers that use their clouds. They want to 
do so without bringing in the operational complexity and overhead of running a 
PaaS system that largely overlaps with numerous aspects of what's already 
offered in OpenStack. By selecting Solum, they leverage what's here already, 
and add in additional ease of use, and the ability to abstract and simplify a 
variety of complexity relating to the code-app lifecycle, and gradually adding 
in new capabilities for managing apps once they are on the cloud.

 Who is the audience here? It is not experienced developers who already
 understand things like Gerrit and Jenkins. It's developers who just want
 to simplify the process of pushing code up to some system other than
 Github or their workstation. Adding the awkwardness of Gerrit's code
 
 If thats all, then I don't think we should be writing Solum. We should
 just pick some of the existing tooling for that and say 'use that'.

If we do a good job of offering a sensible set of defaults, balanced with a 
compelling set of features, then Solum will be very useful. We're not aiming to 
replace or re-invent every CI tool that was ever invented. To the contrary, we 
want to allow sophisticated dev shops who have investments in CI  
infrastructure already an opportunity to use Solum as a CD tool (submit a plan 
file and a container image to the Solum API by using a simple Git post-commit 
hook trigger).

However, we also want to provide developers who possibly have never seen a 
comprehensive CI/CD setup an opportunity to access one that works for general 
use, and a place where the existing tool makers can integrate and offer their 
value-added software and solutions to make those experiences even better. This 
is where we are right now, deicing how to take an iterative approach to making 
this default CI/CD setup useful and interesting.

 review system -- and the associated pain of trying to understand how to
 define Jenkins jobs -- is something that I don't think the *default*
 Solum experience should invite.
 
 The default experience should be a simple push code, run merge tests,
 
 What are merge tests? How are they defined? What about that definition
 makes it impossible for us to run them in Jenkins or similar? What
 makes it impossible to run them before the merge?

Excellent questions again. There's no reason you could not use any variety of 
existing applications to do this. There is value in allowing developers to 
start simple with reduced effort, and start to use more advanced CI features 
when they are ready to opt into them. Focusing on ease of use is key.

 and deploy into the deployment unit (whatever that is called in Solum
 nowadays). There should be well-documented ways to add commit hooks into
 this workflow, but having a complex Gerrit and Jenkins gated workflow is
 just overkill for the default experience.

We can all agree that we are not aiming to offer something 

Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-15 Thread Jay Pipes
On Sat, 2014-02-15 at 17:20 +1300, Robert Collins wrote:
 On 15 February 2014 14:34, Fox, Kevin M kevin@pnnl.gov wrote:
  I think a lot of projects don't bother to gate, because its far to much 
  work to set up a workable system.
 
  I can think of several projects I've worked on that would benefit from it 
  but haven't because of time/cost of setting it up.
 
  If I could just say solum create project foo and get it, I'm sure it 
  would be much more used.
 
  The same has been said of Unit tests and CI in the past. We don't need 
  it. When you give someone a simple to use system though, they see its 
  value pretty quickly.
 
  Yeah, gerrit and jenkins are a pain to setup. Thats one of the things that 
  might make solum great. That it removes that pain.
 
 Gating is hard, so we should do more of it.
 
 +1 on gating by default, rather than being nothing more than a remote
 git checkout - there are lots of those systems already, and being one
 won't make solum stand out,.

Personally, I believe having Gerrit and Jenkins as the default will turn
more people off Solumn than attract them to it.

Just because we in the OpenStack community love our gating workflow and
think it's all groovy does not mean that view is common, wanted, or
understood by the vast majority of users of Heroku-like solutions.

Who is the audience here? It is not experienced developers who already
understand things like Gerrit and Jenkins. It's developers who just want
to simplify the process of pushing code up to some system other than
Github or their workstation. Adding the awkwardness of Gerrit's code
review system -- and the associated pain of trying to understand how to
define Jenkins jobs -- is something that I don't think the *default*
Solum experience should invite.

The default experience should be a simple push code, run merge tests,
and deploy into the deployment unit (whatever that is called in Solum
nowadays). There should be well-documented ways to add commit hooks into
this workflow, but having a complex Gerrit and Jenkins gated workflow is
just overkill for the default experience.

Best,
-jay


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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-14 Thread Jay Pipes
On Thu, 2014-02-13 at 00:05 +, Adrian Otto wrote:
 If they want something more comprehensive, including a full set of open 
 source best practices by default, such as entrance and exit gating, hosted 
 code review and collaboration, It would be really nice to have a full 
 Zuul+Nodepool+Jenkins+Gerrit setup with some integration points where they 
 could potentially customize it.

You might be interested in a couple articles I recently wrote around
this very topic! :)

http://www.joinfu.com/2014/01/understanding-the-openstack-ci-system/
http://www.joinfu.com/2014/02/setting-up-an-external-openstack-testing-system/

Cheers,
-jay


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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-14 Thread Jay Pipes
On Thu, 2014-02-13 at 14:18 +0100, Julien Vey wrote:
 I agree gating is a great feature but it is not useful for every
 project and as Adrian said, not understood by everyone.
 I think many Solum users, and PaaS users in general, are
 single-project/single-build/simple git worklow and do not care about
 gating.

This is 100% correct.

 I see 2 drawbacks with Zuul :
 - Tenant Isolation : How do we allow access on zuul (and jenkins) for
 a specific tenant in isolation to the others tenants using Solum.
 - Build customization : One of the biggest advantage of Jenkins is its
 ecosystem and the many build customization it offers. Using zuul will
 prohibit this.

Not sure I understand this part... Zuul works *with* Jenkins. It does
not replace it.

 About Gerrit, I think it is also a little too much. Many users have
 their own reviewing system, Pull requests with github, bitbucket or
 stash, their own instance of gerrit, or even a custom git workflow.
 Gerrit would be a great feature for future versions of Solum. but only
 as an optionnal one, we should not force people into it.

Completely agreed. Frankly, both Gerrit and Jenkins are a giant pain in
the ass to install, maintain, and configure (hmm, which Java/Prolog
programs aren't, I wonder?).

Basing Solum's *default* workflow on these tools would be a mistake IMO.

Best,
-jay



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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-14 Thread Fox, Kevin M
I think a lot of projects don't bother to gate, because its far to much work to 
set up a workable system.

I can think of several projects I've worked on that would benefit from it but 
haven't because of time/cost of setting it up.

If I could just say solum create project foo and get it, I'm sure it would be 
much more used.

The same has been said of Unit tests and CI in the past. We don't need it. 
When you give someone a simple to use system though, they see its value pretty 
quickly.

Yeah, gerrit and jenkins are a pain to setup. Thats one of the things that 
might make solum great. That it removes that pain.

Kevin

From: Jay Pipes [jaypi...@gmail.com]
Sent: Friday, February 14, 2014 2:51 PM
To: openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

On Thu, 2014-02-13 at 14:18 +0100, Julien Vey wrote:
 I agree gating is a great feature but it is not useful for every
 project and as Adrian said, not understood by everyone.
 I think many Solum users, and PaaS users in general, are
 single-project/single-build/simple git worklow and do not care about
 gating.

This is 100% correct.

 I see 2 drawbacks with Zuul :
 - Tenant Isolation : How do we allow access on zuul (and jenkins) for
 a specific tenant in isolation to the others tenants using Solum.
 - Build customization : One of the biggest advantage of Jenkins is its
 ecosystem and the many build customization it offers. Using zuul will
 prohibit this.

Not sure I understand this part... Zuul works *with* Jenkins. It does
not replace it.

 About Gerrit, I think it is also a little too much. Many users have
 their own reviewing system, Pull requests with github, bitbucket or
 stash, their own instance of gerrit, or even a custom git workflow.
 Gerrit would be a great feature for future versions of Solum. but only
 as an optionnal one, we should not force people into it.

Completely agreed. Frankly, both Gerrit and Jenkins are a giant pain in
the ass to install, maintain, and configure (hmm, which Java/Prolog
programs aren't, I wonder?).

Basing Solum's *default* workflow on these tools would be a mistake IMO.

Best,
-jay



___
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] [Solum] Question about Zuul's role in Solum

2014-02-14 Thread Robert Collins
On 15 February 2014 14:34, Fox, Kevin M kevin@pnnl.gov wrote:
 I think a lot of projects don't bother to gate, because its far to much work 
 to set up a workable system.

 I can think of several projects I've worked on that would benefit from it but 
 haven't because of time/cost of setting it up.

 If I could just say solum create project foo and get it, I'm sure it would 
 be much more used.

 The same has been said of Unit tests and CI in the past. We don't need it. 
 When you give someone a simple to use system though, they see its value 
 pretty quickly.

 Yeah, gerrit and jenkins are a pain to setup. Thats one of the things that 
 might make solum great. That it removes that pain.

Gating is hard, so we should do more of it.

+1 on gating by default, rather than being nothing more than a remote
git checkout - there are lots of those systems already, and being one
won't make solum stand out,.

-Rob


-- 
Robert Collins rbtcoll...@hp.com
Distinguished Technologist
HP Converged Cloud

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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-13 Thread Julien Vey
Hi,

I have some concerns about using Zuul in Solum

I agree gating is a great feature but it is not useful for every project
and as Adrian said, not understood by everyone.
I think many Solum users, and PaaS users in general, are
single-project/single-build/simple git worklow and do not care about gating.

I see 2 drawbacks with Zuul :
- Tenant Isolation : How do we allow access on zuul (and jenkins) for a
specific tenant in isolation to the others tenants using Solum.
- Build customization : One of the biggest advantage of Jenkins is its
ecosystem and the many build customization it offers. Using zuul will
prohibit this.

About Gerrit, I think it is also a little too much. Many users have their
own reviewing system, Pull requests with github, bitbucket or stash, their
own instance of gerrit, or even a custom git workflow.
Gerrit would be a great feature for future versions of Solum. but only as
an optionnal one, we should not force people into it.

Julien

2014-02-13 5:47 GMT+01:00 Clark Boylan clark.boy...@gmail.com:

 On Wed, Feb 12, 2014 at 7:25 PM, Noorul Islam K M noo...@noorul.com
 wrote:
  devdatta kulkarni devdatta.kulka...@rackspace.com writes:
 
  Hi,
 
  I have been looking at Zuul for last few days and had a question
  about its intended role within Solum.
 
  From what I understand, Zuul is a code gating system.
 
  I have been wondering if code gating is something we are considering as
 a feature
  to be provided in Solum? If yes, then Zuul is a perfect fit.
  But if not, then we should discuss what benefits do we gain by using
 Zuul
  as an integral part of Solum.
 
  It feels to me that right now we are treating Zuul as a conduit for
 triggering job(s)
  that would do the following:
  - clone/download source
  - run tests
  - create a deployment unit (DU) if tests pass
  - upload DU to glance
  - trigger the DU deployment workflow
 
  In the language-pack working group we have talked about being able to do
  CI on the submitted code and building the DUs only after tests pass.
  Now, there is a distinction between doing CI on merged code vs.
  doing it before code is permanently merged to master/stable branches.
  The latter is what a 'code gating' system does, and Zuul is a perfect
 fit for this.
  For the former though, using a code gating system is not be needed.
  We can achieve the former with an API endpoint, a queue,
  and a mechanism to trigger job(s) that perform above mentioned steps.
 
  I guess it comes down to Solum's vision. If the vision includes
 supporting, among other things, code gating
  to ensure that Solum-managed code is never broken, then Zuul is a
 perfect fit.
  Of course, in that situation we would want to ensure that the gating
 functionality is pluggable
  so that operators can have a choice of whether to use Zuul or something
 else.
  But if the vision is to be that part of an overall application
 lifecycle management flow which deals with
  creation and scaling of DUs/plans/assemblies but not necessarily be a
 code gate, then we should re-evaluate Zuul's role
  as an integral part of Solum.
 
  Thoughts?
 
 
  Is Zuul tightly couple with launchpad? I see that most of the
  information that it displays is coming from launchpad.
 
  If it is, is it a good idea to force launchpad on users?
 
  Regards,
  Noorul
 
  ___
  OpenStack-dev mailing list
  OpenStack-dev@lists.openstack.org
  http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

 I can't think of any places that Zuul requires launchpad (or displays
 launchpad info for that matter). It is a bit coupled to Gerrit on one
 end and Gearman on the other, but not in an extreme way (the use of
 Gearman makes a bunch of sense imo, but having additional triggers
 instead of just Gerrit sounds great to me).

 Clark

 ___
 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] [Solum] Question about Zuul's role in Solum

2014-02-13 Thread CARVER, PAUL
Julien Vey wrote:

About Gerrit, I think it is also a little too much. Many users have their
 own reviewing system, Pull requests with github, bitbucket or stash,
their own instance of gerrit, or even a custom git workflow.
Gerrit would be a great feature for future versions of Solum. but only
as an optionnal one, we should not force people into it.

I'm just an observer since I haven't managed to negotiate the CLA hurdle with 
my employer yet, but Gerrit seems to me to work fantastically well.

If there are better options than Gerrit that people are using I'd be interested 
in hearing about them. I'm always interested in learning who has the best in 
class tool for any particular task. However I think that having multiple tools 
for the same job within OpenStack is going to be a bad idea that results in 
confusion and difficulty in cooperation.

Now, if the intention is for Solum to NOT be an OpenStack project that's fine. 
OpenStack can use and be used by lots of projects that aren't part of it. But 
if someone learns the tools and processes for one OpenStack project they ought 
to be able to jump right into any other OpenStack project without having to 
worry about what code review tool, or other tools or processes are different 
from one to the next.
___
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-13 Thread Clint Byrum
Excerpts from Julien Vey's message of 2014-02-13 05:18:19 -0800:
 Hi,
 
 I have some concerns about using Zuul in Solum
 
 I agree gating is a great feature but it is not useful for every project
 and as Adrian said, not understood by everyone.
 I think many Solum users, and PaaS users in general, are
 single-project/single-build/simple git worklow and do not care about gating.
 

The gate can be a noop. Easier to insert more gate tests when it matters
than it is to swap out technologies at that time.

 I see 2 drawbacks with Zuul :
 - Tenant Isolation : How do we allow access on zuul (and jenkins) for a
 specific tenant in isolation to the others tenants using Solum.

Same way Trove has a mysql database per tenant I presume.

 - Build customization : One of the biggest advantage of Jenkins is its
 ecosystem and the many build customization it offers. Using zuul will
 prohibit this.

Nobody is saying you can't use Jenkins. People are saying use Zuul and
get more than Jenkins. But go on and use Jenkins as well.

 
 About Gerrit, I think it is also a little too much. Many users have their
 own reviewing system, Pull requests with github, bitbucket or stash, their
 own instance of gerrit, or even a custom git workflow.
 Gerrit would be a great feature for future versions of Solum. but only as
 an optionnal one, we should not force people into it.

Agreed on that.

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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-13 Thread Clayton Coleman


- Original Message -
 From: Julien Vey  vey.jul...@gmail.com 
 Reply-To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org 
 Date: Thursday, February 13, 2014 7:18 AM
 To: OpenStack Development Mailing List (not for usage questions) 
 openstack-dev@lists.openstack.org 
 Subject: Re: [openstack-dev] [Solum] Question about Zuul's role in Solum
 
 
 
 
 Hi,
 
 I have some concerns about using Zuul in Solum
 
 
 
 
 I agree gating is a great feature but it is not useful for every project and
 as Adrian said, not understood by everyone.
 I think many Solum users, and PaaS users in general, are
 single-project/single-build/simple git worklow and do not care about gating.
 
 Agreed, this is my major concern, I also think majority of users will be
 after quick app creation from a single git repository. For those people
 having to jump through any additional hoops around gating will give them a
 barrier that will cause them to evaluate if this is the right solution for
 them.
 
 
 
 
 
 I see 2 drawbacks with Zuul :
 - Tenant Isolation : How do we allow access on zuul (and jenkins) for a
 specific tenant in isolation to the others tenants using Solum.
 
 Tenant isolation is a big problem for service providers, but maybe not for
 enterprises running their own Openstack/Solum.
 
 
 
 
 - Build customization : One of the biggest advantage of Jenkins is its
 ecosystem and the many build customization it offers. Using zuul will
 prohibit this.
 
 
 Agreed. If we make CI/CD pluggable and provide two reference implementations
 showing both use cases ( which should be achievable with M1 workflow ).
 
 * `if it builds its good` and provide example code repos that use travisCI we
 can show external tooling CI/CD workflow. [1]
 * full code gating functionality of Gerrit-Zuul-Solum. I see this as
 external to the core of Solum with the user's source control being the
 middleware, but could be something that solum could assist with building (
 provide heat template ). [2]
 
 [1] attached Solum-M1.png
 [2] attached Solum-Gerrit.png
 
 
 
 
 
 About Gerrit, I think it is also a little too much. Many users have their own
 reviewing system, Pull requests with github, bitbucket or stash, their own
 instance of gerrit, or even a custom git workflow.
 Gerrit would be a great feature for future versions of Solum. but only as an
 optionnal one, we should not force people into it.
 
 Agreed. The M1 workflow should make it easy to provide examples of plugging
 in common external CI/CD tooling, or running your own Gerrit+Zuul.
 
 Using a gating system like Gerrit/Zuul could make for some very interesting
 advanced testing, for example one of the tests run could be to hit the solum
 API and deploy the application to it and provide the URL to reviewers, then
 when the code is merged it can kill that test. But this is just as doable as
 an pluggable integration as it is tightly coupling Zuul to solum.

I think it's worth noting that the things Zuul can do (outside of gating or 
being dependent on Gerrit) is allow a reasonable extensible workflow solution 
for source - outcome flows.  We should be careful to separate the value zuul 
brings as part of a Solum/OpenStack deployment (not inventing an extensible 
workflow story for source) out from gating.  

I agree with the statement that we should not tightly couple Zuul to Solum.  
The M1 workflow does not necessarily need to require zuul if the right 
interaction points (which Zuul would require anyway) are exposed for a much 
simpler solution.  However, it would be a mistake to build a simple service now 
and then to continue to expand it until it looks a lot like Zuul without making 
effort to improve Zuul's multi tenancy, customizability, and extensibility 
stories.  There are certainly pieces of Zuul that don't apply to most Solum 
workflows - it's just that we have to resist the temptation to create a 
standalone solution for source - outcome flows outside of Zuul.

Simple, practical, example solution for M1 without gating?  Good.
Building a zuul equivalent?  Bad.
Demonstrating a simple integration with Solum build flows that proves out Solum 
endpoints for receiving updates about new deployment units being available?  
Good.

 
 This also gives service providers a good way to productize Solum to different
 ( or learning ) audiences. Assuming a service provider creates a product
 based off Solum called 'Bananas' they could offer
 
 * 'Banana Lite' which will simply deploy an app ( single instance free, pay
 for more ) from a git-push/git-pull. Only gating is 'did the build succeed'
 * 'Banana Pro' Adds basic CI/CD flow ( Solum calls into a test framework as
 part of the Build )
 * 'Banana Enterprise' Provides full code review, git hosting, automated
 testing (via Gerrit+github Enterprise), deploy to test instance, deploy App.
 
 
 
 
 
 Julien
 
 2014-02-13 5:47 GMT+01:00 Clark Boylan  clark.boy...@gmail.com  :
 
 
 
 On Wed, Feb

[openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread devdatta kulkarni
Hi,

I have been looking at Zuul for last few days and had a question
about its intended role within Solum.

From what I understand, Zuul is a code gating system.

I have been wondering if code gating is something we are considering as a 
feature
to be provided in Solum? If yes, then Zuul is a perfect fit.
But if not, then we should discuss what benefits do we gain by using Zuul
as an integral part of Solum.

It feels to me that right now we are treating Zuul as a conduit for triggering 
job(s)
that would do the following:
- clone/download source
- run tests
- create a deployment unit (DU) if tests pass
- upload DU to glance
- trigger the DU deployment workflow

In the language-pack working group we have talked about being able to do
CI on the submitted code and building the DUs only after tests pass. 
Now, there is a distinction between doing CI on merged code vs.
doing it before code is permanently merged to master/stable branches.
The latter is what a 'code gating' system does, and Zuul is a perfect fit for 
this.
For the former though, using a code gating system is not be needed.
We can achieve the former with an API endpoint, a queue,
and a mechanism to trigger job(s) that perform above mentioned steps.

I guess it comes down to Solum's vision. If the vision includes supporting, 
among other things, code gating
to ensure that Solum-managed code is never broken, then Zuul is a perfect fit.
Of course, in that situation we would want to ensure that the gating 
functionality is pluggable
so that operators can have a choice of whether to use Zuul or something else.
But if the vision is to be that part of an overall application lifecycle 
management flow which deals with
creation and scaling of DUs/plans/assemblies but not necessarily be a code 
gate, then we should re-evaluate Zuul's role
as an integral part of Solum.

Thoughts?

Thanks,
Devdatta



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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Paul Czarkowski


On 2/12/14 5:16 PM, Roshan Agrawal roshan.agra...@rackspace.com wrote:


 -Original Message-
 From: devdatta kulkarni [mailto:devdatta.kulka...@rackspace.com]
 Sent: Wednesday, February 12, 2014 3:26 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: [openstack-dev] [Solum] Question about Zuul's role in Solum
 
 Hi,
 
 I have been looking at Zuul for last few days and had a question about
its
 intended role within Solum.
 
 From what I understand, Zuul is a code gating system.
 
 I have been wondering if code gating is something we are considering as
a
 feature to be provided in Solum? If yes, then Zuul is a perfect fit.
 But if not, then we should discuss what benefits do we gain by using
Zuul as
 an integral part of Solum.
 
 It feels to me that right now we are treating Zuul as a conduit for
triggering
 job(s) that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow
 
 In the language-pack working group we have talked about being able to
do CI
 on the submitted code and building the DUs only after tests pass.
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect
fit for this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue, and a mechanism
 to trigger job(s) that perform above mentioned steps.
 
 I guess it comes down to Solum's vision. If the vision includes
supporting,
 among other things, code gating to ensure that Solum-managed code is
 never broken, then Zuul is a perfect fit.
 Of course, in that situation we would want to ensure that the gating
 functionality is pluggable so that operators can have a choice of
whether to
 use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle
 management flow which deals with creation and scaling of
 DUs/plans/assemblies but not necessarily be a code gate, then we should
re-
 evaluate Zuul's role as an integral part of Solum.

The question is: is Zuul the right tool for the code deployment workflow
you outlined above? The code deployment workflow is the higher order
need. 

The code gating functionality is also useful and potentially something we
would want to implement in Solum at some point, but the decision criteria
on what tool we use to implement the code deployment workflow depends on
how good is Zuul in helping us with the deployment workflow.

 Thoughts?
 
 Thanks,
 Devdatta
 
 
 
 ___
 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


The current proposed workflow for Solum (m1) is shorthanded to be something
like this

1. User writes code
2. User pushes to master branch in github
3. a github hook fires against the solum API.
4. Solum coordinates the testing/building and deployment of the app

None of this seems overly suitable for zuul to me ( not without a
significant
amount of work that will be needed to customize zuul to work for us ), and
can be easily ( for certain values of easy ) achieved with solum
forking a thread to do the build ( m1 implementation ? ) or solum
sending messages to a set of worker nodes watching a queue ( marconi? Post
m1, pluggable so operator could use their existing jenkins, etc ).

If an enterprise or provider wanted to implement code gating it would slip
in before option 1,  and would be relatively simple for an operator to
plug in their existing code gating/review tooling (github
PRs,CodeCollaborator,Crucible+Bamboo) or set up Gerrit/Zuul system:

1. User writes code
2. User runs `git review`
3. Gerrit calls zuul to run automated tests
4. Core reviewers +2 the code
5. Gerrit merges code to master branch in github
6. a github hook fires against the solum API
7. Solum coordinates the testing/building and deployment of the app


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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Adrian Otto
Dev,

Thanks for raising this discussion. This is an important decision point for us.

On Feb 12, 2014, at 1:25 PM, devdatta kulkarni devdatta.kulka...@rackspace.com
 wrote:

 Hi,
 
 I have been looking at Zuul for last few days and had a question
 about its intended role within Solum.
 
 From what I understand, Zuul is a code gating system.
 
 I have been wondering if code gating is something we are considering as a 
 feature
 to be provided in Solum? If yes, then Zuul is a perfect fit.

Although this feature is not currently scoped for our earliest milestones, it 
is part of our long term vision under the umbrella of CI and developer 
automation, and we should think about how to get there.

 But if not, then we should discuss what benefits do we gain by using Zuul
 as an integral part of Solum.
 
 It feels to me that right now we are treating Zuul as a conduit for 
 triggering job(s)
 that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow
 
 In the language-pack working group we have talked about being able to do
 CI on the submitted code and building the DUs only after tests pass. 
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect fit for 
 this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue,
 and a mechanism to trigger job(s) that perform above mentioned steps.
 
 I guess it comes down to Solum's vision. If the vision includes supporting, 
 among other things, code gating
 to ensure that Solum-managed code is never broken, then Zuul is a perfect fit.
 Of course, in that situation we would want to ensure that the gating 
 functionality is pluggable
 so that operators can have a choice of whether to use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle 
 management flow which deals with
 creation and scaling of DUs/plans/assemblies but not necessarily be a code 
 gate, then we should re-evaluate Zuul's role
 as an integral part of Solum.

I see code gating as a best practice for CI. As we begin to offer a CI 
experience as a default for Solum, we will want to employ a set of best 
practices to help those who are just starting out, and do not yet have any 
automation of this sort. Gating is well understood by OpenStack developers, but 
it's not well understood by all developers. It's actually pretty tricky to set 
up a complete CI system that does enter+exit gating, integrates with a review 
system, and leverages a build job runner like Jenkins. Because Solum is 
targeting the persona of Application Developers we want an experience that 
will feel natural to them.

I do think there are areas where the current openstack-ci system may be 
streamlined for general purpose use. Gerrit has various user interface quirks, 
for example. We should be willing to contribute to the various projects to 
improve them so they are more pleasant to use.

I'm reluctant to endorse an approach that involves re-creating functionality 
that Zuul already offers. I'd rather just leverage it. If Zuul has more 
features and capabilities than we need, then we should explore the possibility 
of turning off those features for now, and activating them when we are ready 
for them. If there are any tools that's are *better* fit with our long term 
vision compared to Zuul, then we should be willing to evaluate those.

I think that if people just want generic ALM, they can stand up Jenkins (or 
some equivalent), and have a set of build scripts that burp out a container 
image and a plan file at the end, and feed that into Solum. If they are Github 
lovers, they can configure the post commit webhook to trigger Solum, and have 
Solum pick up and build the container image, and send it through the CD 
process. Any variety of CI systems from a long list of awesome software vendors 
can fit here.

If they want something more comprehensive, including a full set of open source 
best practices by default, such as entrance and exit gating, hosted code review 
and collaboration, It would be really nice to have a full 
Zuul+Nodepool+Jenkins+Gerrit setup with some integration points where they 
could potentially customize it.

 Thoughts?

In summary, I'd prefer that we consider using Zuul from the beginning, and turn 
of any parts we don't need for our early releases. I'm willing to consider 
alternatives if they can be shown to be superior.

Thanks,

Adrian

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


___
OpenStack-dev mailing list

Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Adrian Otto
Paul,

On Feb 12, 2014, at 3:44 PM, Paul Czarkowski paul.czarkow...@rackspace.com
 wrote:

 
 
 On 2/12/14 5:16 PM, Roshan Agrawal roshan.agra...@rackspace.com wrote:
 
 
 -Original Message-
 From: devdatta kulkarni [mailto:devdatta.kulka...@rackspace.com]
 Sent: Wednesday, February 12, 2014 3:26 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: [openstack-dev] [Solum] Question about Zuul's role in Solum
 
 Hi,
 
 I have been looking at Zuul for last few days and had a question about
 its
 intended role within Solum.
 
 From what I understand, Zuul is a code gating system.
 
 I have been wondering if code gating is something we are considering as
 a
 feature to be provided in Solum? If yes, then Zuul is a perfect fit.
 But if not, then we should discuss what benefits do we gain by using
 Zuul as
 an integral part of Solum.
 
 It feels to me that right now we are treating Zuul as a conduit for
 triggering
 job(s) that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow
 
 In the language-pack working group we have talked about being able to
 do CI
 on the submitted code and building the DUs only after tests pass.
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect
 fit for this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue, and a mechanism
 to trigger job(s) that perform above mentioned steps.
 
 I guess it comes down to Solum's vision. If the vision includes
 supporting,
 among other things, code gating to ensure that Solum-managed code is
 never broken, then Zuul is a perfect fit.
 Of course, in that situation we would want to ensure that the gating
 functionality is pluggable so that operators can have a choice of
 whether to
 use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle
 management flow which deals with creation and scaling of
 DUs/plans/assemblies but not necessarily be a code gate, then we should
 re-
 evaluate Zuul's role as an integral part of Solum.
 
 The question is: is Zuul the right tool for the code deployment workflow
 you outlined above? The code deployment workflow is the higher order
 need. 
 
 The code gating functionality is also useful and potentially something we
 would want to implement in Solum at some point, but the decision criteria
 on what tool we use to implement the code deployment workflow depends on
 how good is Zuul in helping us with the deployment workflow.
 
 Thoughts?
 
 Thanks,
 Devdatta
 
 
 
 ___
 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
 
 
 The current proposed workflow for Solum (m1) is shorthanded to be something
 like this
 
 1. User writes code
 2. User pushes to master branch in github
 3. a github hook fires against the solum API.
 4. Solum coordinates the testing/building and deployment of the app
 
 None of this seems overly suitable for zuul to me ( not without a
 significant
 amount of work that will be needed to customize zuul to work for us ), and
 can be easily ( for certain values of easy ) achieved with solum
 forking a thread to do the build ( m1 implementation ? ) or solum
 sending messages to a set of worker nodes watching a queue ( marconi? Post
 m1, pluggable so operator could use their existing jenkins, etc ).
 
 If an enterprise or provider wanted to implement code gating it would slip
 in before option 1,  and would be relatively simple for an operator to
 plug in their existing code gating/review tooling (github
 PRs,CodeCollaborator,Crucible+Bamboo) or set up Gerrit/Zuul system:
 
 1. User writes code
 2. User runs `git review`
 3. Gerrit calls zuul to run automated tests
 4. Core reviewers +2 the code
 5. Gerrit merges code to master branch in github
 6. a github hook fires against the solum API
 7. Solum coordinates the testing/building and deployment of the app

This point of view assumes they already have a CI solution. I speak with a lot 
of folks out there just looking at cloud for the first time, and if you ask 
them are they using CI, they look at you with a blank stare, and then ask 
something like C-what?. We should be prepared to help Application Developers 
as an entire class, not only the ones that have adopted agile, devops, and know 
something about CI already. 

Cheers,

Adrian

 
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev

Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Angus Salkeld
Excuse top post (web mail :()

Can't we change our proposed workflow to match what Gerrit/Zuul are
doing? So endorse the gating workflow as the official solum workflow.

Pros:
- we just use the current Gerrit/Zuul as-is.
- great gating system for little effort
- lots of people already helping maintain it.
- maybe infra can use solum at some point

Cons:
- slightly more complex workflow (we could have an option to
   autoapprove?)

I am not sure if the flexibility of the plan matches the reality of
gerrit/zuul.
1 just run an assembly
   (review and test are a noop, straight to merge/and run)
2 build an image and run an assembly
3 bulld an image, test then run an assembly
4 review, bulld an image, test then run an assembly

So can we short cut the workflow of our current Gerrit/Zuul to do
that?

-Angus


From: Paul Czarkowski [paul.czarkow...@rackspace.com]
Sent: Thursday, February 13, 2014 9:44 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

On 2/12/14 5:16 PM, Roshan Agrawal roshan.agra...@rackspace.com wrote:


 -Original Message-
 From: devdatta kulkarni [mailto:devdatta.kulka...@rackspace.com]
 Sent: Wednesday, February 12, 2014 3:26 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: [openstack-dev] [Solum] Question about Zuul's role in Solum

 Hi,

 I have been looking at Zuul for last few days and had a question about
its
 intended role within Solum.

 From what I understand, Zuul is a code gating system.

 I have been wondering if code gating is something we are considering as
a
 feature to be provided in Solum? If yes, then Zuul is a perfect fit.
 But if not, then we should discuss what benefits do we gain by using
Zuul as
 an integral part of Solum.

 It feels to me that right now we are treating Zuul as a conduit for
triggering
 job(s) that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow

 In the language-pack working group we have talked about being able to
do CI
 on the submitted code and building the DUs only after tests pass.
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect
fit for this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue, and a mechanism
 to trigger job(s) that perform above mentioned steps.

 I guess it comes down to Solum's vision. If the vision includes
supporting,
 among other things, code gating to ensure that Solum-managed code is
 never broken, then Zuul is a perfect fit.
 Of course, in that situation we would want to ensure that the gating
 functionality is pluggable so that operators can have a choice of
whether to
 use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle
 management flow which deals with creation and scaling of
 DUs/plans/assemblies but not necessarily be a code gate, then we should
re-
 evaluate Zuul's role as an integral part of Solum.

The question is: is Zuul the right tool for the code deployment workflow
you outlined above? The code deployment workflow is the higher order
need.

The code gating functionality is also useful and potentially something we
would want to implement in Solum at some point, but the decision criteria
on what tool we use to implement the code deployment workflow depends on
how good is Zuul in helping us with the deployment workflow.

 Thoughts?

 Thanks,
 Devdatta



 ___
 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


The current proposed workflow for Solum (m1) is shorthanded to be something
like this

1. User writes code
2. User pushes to master branch in github
3. a github hook fires against the solum API.
4. Solum coordinates the testing/building and deployment of the app

None of this seems overly suitable for zuul to me ( not without a
significant
amount of work that will be needed to customize zuul to work for us ), and
can be easily ( for certain values of easy ) achieved with solum
forking a thread to do the build ( m1 implementation ? ) or solum
sending messages to a set of worker nodes watching a queue ( marconi? Post
m1, pluggable so operator could use their existing jenkins, etc ).

If an enterprise or provider wanted to implement code gating it would slip
in before option 1,  and would be relatively simple for an operator to
plug in their existing

Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Noorul Islam K M
devdatta kulkarni devdatta.kulka...@rackspace.com writes:

 Hi,

 I have been looking at Zuul for last few days and had a question
 about its intended role within Solum.

 From what I understand, Zuul is a code gating system.

 I have been wondering if code gating is something we are considering as a 
 feature
 to be provided in Solum? If yes, then Zuul is a perfect fit.
 But if not, then we should discuss what benefits do we gain by using Zuul
 as an integral part of Solum.

 It feels to me that right now we are treating Zuul as a conduit for 
 triggering job(s)
 that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow

 In the language-pack working group we have talked about being able to do
 CI on the submitted code and building the DUs only after tests pass. 
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect fit for 
 this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue,
 and a mechanism to trigger job(s) that perform above mentioned steps.

 I guess it comes down to Solum's vision. If the vision includes supporting, 
 among other things, code gating
 to ensure that Solum-managed code is never broken, then Zuul is a perfect fit.
 Of course, in that situation we would want to ensure that the gating 
 functionality is pluggable
 so that operators can have a choice of whether to use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle 
 management flow which deals with
 creation and scaling of DUs/plans/assemblies but not necessarily be a code 
 gate, then we should re-evaluate Zuul's role
 as an integral part of Solum.

 Thoughts?


Is Zuul tightly couple with launchpad? I see that most of the
information that it displays is coming from launchpad.

If it is, is it a good idea to force launchpad on users?

Regards,
Noorul

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


Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Adrian Otto

 On Feb 12, 2014, at 5:45 PM, Angus Salkeld angus.salk...@rackspace.com 
 wrote:
 
 Excuse top post (web mail :()
 
 Can't we change our proposed workflow to match what Gerrit/Zuul are
 doing? So endorse the gating workflow as the official solum workflow.

That's my preference so far.

 Pros:
 - we just use the current Gerrit/Zuul as-is.
 - great gating system for little effort
 - lots of people already helping maintain it.
 - maybe infra can use solum at some point

All good reasons. The last one is worth further exploration too.

 Cons:
 - slightly more complex workflow (we could have an option to
   autoapprove?)

I think with some noop techniques it his can be just as streamlined as the 
alternative approach. I would list an additional con:

- Installation complexity and resource requirements may be bigger using this 
approach.

It might be nice to validate and quantify this trade off to make sure it is not 
a showstopper.

 I am not sure if the flexibility of the plan matches the reality of
 gerrit/zuul.
 1 just run an assembly
   (review and test are a noop, straight to merge/and run)
 2 build an image and run an assembly
 3 bulld an image, test then run an assembly
 4 review, bulld an image, test then run an assembly
 
 So can we short cut the workflow of our current Gerrit/Zuul to do
 that?

The parts that perform image builds can be jobs that Zuul initiates. I struggle 
to imagine that noop jobs (#1) would be difficult, and that could be our first 
default to keep things simple to begin with.

Adding in reviews to the workflow (#4) makes complete sense, but will 
definitely be addressed in later milestones. If we start with Zuul to begin 
with, we have a good working example of how to set this up when we get to that 
point.

Are there alternate viewpoints to consider?

Thanks,

Adrian

 -Angus
 
 
 From: Paul Czarkowski [paul.czarkow...@rackspace.com]
 Sent: Thursday, February 13, 2014 9:44 AM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: Re: [openstack-dev] [Solum] Question about Zuul's role in Solum
 
 On 2/12/14 5:16 PM, Roshan Agrawal roshan.agra...@rackspace.com wrote:
 
 
 -Original Message-
 From: devdatta kulkarni [mailto:devdatta.kulka...@rackspace.com]
 Sent: Wednesday, February 12, 2014 3:26 PM
 To: OpenStack Development Mailing List (not for usage questions)
 Subject: [openstack-dev] [Solum] Question about Zuul's role in Solum
 
 Hi,
 
 I have been looking at Zuul for last few days and had a question about
 its
 intended role within Solum.
 
 From what I understand, Zuul is a code gating system.
 
 I have been wondering if code gating is something we are considering as
 a
 feature to be provided in Solum? If yes, then Zuul is a perfect fit.
 But if not, then we should discuss what benefits do we gain by using
 Zuul as
 an integral part of Solum.
 
 It feels to me that right now we are treating Zuul as a conduit for
 triggering
 job(s) that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow
 
 In the language-pack working group we have talked about being able to
 do CI
 on the submitted code and building the DUs only after tests pass.
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect
 fit for this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue, and a mechanism
 to trigger job(s) that perform above mentioned steps.
 
 I guess it comes down to Solum's vision. If the vision includes
 supporting,
 among other things, code gating to ensure that Solum-managed code is
 never broken, then Zuul is a perfect fit.
 Of course, in that situation we would want to ensure that the gating
 functionality is pluggable so that operators can have a choice of
 whether to
 use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle
 management flow which deals with creation and scaling of
 DUs/plans/assemblies but not necessarily be a code gate, then we should
 re-
 evaluate Zuul's role as an integral part of Solum.
 
 The question is: is Zuul the right tool for the code deployment workflow
 you outlined above? The code deployment workflow is the higher order
 need.
 
 The code gating functionality is also useful and potentially something we
 would want to implement in Solum at some point, but the decision criteria
 on what tool we use to implement the code deployment workflow depends on
 how good is Zuul in helping us with the deployment workflow.
 
 Thoughts?
 
 Thanks,
 Devdatta
 
 
 
 ___
 OpenStack-dev mailing list
 OpenStack-dev@lists.openstack.org
 http://lists.openstack.org/cgi-bin/mailman

Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

2014-02-12 Thread Clark Boylan
On Wed, Feb 12, 2014 at 7:25 PM, Noorul Islam K M noo...@noorul.com wrote:
 devdatta kulkarni devdatta.kulka...@rackspace.com writes:

 Hi,

 I have been looking at Zuul for last few days and had a question
 about its intended role within Solum.

 From what I understand, Zuul is a code gating system.

 I have been wondering if code gating is something we are considering as a 
 feature
 to be provided in Solum? If yes, then Zuul is a perfect fit.
 But if not, then we should discuss what benefits do we gain by using Zuul
 as an integral part of Solum.

 It feels to me that right now we are treating Zuul as a conduit for 
 triggering job(s)
 that would do the following:
 - clone/download source
 - run tests
 - create a deployment unit (DU) if tests pass
 - upload DU to glance
 - trigger the DU deployment workflow

 In the language-pack working group we have talked about being able to do
 CI on the submitted code and building the DUs only after tests pass.
 Now, there is a distinction between doing CI on merged code vs.
 doing it before code is permanently merged to master/stable branches.
 The latter is what a 'code gating' system does, and Zuul is a perfect fit 
 for this.
 For the former though, using a code gating system is not be needed.
 We can achieve the former with an API endpoint, a queue,
 and a mechanism to trigger job(s) that perform above mentioned steps.

 I guess it comes down to Solum's vision. If the vision includes supporting, 
 among other things, code gating
 to ensure that Solum-managed code is never broken, then Zuul is a perfect 
 fit.
 Of course, in that situation we would want to ensure that the gating 
 functionality is pluggable
 so that operators can have a choice of whether to use Zuul or something else.
 But if the vision is to be that part of an overall application lifecycle 
 management flow which deals with
 creation and scaling of DUs/plans/assemblies but not necessarily be a code 
 gate, then we should re-evaluate Zuul's role
 as an integral part of Solum.

 Thoughts?


 Is Zuul tightly couple with launchpad? I see that most of the
 information that it displays is coming from launchpad.

 If it is, is it a good idea to force launchpad on users?

 Regards,
 Noorul

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

I can't think of any places that Zuul requires launchpad (or displays
launchpad info for that matter). It is a bit coupled to Gerrit on one
end and Gearman on the other, but not in an extreme way (the use of
Gearman makes a bunch of sense imo, but having additional triggers
instead of just Gerrit sounds great to me).

Clark

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