[Fabric8 DevOps] New jenkins docker workflow based CI/CD - and Chaos Monkey!

87 views
Skip to first unread message

James Strachan

unread,
Jul 11, 2015, 8:50:18 AM7/11/15
to fab...@googlegroups.com
We've just cut fabric8 2.2.7 

Which now includes a Chaos Monkey; which is particularly fun if you are also using chat ;)

This release also includes the new Jenkins Docker Workflow based CI / CD. 

This is a nice concise groovy DSL for CD pipelines using standard docker images to install/run tools (eg a docker image for maven, gradle, nodejs etc). It's all very groovy! ;)

We'll cut a demo video soon to show you what it looks like. Until then, here's a quick summary:


First run the 'cdelivery' app via the 'Run...' button in the fabric8 console.

Now if you create a project via the web console it now prompts you to pick a reusable Jenkins Docker workflow script for the project. Here's the current shared library thats used by default (you can specify a different one via a template parameter when you install Fabric8 DevOps):

You can choose to share the workflow scripts across projects or you can copy the workflow script into your projects source code. 

Either way; if a flow is chosen then the Jenkins build is created; the chat room & issue tracker are made and then the web hooks are created to wire everything together properly. Then the console links everything together nicely; so you can easily navigate to the repository, build, chat room, issue tracker or team page on any of your projects.

You can also edit the devops settings via the settings button; so you can change the build flow at any time. Also you an use the devops-edit command with JBoss Forge via the fabric8 forge addons - either on the command line or in your IDE (eclipse or IntelliJ).

Finally if you have a Jenkins job DSL build that acts as a seed to generate your CI jobs; you can automate the creation of the devops resources (Jenkins build, chat room, issue tracker, links & web hooks) via the maven goal...

  mvn fabric8:devops 

The tooling all looks for a file called 'fabric8.yml' which keeps track of the shared Jenkins flow for the project; the Jenkins build name, chat room & issue tracker etc. it also keeps track of the links to everything - so you can navigate around from your IDE/editor too.


Fabric8 DevOps is really starting to come together now! I'm also hoping we can build a great library of reusable docker workflow scripts that we can all share - or you can fork the library and hopefully contribute back some great workflows!

Please have a play with it and let us know your thoughts. Got any ideas for how to make it better? Please raise an issue - or better yet a pull request ;)

James Strachan

unread,
Jul 13, 2015, 4:33:02 AM7/13/15
to fab...@googlegroups.com
BTW if you try Chaos Monkey and run it via the Run... button on the fabric8 console and you hang out in the #fabric8_default chat room you'll probably see a message like

  Chaos Monkey is starting in namespace default with include patterns '${CHAOS_MONKEY_INCLUDES}' exclude patterns 'letschat*,gogs*' and a kill frequency of 60 seconds. Here I come!
  No matching pods available to kill. Boo!

It looks like there's a bug where blank template parameters are not being replaced in environment variable expressions; so that the include pattern is set to ${CHAOS_MONKEY_INCLUDES}'.

So for now when clicking the Run.. button make sure you type `*` for the "Chaos Monkey Includes" text field!


--
James
-------
Red Hat

Twitter: @jstrachan
Email: james.s...@gmail.com
hawtio: http://hawt.io/

Open Source DevOps and Integration
Reply all
Reply to author
Forward
0 new messages