GitHub has released the code of its Puppet development and testing tool called Octacatalog-diff. This new piece of software is already powering GitHub.com, which is one of the leading open source online repositories.
Puppet is necessary for a platform like GitHub as it offers configuration management and IT automation for systems based on cloud, security and DevOps. But as Puppet management is not an effortless task, the code hosting platform is using Octacatalog-diff.
“With this tool, developers are able to preview the effects of their change across all roles via a distributed ‘catalogue difference’ test that takes less than three minutes to run,” explains Kevin Paulisse, a site reliability engineer at GitHub, in a blog post.
GitHub’s team tests Puppet code through multiple strategies, namely deployment, automated and catalogue testing. Therefore, it required a unified solution in the form of Octocatalog-diff. This single tool ensures changes in various Puppet roles across the hosting ecosystem without affecting any rules for automation.
Paulisse claims that the output through Octacatalog-diff can be generated in less than 15 seconds and a comparison between the master branch and the Puppet code in the present directory can be obtained without any traditional workflow of committing code or CI (continuous integration) jobs. Moreover, it helps in obviating the deployment of code to a node and then review of the final results.
“Upon every push, Octocatalog-diff compiles the catalogues of over 50 critical roles, using real node names and facts to ensure that changes to one role do not unexpectedly break Puppet catalogues for other roles,” Paulisse added.
Developers can leverage the open source availability of Octacatalog-diff and deploy its existence on any of their projects. It comes under the MIT license and is accessible from a GitHub repository.
Another step towards community
The launch of Octocatalog-diff is a new move by GitHub to get closer to the open source community. Last month, the company released the code of its load balancing solution GitHub Load Balancer (GLB) to deliver its infrastructure piece to developers.