Featured image for "Red Hat CodeReady Containers 1.31.2 makes the leap."

Red Hat CodeReady Containers supports local development and testing on a Red Hat OpenShift cluster. We recently released CodeReady Containers 1.31.2, which is the first version based on the major OpenShift 4.8 release. The CodeReady Containers team doesn't publicly report our advances on a regular basis, so this article is a good opportunity to learn about the biggest changes to CodeReady Containers during the past several months.

Upgrade to OpenShift 4.8

With this release, we updated CodeReady Containers to use the 4.8 release of OpenShift. This release offers support for single-node clusters as a developer preview. We also enabled OpenShift’s Machine Config Operator, so users can now follow OpenShift documentation for registry and proxy configuration, or for any other changes that use the Machine Config Operator to modify the cluster. In previous releases, these changes required steps specific to CodeReady Containers. The following video shows how to enable the Machine Config Operator (MCO).

Installers

On macOS and Windows 10, we are now shipping native installers (.pkg and .msi files, respectively). The native installers provide an easier installation procedure, with more integrated requirement checks. The following video shows how installation on macOS can be done in less than 30 seconds.

The installers are signed so that they can be properly validated by the operating system before installation, which is particularly important in light of recent supply-chain attacks. Installers are the only supported way to install and use CodeReady Containers on macOS and Windows.

System trays

The new installers on macOS and Windows come with a system tray icon. This icon allows direct interactions with CodeReady Containers, such as to start and stop your cluster. You no longer need to fall back to a shell prompt to manage your OpenShift instance.

New networking stack

One of the biggest pain points for CodeReady Containers over the years has been networking, particularly in corporate environments. Configuring the host system DNS to redirect the crc.testing domain to the CodeReady Containers virtual machine often required superuser privileges. Additionally, corporate VPNs or firewalls would sometimes get in the way and prevent this setup from working, resulting in cluster connectivity issues for end users.

A few releases ago, we started moving to a userland networking stack based on gvisor. All networking communication by the virtual machine now goes through a CodeReady Containers daemon running on the host. Together with improved usage of the /etc/hosts file for DNS resolution, this change makes the networking setup less reliant on modifications to the host configuration. It also avoids some of the aforementioned issues with corporate networks. This new networking stack is now the default on Windows and macOS.

Disk expansion

CodeReady Containers instances use a 31GB disk image by default. This is not enough for some users who want to deploy heavy workloads.

It’s now possible, when running crc start, to use the --disk-size or -d command-line option to dynamically resize the disk to the desired size. The disk size can only be expanded, not reduced. The following example uses a 40GB disk for the CodeReady Containers instance:

$ crc start --disk-size 40

On macOS and Windows, you can also use the system tray icon to easily change the disk size.

Conclusion

This article has summarized the most notable changes the CodeReady Containers team made during the past few months, but there were also plenty more minor improvements and bug fixes. We strongly encourage you to try CodeReady Containers 1.31.2 and report any problems you find.

We’ll keep polishing and improving CodeReady Containers in the months to come. Our roadmap includes Podman integration and improved integration with remote CodeReady Containers instances, so stay tuned!

Last updated: November 8, 2023