An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
Steffen Gebert - Monday, February 6, 14:40 - 15:20 - B3.019
Infrastructure is code and code should be tested. For Chef cookbooks, it is however up to the user to establish such testing and release workflows, at least when relying solely on non-commercial tooling. This talk introduces the - still far from perfect - implementation of a Chef cookbook CI/CD pipeline used in the TYPO3 open source project, publicly available at https://chef-ci.typo3.org. The complete setup can be instantiated using a publicly available cookbook and is self-contained, i.e., the cookbook passes itself through its pipeline.
This implementation makes use of the novel Jenkins Pipeline plugins, which allow to define pipelines as code.
By pointing to a GitHub organization, any code changes in its cookbook repos trigger a pipeline execution. After passing successfully through the different test stages, including parallelized test-kitchen runs, the upload to the Chef Server terminates the pipeline.
- Public Jenkins instance at chef-ci.typo3.org (where you can see it in action)
- The jenkins-chefci cookbook (the foundation for setting it up on your own)
- Top-level cookbook for chef-ci.typo3.org (wrapping jenkins-chefci)
- Pipeline shared library (pipeline implementation)
About Steffen Gebert
Steffen is an infrastructure maintainer for the TYPO3 open source project, where he also established the described Chef workflow.
He is about to finish his PhD in computer science with a focus on softwarized networks at the University of Würzburg, Germany. Further, he co-organizes the DevOps Meetup Würzburg.