Here’s what happened in June across the Chef, Habitat, and InSpec open-source communities.
Chef
This month we released Chef Client 14.2.0, the latest and greatest in the Chef 14 series. This version of Chef Client uses the inspec-core and train-core gems rather than all of InSpec and Train, reducing the size of the on-disk package by approximately 20%. We also added support for using ssh-agent with knife.
Some important decisions are being contemplated over in the Chef RFC process. One extremely beneficial RFC clarifies the intended behavior of custom resources from cookbooks when an identically-named resource definition already exists in core Chef. This has been a particular problem as we ingest more and more resources into Chef itself to provide a “batteries included” product. Sometimes, as part of this import, the resource’s API changes, which — without the special handling described in this RFC — causes downstream code breakage.
We are also hard at work on clarifying the relationship between Chef Workstation and the ChefDK and how the command line experience will be unified. You can follow that discussion here.
Finally, we released Chef Client 13.9.4 which contains mostly security fixes for those users still using Chef 13.
Habitat
The big news in Habitat-land is that we completed the refresh of the core plans, starting with a newer version of glibc and rebuilding everything up from that. Unfortunately, newer versions of glibc are only compatible with Linux kernels > 3.2, which breaks Habitat running on certain platforms and versions like Red Hat Enterprise Linux 6. Rather than downgrading glibc, we are going to do the work to separate older Linux kernels and newer Linux kernels by treating them as different architectures e.g. “linux” and “linux2”. This will also let us support different processor architectures as well like ARM.
We also shipped a new version of Habitat, 0.57.0, that contains several minor improvements as well as updating the Helm and Kubernetes exporters to use the latest manifest version.
There were many Habitat announcements at ChefConf 2018: the Habitat exporter for Helm and Azure Kubernetes Service, the Open Service Broker reference implementation, and the general availability of Habitat on-premise. The team has also been preparing for a major release of the Habitat supervisor to be released shortly: you should read their post on what breaking changes will be in the forthcoming Habitat 0.56.0.
InSpec
We released InSpec several times this month, mostly for minor features and bugfixes. InSpec 2.1.84 and above can now export its reports in YAML format; AWS ELBs can now be tested, starting with InSpec 2.2 and the azure_generic_resource has been deprecated. Clinton Wolfe also wrote a blog post describing the differences between the singular and plural forms of resources in InSpec and in particular, illustrating how you can use the filtering capabilities of the plural forms to home in on specific pieces of cloud infrastructure you want to test (e.g. only certain security groups matching an expression) in a neat and tidy way. We recommend giving that post a read.
Finally, Stuart Paterson shows you how to use InSpec’s Google Cloud Platform (GCP) resource pack in order to test cloud infrastructure in GCP.