Chef Blogs

Announcing the Eventual Retirement of Omnibus

Clinton Wolfe | Posted on | Chef Infra Client | Chef InSpec | Chef Workstation

The History of Open-Source Chef Solutions 

The Progress Chef solution is well-known in the open-source community, with hundreds of projects that have been initiated or adopted by the organization. Our core products, such as Chef Infra Client and Chef InSpec, continue to be open-sourceAll software projects naturally experience a lifecycle as they pass out of need by the sponsoring organization. Today we'll discuss the future of one of Chef's underlying packaging components, Omnibus. 

What is Omnibus? 

Most Chef customers need not be aware of Omnibus. The Chef platform uses Omnibus to package certain tools, such as Chef Infra Client, Chef InSpec and Chef Workstation, into operating-systecompatible packages. Invisible to the user, this underlying technology was invented in a time when no practical alternatives existed. However, Chef has developed alternatives that we feel better serve our customers. 

What's Happening 

Over the next few weeks, the Progress Chef team will be end-of-lifing the public Omnibus software packaging system. While Chef-provided Omnibus-based software (such as Chef Infra Client 18) will continue to be released and supported, Progress will no longer contribute to or maintain the public Omnibus software repositories. Specifically, the repositories chef/omnibus, chef/omnibus-software, chef/omnibus-toolchain, and chef/chef-foundation will be archived and moved to chef-boneyard 

Likewise, the build pipelines for Chef products will no longer be publicly available. Where currently available, testing and other pipelines will continue to be publicly accessible.  

Why We're Doing This 

Over the past several years, the Progress Chef team has been modernizing how our products are builtpackaged and delivered. With the introduction of Chef Infra Client 19, InSpec 7, Habitat 2.0 and related tooling, we formally adopted Habitat‑based builds as the foundation for the next phase of the Chef ecosystem. We've been working toward this goal for a long time, with Habitat packages available back to Chef Infra Client 14.  This shift represents a significant milestone in our ongoing efforts to simplify our build pipeline, accelerate delivery, improve consistency and better position our products for the future.  

Public Omnibus infrastructure also has numerous maintenance problems, with several build platforms end-of-lifeThis presents unacceptable maintenance and security complexity. By privatizing these platforms, we gain access to extended support. 

Finally, by releasing control of the open-source Omnibus project, the Chef team is enabling the community to take the project in any direction it may choose. While the Progress Chef team will no longer be publicly involved in Omnibus, the archive of the code will continue to be freely available. On behalf of everyone on the Progress Chef team, we wish to express gratitude for the many contributions to the project over the years. 

Removing Omnibus from Our Current Products 

Removing Omnibus support from our current-version product repositories is therefore a follow-up stepeliminating unused code paths, reducing maintenance overhead and keeping our codebases aligned with how our products are built and delivered today. 

This change applies comprehensively to all products and current release branches. It includes current products such as Chef Infra Client 19 and InSpec 7.  

What This Means for the Repositories 

In the coming months, we plan to archive the chef/omnibus, chef/omnibus-software, chef/omnibus-toolchain and chef/chef-foundation repositories. In alignment with Chef processes, the repositories will be moved to the chef-boneyard area. Archiving reflects the reality that these projects are no longer part of the Chef team’s supported product lineup and that we are no longer publicly actively developing or maintaining them. While the projects will continue to be available for reference in read-only mode, it means that no new contributions may be made to the repositories and no new issues will be accepted. 

The Role Omnibus Has Played 

Chef Omnibus has historically been the standard way Chef products were packaged and distributed as self-contained installers. Omnibus is a technology that allows packaging a piece of software and all of its dependencies in one monolithic directory, and then packaged that directory as a native installer (RPMs, DEBs, MSIs, and DMGs - packages you could directly install on your computer). 

 For nearly a decade, it enabled consistent, cross platform builds by bundling applications and their dependencies into a single artifact. That contribution helped countless users deploy the Chef solution reliably across diverse environments and operating systems. 

However, Omnibus required dedicated build pipelines for every version and variation of every operating system we supported. In addition, it was required to maintain separate build instructions for every dependency package included in the package. 

Additionally, Omnibus is a huge security surface for exposing CVEs. We have a commitment to release packages without vulnerabilities to the extent possible. With such a large spread of dependencies and a large spread of packages to build, the security workload is quite large.  Providing secure software - complete with supply chain - is an essential requirement in today's world. 

The Shift from Omnibus 

With the shift to Habitat based builds, the core problems Omnibus was created to solve are now addressed in a more flexible and sustainable way. Habitat provides strong build isolation and dependency management, consistent packaging across environments, support for modern delivery pipelines and air-gapped systems. 

All forward-facing Chef products have transitioned to Hab-based packaging - Chef 19, InSpec 7, Workstation 26, Habitat itself of course, Test Kitchen Enterprise, alWorkstation components such as Knife, Cookstyle, Ohai and so on. Henceforthfuture Chef products no longer rely on Omnibus for building or packaging. Existing Omnibus-based products such Chef Infra Client 18 and InSpec 5 continue to enjoy commercial support  in accordance with their publish support lifecycles. 

A Thoughtful Transition 

The basic experience of package installation remains the same - you simply install an OS-native package, such as a RPM, DEB, MSI or DMG file, just like an omnibus-created  package. The fact that it contains Habitat packages is largely transparent to the user. However, for those wishing to install multiple versions in harmony with other tools, Habitat-based installs offer an easy path forward. 

Call to Action 

Get started experiencing the new Habitat-based packaging approach with Chef Infra Client 19 today - download it at https://docs.chef.io/client/19.1/install/