It’s with great excitement and some relief that we are introducing the ROS 2 Windows Chef Cookbook. This cookbook provides the means of verifiably installing all ROS 2 dependencies on a Windows machine. As part of this work and continuing the work to move the Windows CI machines to run in a docker container, earlier this week we transitioned all Windows jobs on ci.ros2.org to build the docker container from this cookbook.
Chef is a configuration management tool and can be used to manage complex server infrastructure, but it can also be used as a single machine configuration utility with Chef-solo. The primary benefits of using a cookbook over a build script or manually installing dependencies is that these cookbooks provide means of verifying the installed software and only upgrading or installing components when necessary. They are also composable with other cookbooks and recipes.
The ROS 2 Windows cookbook is available on github where a README for setup and installation is also available. As part of the CI farm, these cookbooks are being verified on a daily basis.
These cookbooks capitalize on the infrastructure-as-code paradigm and allow all changes to be peer-reviewed and tested before being committed. These changes will further improve the reliability and ability to develop for ROS 2 on Windows.
Yours in difficult to google culinary terminology,
Stephen
Whoops, forgot to mention who “we” are. This was work done at Open Robotics with a lot of help from the operations group @nuclearsandwich, @cottsay and @jrivero.
Just want to send an extra to @brawner for the chef work:
Cinc Client finished, 66/74 resources updated in 11 minutes 36 seconds
Prior to the chef in docker work and Windows CI builds are now officially containerized and virtualized on ci.ros2.org before it we’d spend entire afternoons getting our Windows machines updated for CI and potentially entire days wrangling VMs for local development. Now, once you adjust to chef, it can happen in less than 30 minutes (adding in the time it takes to install Windows, chef, and Git). Thanks!