<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<div>
<div>Good question Randall.</div>
<div><br>
</div>
<div>Either we implement some workflow, which is what we do now that is not configurable, or we adopt another workflow system. We figured that using an existing workflow system would be smarter than duplicating one by making Solum any more configurable.</div>
<div><br>
</div>
<div>We have plans to allow the workflow component to be pluggable, so if you prefer to have Jenkins or xyz underneath, that would be possible.</div>
<div><br>
</div>
<div>We selected Mistral as a first implementation attempt since we already use a devstack environment for the basic deployment, and adding Mistral to that is rather easy.</div>
<div><br>
</div>
<div>Adrian</div>
<div><br>
</div>
<div>
<div style="font-size:10px; color:#575757">Sent from my Verizon Wireless 4G LTE smartphone</div>
</div>
<br>
<br>
<div>-------- Original message --------</div>
<div>From: Randall Burt </div>
<div>Date:06/04/2014 12:35 PM (GMT-08:00) </div>
<div>To: "OpenStack Development Mailing List (not for usage questions)" </div>
<div>Subject: Re: [openstack-dev] [solum] reviews for the new API </div>
<div><br>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">Sorry to poke my head in, but doesn't that beg the question of why you'd want to expose some third party DSL in the first place? If its an advanced feature, I wonder why it would be even considered before the 90% solution works, much
less take a dependency on another non-integrated service. IMO, the value of Solum initially lies in addressing that 90% CI/CD/ALM solution well and in a way that doesn't require me to deploy and maintain an additional service that's not part of integrated
OpenStack. At best, it would seem prudent to me to simply allow for a basic way for me to insert my own CI/CD steps and be prescriptive about how those custom steps participate in Solum's workflow rather than locking me into some specific workflow DSL. If
I then choose to use Mistral to do some custom work, I can, but Solum shouldn't care what I use.<br>
<br>
If Solum isn't fairly opinionated (at least early on) about the basic CI/CD->ALM lifecycle and the steps therein, I would question its utility if its a wrapper over my existing Jenkins jobs and a workflow service.<br>
<br>
On Jun 4, 2014, at 1:10 PM, Julien Vey <vey.julien@gmail.com> wrote:<br>
<br>
> Murali, Roshan.<br>
> <br>
> I think there is a misunderstood. By default, the user wouldn't see any "workflow" dsl. If the user does not specify anything, we would use a pre-defined mistral workbook defined by Solum, as Adrian described<br>
> <br>
> If the user needs more, mistral is not so complicated. Have a look at this example Angus has done
<a href="https://review.openstack.org/#/c/95709/4/etc/solum/workbooks/build.yaml">
https://review.openstack.org/#/c/95709/4/etc/solum/workbooks/build.yaml</a><br>
> We can define anything as solum actions, and the users would just have to call one of this actions. Solum takes care of the implementation. If we have comments about the DSL, Mistral's team is willing to help.<br>
> <br>
> Our end-users will be developers, and a lot of them will need a custom workflow at some point. For instance, if Jenkins has so many plugins, it's because there are as many custom build workflows, specific to each company. If we add an abstraction on top of
mistral or any other workflow engine, we will lock developers in our own decisions, and any additional feature would require a new development in Solum, whereas exposing (when users want it) mistral, we would allow for any customization.<br>
> <br>
> Julien<br>
> <br>
> <br>
> <br>
> <br>
> 2014-06-04 19:50 GMT+02:00 Roshan Agrawal <roshan.agrawal@rackspace.com>:<br>
> Agreeing with what Murali said below. We should make things really simple for the 99 percentile of the users, and not force the complexity needed by the minority of the “advanced users” on the rest of the 99 percentile users.
<br>
> <br>
> <br>
> <br>
> Mistral is a generic workflow DSL, we do not need to expose all that complexity to the Solum user that wants to customize the pipeline. “Non-advanced” users will have a need to customize the pipeline. In this case, the user is not necessarily the developer
persona, but typically an admin/release manager persona. <br>
> <br>
> <br>
> <br>
> Pipeline customization should be doable easily, without having the understand or author a generic workflow DSL.<br>
> <br>
> <br>
> <br>
> For the really advanced user who needs to have a finer grained need to tweak the mistral workflow DSL (I am not sure if there will be a use case for this if we have the right customizations exposed via the pipeline API), we should have the “option” for the
user to tweak the mistral DSL directly, but we should not expect 99.9% (or more) of the users to deal with a generic workflow.<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> From: Murali Allada [<a href="mailto:murali.allada@RACKSPACE.COM">mailto:murali.allada@RACKSPACE.COM</a>]
<br>
> Sent: Wednesday, June 04, 2014 12:09 PM<br>
> <br>
> <br>
> To: OpenStack Development Mailing List (not for usage questions)<br>
> Subject: Re: [openstack-dev] [solum] reviews for the new API<br>
> <br>
> <br>
> <br>
> Angus/Julien,<br>
> <br>
> <br>
> <br>
> I would disagree that we should expose the mistral DSL to end users.<br>
> <br>
> <br>
> <br>
> What if we decide to use something other than Mistral in the future? We should be able to plug in any workflow system we want without changing what we expose to the end user.<br>
> <br>
> <br>
> <br>
> To me, the pipeline DSL is similar to our plan file. We don't expose a heat template to our end users.<br>
> <br>
> <br>
> <br>
> Murali<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> On Jun 4, 2014, at 10:58 AM, Julien Vey <vey.julien@gmail.com><br>
> <br>
> wrote:<br>
> <br>
> <br>
> <br>
> <br>
> Hi Angus,<br>
> <br>
> <br>
> <br>
> I really agree with you. I would insist on #3, most of our users will use the default workbook, and only advanced users will want to customize the workflow. "advanced" users should easily understand a mistral workbook, cause they are "advanced"<br>
> <br>
> <br>
> <br>
> To add to the cons of creating our own DSL, it will require a lot more work, more design discussions, more maintenance... We might end up doing what mistral is already doing. If we have some difficulties with Mistral's DSL, we can talk with the team, and
contribute back our experience of using Mistral.<br>
> <br>
> <br>
> <br>
> Julien<br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> <br>
> 2014-06-04 14:11 GMT+02:00 Angus Salkeld <angus.salkeld@rackspace.com>:<br>
> <br>
> -----BEGIN PGP SIGNED MESSAGE-----<br>
> Hash: SHA1<br>
> <br>
> Hi all<br>
> <br>
> I have posted this series and it has evoked a surprising (to me) amount<br>
> of discussion so I wanted to clarify some things and talk to some of the<br>
> issues so we can move forward.<br>
> <br>
> So first note is this is an early posting and still is not tested much.<br>
> <br>
> <a href="https://review.openstack.org/#/q/status:open+project:stackforge/solum+branch:master+topic:new-api,n,z">
https://review.openstack.org/#/q/status:open+project:stackforge/solum+branch:master+topic:new-api,n,z</a><br>
> <br>
> First the terminology<br>
> I have a pipeline meaning the association between a mistral workbook,<br>
> a trigger url and a plan. This is a running entity not just a<br>
> different workbook.<br>
> <br>
> The main issue seems to be the extent to which I am exposing the mistral<br>
> workbook. Many of you expected a simpler workflow DSL that would be<br>
> converted into the mistral workbook.<br>
> <br>
> The reason for me doing it this way are:<br>
> 1) so we don't have to write much code<br>
> 2) this is an iterative process. Let's try it the simple way first and<br>
> only make it more complicated if we really need to (the agile way?).<br>
> 3) to be consistent in the way we treat heat templates, mistral<br>
> workbooks and language packs - i.e. we provide standard ones and<br>
> allow you to customize down to the underlying openstack primitives<br>
> if you want (we should aim for this to be only a small percentage<br>
> of our users).<br>
> eg. pipeline == (check-build-deploy mistral workbook +<br>
> basic-docker heat template + custom plan)<br>
> here the user just choose the heat template and workbook from a list<br>
> of options.<br>
> <br>
> 4) if the mistral dsl is difficult for our users to work with we should<br>
> give the mistral devs a chance to improve it before working around<br>
> it.<br>
> 5) our users are primary developers and I don't think the current<br>
> mistral DSL is tricky to figure out for someone that can code.<br>
> 6) doing it this way we can make use of heat and mistral's horizon<br>
> plugins and link to them from the pipeline instead of having to<br>
> redo all of the same pages. In a similar why that heat links to<br>
> servers/volumes etc from a running stack.<br>
> <br>
> - -Angus<br>
> <br>
> <br>
> Some things to note:<br>
> - - the entire mistral engine can be replaced with an engine level plugin<br>
> <br>
> -----BEGIN PGP SIGNATURE-----<br>
> Version: GnuPG v1<br>
> Comment: Using GnuPG with Thunderbird - <a href="http://www.enigmail.net/">http://www.enigmail.net/</a><br>
> <br>
> iQEcBAEBAgAGBQJTjwz2AAoJEFrDYBLxZjWoEr0H/3nh66Umdw2nGUEs+SikigXa<br>
> XAN90NHHPuf1ssEqrF/rMjRKg+GvrLx+31x4oFfHEj7oplzGeVA9TJC0HOp4h6dh<br>
> iCeXAHF7KX+t4M4VuZ0y9TJB/jLxfxg4Qge7ENJpNDD/gggjMYSNhcWzBG87QBE/<br>
> Mi4YAvxNk1/C3/YZYx2Iujq7oM+6tflTeuoG6Ld72JMHryWT5/tdYZrCMnuD4F7Q<br>
> 8a6Ge3t1dQh7ZlNHEuRDAg3G5oy+FInXyFasXYlYbtdpTxDL8/HbXegyAcsw42on<br>
> 2ZKRDYBubQr1MJKvSV5I3jjOe4lxXXFylbWpYpoU8Y5ZXEKp69R4wrcVISF1jQQ=<br>
> =P0Sl<br>
> -----END PGP SIGNATURE-----<br>
> <br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> OpenStack-dev@lists.openstack.org<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> <br>
> <br>
> <br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> OpenStack-dev@lists.openstack.org<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> <br>
> <br>
> <br>
> <br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> OpenStack-dev@lists.openstack.org<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
> <br>
> <br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> OpenStack-dev@lists.openstack.org<br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
OpenStack-dev@lists.openstack.org<br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div>
</span></font>
</body>
</html>