This episode covers the latest stable releases in the Chef ecosystem: Infra Client 19 built on Habitat with standard licensing and Ruby 3.4, the oci cloud helper, migration from legacy releases, and the Infra Server 15.10 updates with Valkey, Rack, Erlang/OTP, PostgreSQL 14, and OpenSearch.

In episode 19 you learned how to analyze runs and solve operational problems. Now let's pause from daily practice and look at the direction of the product itself. The Chef ecosystem moves fast: Infra Client 19 was released as an LTS release in 2026 with an overhauled foundation, and Infra Server 15.10 brings security updates and new components. Episode 20 maps these changes — what is new, why it matters, and how to migrate without pain.
The most fundamental change in Infra Client 19 is how it is built. Legacy releases used Omnibus — bundling the entire runtime (Ruby, libraries, extensions) into one large installer. Starting with 19.x, Chef has moved to Chef Habitat: a more modular application package with a clear dependency manifest and an auditable trail. The practical consequences:
For those of you managing many nodes, this change is felt during upgrade and rollback: older versions can be kept around more cleanly, and runtime behavior is far more transparent. There is no more "what is in this package" mystery — everything is manifested.
Important
Before upgrading to 19.x in production, read the release notes on docs.chef.io for the list of deprecated features. Some older cookbooks use APIs that have been removed — run a single test node first and watch its logs before rolling out to all nodes.
Infra Client 19 adopts standard licensing — the package ships an explicit license file for every component, making compliance and audits easier. For organizations that must account for dependency licenses, this is a real improvement: no more guessing the license of a transitive library.
On the runtime side, Chef Infra Client 19 runs on Ruby 3.4. The impact is felt in security (long-awaited fixes) and in the syntax your cookbooks can use. Since cookbooks are written in the Ruby DSL, a newer Ruby version means access to more modern language features — and also the obligation to make sure the libraries your cookbooks use are compatible. Run the Test Kitchen tests (episode 18) on this new client before rolling out.
Chef provides helpers for detecting cloud environments, such as ec2? for AWS. In 19.x, the new oci? helper adds support for Oracle Cloud Infrastructure. Inside a cookbook, this helper can be used to make decisions based on the cloud provider:
if oci?
package 'oci-utils' do
action :install
end
endThis pattern is similar to what you already know from episode 14: the same cookbook can adapt to different providers just by checking its cloud helper. oci? brings OCI support on par with AWS, GCP, and Azure.
Migrating from an older Infra Client (Omnibus) to 19.x (Habitat) follows a predictable path:
chef-client --version
chef-apply --versionchef-client -W (why-run) on a single test node in the staging environment.Starting fresh is always safer than preserving old artifacts. If you run many nodes, push new bootstraps (episode 14) toward images that already carry 19.x, so new nodes are born with the new foundation from the start.
On the server side, the 15.10.x release focuses on security and component modernization. There are a few component changes you should know about:
Most of these changes are internal, but their impact is felt in long-term stability and security. To put it all in one picture, here is a summary of the component moves:
| Component | Previously | On Server 15.10 |
|---|---|---|
| In-memory datastore | KeyDB | Valkey |
| Web application layer | Old Rack | Latest Rack |
| Server runtime | Old Erlang/OTP | New Erlang/OTP |
| Database | Older PostgreSQL | PostgreSQL 14 |
| Node data search | Elasticsearch | OpenSearch |
A server upgrade must be planned like a database upgrade — with a full backup and a maintenance window.
Upgrading to Infra Server 15.10 is done via chef-server-ctl with a standardized flow:
chef-server-ctl upgrade
chef-server-ctl status
chef-server-ctl testRun before the upgrade: chef-server-ctl backup for a full snapshot, and make sure there is enough disk space for the data migration (PostgreSQL and OpenSearch need extra space). chef-server-ctl test after the upgrade validates basic functionality — its calls traverse the API, authentication, and node data queries. If your organization uses HA (discussed in episode 9), update the secondary nodes in the recommended order and verify replication before failing over the primary.
Warning
The Infra Server is the source of truth for hundreds of nodes. Never upgrade without a recoverable backup, and never start an upgrade at peak working hours — a half-failed migration of a component such as OpenSearch takes time to recover.
Before and after every version move, get into the habit of verifying what is actually installed. Do not trust your memory — verification commands are more honest:
chef-client --version
knife --versionCompare the output with the latest release notes on docs.chef.io. For a big fleet, verify in stages: one test node, then a small group, then all nodes. Version consistency across nodes is a prerequisite for diagnosing problems — if versions differ, the same error can look different on each node and make fixes harder.
Episode 20 maps the direction of the Chef ecosystem in 2026: Infra Client 19 built on Habitat with standard licensing, Ruby 3.4, the oci? helper, and a clear migration path; and Infra Server 15.10 with Valkey, Rack, Erlang/OTP, PostgreSQL 14, and OpenSearch as a more modern foundation.
Key takeaways:
chef-server-ctl test are the mandatory price.In episode 21 we will assemble everything into a production-ready architecture: Workstation together with a high-availability Infra Server, Policyfile, Automate for compliance, the bootstrap flow, and the CI/CD pipeline from Test Kitchen to InSpec and Automate. See you there!