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

2014-02-17 Thread Fox, Kevin M
A very well thought out response. Thank you. 

So long as the user interface for enabling additional major functionality is 
very simple like " enable gating", and so long as a defaulted off 
instance can be quickly "upgraded", defaulting to off wouldn't be too bad.

I also like the plan of using the battle/scale tested zuul and turning off the 
parts we don't need. One reason I chose OpenStack up front was I knew it would 
scale way past anything I would need it for, because it was already running at 
huge scale. Knowing zuul/solum could handle the really complex workloads even 
if I don't use it all at first is comforting.

Thanks,
Kevin

From: Adrian Otto [adrian.o...@rackspace.com]
Sent: Sunday, February 16, 2014 3:47 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Solum] Question about Zuul's role in Solum

On Feb 16, 2014, at 2:31 AM, Robert Collins 
 wrote:

> On 16 February 2014 17:57, Jay Pipes  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 

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 
 wrote:

> On 16 February 2014 17:57, Jay Pipes  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

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  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 
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-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  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 Robert Collins
On 15 February 2014 14:34, Fox, Kevin M  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 
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-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 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 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 Roshan Agrawal


> -Original Message-
> From: Clayton Coleman [mailto:ccole...@redhat.com]
> Sent: Thursday, February 13, 2014 4:34 PM
> To: OpenStack Development Mailing List (not for usage questions)
> Subject: Re: [openstack-dev] [Solum] Question about Zuul's role in Solum
> 
> 
> 
> - 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 

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 ( 

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 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 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 :

> On Wed, Feb 12, 2014 at 7:25 PM, Noorul Islam K M 
> wrote:
> > "devdatta kulkarni"  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-12 Thread Clark Boylan
On Wed, Feb 12, 2014 at 7:25 PM, Noorul Islam K M  wrote:
> "devdatta kulkarni"  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


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"  
> 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"  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 wi

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

2014-02-12 Thread Noorul Islam K M
"devdatta kulkarni"  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 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"  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 deplo

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 
 wrote:

> 
> 
> On 2/12/14 5:16 PM, "Roshan Agrawal"  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 relativel

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 
 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 mail

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"  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 Roshan Agrawal

> -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


[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