CFEngine 2023 retrospective

Posted by Cody Valle
December 31, 2023

As we bid farewell to 2023, it’s once again time to reflect on the milestones and progress we’ve made throughout the year. This year is especially significant because it marks 30 years since CFEngine’s birth. From its humble beginnings at the University of Oslo to the thousands of implementations across the world and counting, CFEngine has not only weathered the twists and turns of life, but has thrived in an industry where many have come and gone.

While we here at CFEngine believe the technology itself is part of what makes it so special, it’s also because of the loyal users and community who have contributed over the years. Personally speaking, it’s an honor to have played a small part in its overall success. There aren’t many times in life where you get an opportunity to work with such an instrumental technology. From the depths of the ocean floor, to the edges of space, to services that you depend on in your daily lives, CFEngine is still being used and deployed in the most critical infrastructure environments because of its reliability, battle-tested technology, and the fact that “it just works”.

Without further ado, here are the highlights from 2023 and a sneak peek into what to expect for 2024:

Webinars: ‘The agent is in’

This year we celebrated the show’s 2nd year anniversary. Whether you’re an expert or new to CFEngine, join us every last Thursday of the month as we cover new tips and tricks and hangout as a community. Our January’s webinar will feature the creator of CFEngine, Mark Burgess. Don’t miss this chance to hear his story and how CFEngine came to be. Reserve your spot now.

You can catch all previous episodes here on the official CFEngine YouTube channel.

Feature releases: 3.22 and 3.23 (non-LTS)

2023 brought two new feature releases - 3.22 and 3.23. These are not LTS releases, not supported, but allow us to introduce new features and receive feedback before the upcoming 3.24 LTS release next summer. CFEngine 3.23 was codenamed ‘anniversary’ to commemorate 30 years of CFEngine.

Feature: Groups in Mission Portal

Using CFEngine there are many ways to group and classify your hosts. In order to group their hosts, our users use a combination of JSON files, CFEngine policy language (with variables, classes, and class expressions), host specific data and host filters in Mission Portal. There was, however, no straightforward way for a Mission Portal user to save a selection of hosts (a filter) and then start doing things (reports, changes) with those hosts.

The new Groups feature enables making configuration changes to many hosts at one time, and also allows saving selections of hosts and reusing them in various reports, making Mission Portal more intuitive and user-friendly.

Groups application showing a group of Ubuntu hosts across different versions.

Feature: Include / exclude hosts by hostname, IP address, subnet, MAC address

We are continuing to improve the inventory reports and their host filters within Mission Portal by adding more ways to specify lists of hosts to include and exclude.

By specifying lists of hosts by their IP, MAC, or hostname, they will stay in the list, even if their ID changes (for example after reinstalling CFEngine on a host, rotating a host’s key, or replacing one host with another). When combining rules with lists of hosts to include and exclude, exclusion will always take precedence, so the hosts you put into the exclusion list will never show up in the results.

Host include / exclude dialog showing lists of hosts can be included and excluded based on hostname, IP, MAC address and CFEngine ID

LTS releases: 3.18 and 3.21 patches

Multiple patches have been released throughout 2023 for current LTS supported versions:

We encourage all of our users to stay up to date with the latest patch releases, to benefit from bug fixes, security patches, and dependency updates. Please note that 3.18 LTS ’end of support’ is slated for next August 2023. If you need assistance upgrading to one of our supported versions, please contact us. For more information on previous and future ’end of support’ dates, please visit here.

Blog post: Migrating to CFEngine Build

In 2021, we introduced CFEngine Build to help users consume reusable policy, making it easier to deploy and manage policy sets. As many users continue to explore how to leverage CFEngine Build within their environments, Nick Anderson wrote an extensive blog post on how one can go about converting a traditionally managed policy set, that poses a number of challenges, into one that is managed and streamlined by the CFEngine Build.

White paper: Efficient synchronization of tabular data

Mission Portal is a system that collects invaluable information about managed hosts, by mirroring their states onto a centralized hub. These states are stored as tabular data structures and are synchronized using a log-based synchronization technique. The existing implementation of the reporting system is not optimized for minimal bandwidth consumption, which is a critical concern of CFEngine Enterprise customers. In response, this paper summarizes an enhanced log-based synchronization technique introduced by Lars Erik Wik, designed to address this challenge.

Preview of the first page of the white paper fading into the background.

What’s next?

In summer of 2024 we will launch CFEngine 3.24 LTS, bringing the functionality we’ve been working on for the last 1-1.5 years into an LTS supported release, including:

  • Groups in Mission Portal - save host filters with a name for easier reuse and overview.
  • Group data - assign CMDB data to groups of hosts, setting variables, classes and inventory attributes for many hosts at a time.
  • Improved host filters with class rules and host lists by IP / ID / MAC / hostname.
  • Various improvements to the UI of new and popular features: Build in Mission Portal, compliance reports, inventory reports.
  • New policy functions.
  • Several security improvements, especially around LDAP, passwords, and authentication.

Fun facts

Whether you’ve been a user since the 90’s or 2000’s or you just found CFEngine last week, we sincerely thank you from the bottom of our hearts for your contributions. We wish you and your families a wonderful new year and cheers to another 30 years of CFEngine.