Chapter 3. New features
This part describes new features and major enhancements introduced in Red Hat Enterprise Linux 9.6.
3.1. Installer and image creation Copy linkLink copied to clipboard!
Added Kickstart support for CA certificates to enable encrypted DNS configuration during installation
Support for the %certificate
section in the Kickstart file is added to enable the installation of CA certificates into the installation program environment and the installed system. This simplifies the setup process and ensures that the encrypted DNS is operational after installation, reducing manual configuration and security gaps. The certificates are inlined in the Base64 ASCII format and imported through the --dir
and --filename
options. This enhancement facilitates encrypted DNS configuration as part of Zero Trust Architecture requirements. The encrypted DNS set up during installation ensures secure DNS resolution from the start, improving security and compliance in automated deployments.
Jira:RHEL-61430[1]
RHEL image builder supports creating disk images with advanced partitioning
With this enhancement, RHEL image builderl gained more options for customizing partitioning and creating disk images with advanced partitioning layout. You can create disk images with custom mountpoints, including custom mount options, LVM-based partitions and LVM-based SWAP to, for example, change the size of the /
and the /boot
directories by using a blueprint file.
Jira:RHELDOCS-19584[1]
bootc-image-builder
now supports creating image mode disk images with advanced partitioning
With this enhancement, the bootc-image-builder
tool gained more options for customizing partitioning and creating disk images with advanced partitioning layout. You can use the bootc-image-builder
tool to create disk images of image-mode RHEL with custom mountpoints, including custom mount options, LVM-based partitions and LVM-based SWAP to, for example, change the size of the /
and the /boot
directories by using the config.toml
.
Jira:RHELDOCS-19291[1]
The bootc image builder
tool is generally available in RHEL
The bootc image builder
tool, now is generally available in RHEL, works as a container to easily create and deploy compatible disk images from the bootc
container inputs. After running your container image with bootc image builder
, you can generate images for the architecture that you need. Then, you can deploy the resulting image on VMs, clouds, or servers. You can easily update the images with the bootc, instead of having to regenerate the content with bootc image builder
every time a new update is required.
Jira:RHELDOCS-17468[1]
3.2. Security Copy linkLink copied to clipboard!
pcsd
now provides the --disable-polkit
option
With this update, you can turn off loading the PolicyKit authorization framework by starting the pcsd
service with the --disable-polkit
option. Running pcsd
without polkit
enables accessing PKCS #11 devices in limited environments such as the initial RAM disk. As a result, the Clevis decryption client can use a PKCS #11 device for automated unlocking LUKS-encrypted volumes at boot time.
ssh
now provides a link with additional details about SSH login error messages
In case of an early error, the ssh
command-line tool provides a link to the Red Hat Customer Portal page that contains additional details about common error messages and steps for resolving them. This helps troubleshoot SSH login problems when you use interactive mode.
Jira:RHEL-33809[1]
pkcs-tool
now shows object URI
With this update, the pkcs11-tool -L
and pkcs11-tool -O
commands contain the uri:
field in their outputs. You can use the URI information when configuring the pkcs11
Clevis pin for automated unlocking LUKS-encrypted drives with PKCS #11 devices.
CBC ciphers can now be blocked in crypto-policies
With this update, crypto-policies
uses the openssl -CBC CipherString
directive. As a result, CBC cipher suites are disabled in OpenSSL if none of them are enabled in crypto-policies
.
Jira:RHEL-76524[1]
nettle
rebased to 3.10.1
The nettle
library package has been rebased to upstream version 3.10.1. This version provides various bug fixes, optimizations and enhancements, most notably:
- Performance has been improved on 64-bit PowerPC architectures (SHA-256, AES decryption, and AES-GCM).
- DRBG-CTR-AES256, a new deterministic random bit generator, has been added.
- RSA-OAEP, an RSA encryption/decryption that uses a new OAEP padding scheme, has been added.
- SHAKE-128, an arbitrary length hash function of the SHA-3 family, has been added.
- Streaming API for SHAKE-128 and SHAKE-256 has been added.
- The MD5 assembly has been removed. This might incur a slight performance impact.
Jira:RHEL-52740[1]
Rsyslog rebased to 8.2412.0
The rsyslog
packages have been rebased to upstream version 8.2412.0 in RHEL 9.6. Among other fixes and enhancements, you can bind a ruleset to the imjournal
module. With this optimization, log messages can be filtered and processed at the input stage, which reduces the load on the main message queue. This minimizes resource utilization and ensures smoother handling of high-volume logs.
OpenSCAP rebased to 1.3.12
The OpenSCAP packages have been rebased to upstream version 1.3.12. This version provides bug fixes and various enhancements. For additional information, see the OpenSCAP release notes.
Clevis rebased to version 21 with support for PKCS #11
The clevis
packages have been upgraded to version 21. This version contains many enhancements and bug fixes, notably:
-
Added the
clevis-pin-pkcs11
subpackage which provides thepkcs11
pin for unlocking LUKS-encrypted volumes using a PKCS #11 device (smart card). -
Added two checks to the
clevis-udisks2
subpackage. - Added a fix that prevents "Address in use" errors.
New Keylime policy management tool
The new keylime-policy
tool integrates all management tasks of Keylime runtime policies and measured boot policies and improves the performance of generating policies.
SELinux assigns a particular type to /dev/hfi1_0
With this update, the hfi1_device_t
type is assigned to the /dev/hfi1_0
device in the SELinux policy. As a result, SELinux can properly control access to the device.
Jira:RHEL-54996[1]
Additional services confined in the SELinux policy
This update adds additional rules to the SELinux policy that confine the following systemd
services:
-
iio-sensor-proxy
-
power-profiles-daemon
-
switcheroo-control
-
samba-bgqd
As a result, these services no longer run with the unconfined_service_t
SELinux label, which violated the CIS Server Level 2 benchmark "Ensure No Daemons are Unconfined by SELinux" rule, and run successfully in SELinux enforcing mode.
Jira:RHEL-17346, Jira:RHEL-53124, Jira:RHEL-61117, Jira:RHEL-24268
SCAP Security Guide rebased to 0.1.76
For additional information, see the SCAP Security Guide release notes.
Keylime requires HTTPS for revocation notifications
The Keylime components require the use of the more secure HTTPS protocol for revocation notification webhooks instead of HTTP. As a consequence, the Keylime verifier now requires the revocation notification webhook server CA certificate. You can add it to the trusted_server_ca
configuration option or add it to the system truststore.
3.3. RHEL for Edge Copy linkLink copied to clipboard!
Support for deploying image mode for RHEL systems by using FDO
With this enhancement, now you can deploy an image mode for RHEL systems by using the FIDO Device Onboarding (FDO) process, available as a Technology Preview, to deliver the configuration to this system. Include a Kickstart file in an ISO build to configure any part of the installation process except the base image deployment. If you use an ISO with a bootc
container base image, bootc-image-builder
automatically installs ostreecontainer
, the command to install the container image. You can still configure anything, except the ostreecontainer
command.
Jira:RHELDOCS-19610[1]
RHEL provides the greenboot
package in version 0.15.8
The greenboot
packages have been updated to version 0.15.8, which provides bug fixes and enhancements. Notable changes include:
-
Fixed the
bootc
compatibility withrpm-ostree
whenbootc
is available alongsiderpm-ostree
. -
General bug fix: If
bootc
is not available, rollback usingrpm-ostree
.
3.4. Software management Copy linkLink copied to clipboard!
Image mode for RHEL users can now use dnf --transient
to perform package transactions that reset on reboot
Previously, Image mode for RHEL users could transiently install, remove, and upgrade packages by running the bootc usr-overlay
command to unlock the system and then make changes by running DNF commands. If you use bootc usr-overlay
, when the system reboots, the /usr
directory overlay disappears and all changes made to it will reset. Changes to other directories, including configuration in /etc
and program state in /var
, persist across reboots.
With this update, a new --transient
flag and a new persistence
configuration option have been added to DNF to improve the user experience on bootc systems. You can now skip the bootc usr-overlay
step by using either of the following options:
-
Use the
dnf --transient
command. -
Set the
persistence
option totransient
in thednf.conf
file.
Unlike when using bootc usr-overlay
, --transient
and persistence=transient
ensure that the /usr
directory remains read-only to other processes before, during, and after the transaction.
For example, to transiently install the make
package, enter:
dnf install --transient make
# dnf install --transient make
Improved error message when using DNF on a locked OSTree or bootc system
OSTree and bootc systems cannot be managed by DNF by default. Previously, a DNF error message did not say that this was an expected behavior and how you could change it. With this update, DNF detects whether it runs on a read-only OSTree or bootc system and informs you where to find more details about how to manage such systems with DNF.
DNF Automatic can now notify users about a failed update
With this update, a new send_error_messages
boolean option has been added to the [emitters]
section of the /etc/dnf/automatic.conf
configuration file. As a result, if you set send_error_messages
to yes
, the DNF Automatic tool notifies you about failed automatic updates by using an emitter configured in the emit_via
option.
This feature is disabled by default.
3.5. Shells and command-line tools Copy linkLink copied to clipboard!
ignoreduplicates
option is now available
With this enhancement, the ignoreduplicates
option is added in the logrotate
configuration. The option ignores any duplicate file paths in the logrotate
configuration, and is not enabled by default.
Jira:RHEL-5711[1]
maven-openjdk21
package is now available
RHEL supports running Maven with multiple Java versions, allowing users to select their preferred JDK. With this enhancement, a new maven-openjdk21
package has been added to enable seamless execution of Maven with OpenJDK 21
. The notable changes include the following:
- Expanded set of supported Java runtimes for Maven workflows.
- Improved flexibility for development and build environments.
openCryptoki
rebased to version 3.24.0
The openCryptoki
packages are rebased to version 3.24.0. Support has been added for the following:
- CCA token on non-IBM Z platforms (x86_64, ppc64)
- IBM Dilithium
- RSA-OAEP with SHA224, SHA384, and SHA512 on encrypt or decrypt.
- PKCS#11 v3.0 SHA3 mechanisms
- SHA-2 mechanisms
- SHA based key derivation mechanisms
- Protecting tokens with a token specific user group
- New libica AES-GCM API using the KMA instruction on z14 and later
Jira:RHEL-50064[1]
libva
rebased to 2.22.0
The libva
package is rebased to 2.22.0. Notable enhancement includes the following:
- Added VVC decode LibVA interface
-
Support added for
linux-dmabuf
Jira:RHEL-59629[1]
A new module stream maven 3.9
is available
A new update to the maven 3.9
package is now available. In version 3.9, maven is not compatible with maven 2. The notable enhancement include the following:
-
The
maven-openjdk21
package is now available. It enables seamless execution of Maven with theOpenJDK 21
package. TheOpenJDK 21
package provides an expanded set of supported Java run times for Maven workflows, improving flexibility for development and build environments.
Multipath partner device is now supported
The drmgr
is a utility for managing logical and physical hot plug capable resources. With this enhancement, drmgr
supports hot plug addition and removal of a multipath drive.
Jira:RHEL-30880[1]
3.6. Infrastructure services Copy linkLink copied to clipboard!
Weak ciphers can be now disabled in CUPS configuration
Previously, when you disabled the weak cipher in the CUPS configurations, the configuration changes did not take effect. With this enhancement, if a user wants to disable a certain cryptographic algorithm via system policy, CUPS honors the system settings, if SSLOptions NoSystem
is not in CUPS configuration files, and CUPS does not offer the system-wide disabled algorithm anymore.
As a result, to prevent possible breakage of existing configurations, the directive SSLOptions NoSystem
is set in the /etc/cups/cupsd.conf
and /etc/cups/client.conf
files. If a user wants cupsd
daemon or applications using libcups
to follow system crypto policy, they can remove the mentioned SSLOptions
directive from the respective configuration files:
-
/etc/cups/cupsd.conf
: if thecupsd
daemon is expected to follow system crypto policy. -
/etc/cups/client.conf
: if applications usinglibcups
are expected to follow system crypto policy.
Jira:RHEL-68414[1]
3.7. Networking Copy linkLink copied to clipboard!
Added support for E825C interface
Added support for Ethernet functionality of the E825C network interface for Intel Granite Rapids-D platform to the ice
driver.
Jira:RHEL-57827[1]
The i40e driver supports automatic reset behavior on MDD events
The Intel® Network Adapter Driver for PCIe* 40 Gigabit Ethernet can now reset problematic Single Root I/O Virtualization (SR-IOV) virtual functions (VFs) when it detects a malicious driver detection (MDD) event. You can activate this automatic reset behavior through the new mdd-auto-reset-vf
option as in the following example command:
ethtool --set-priv-flags _ethX_ *mdd-auto-reset-vf* on
ethtool --set-priv-flags _ethX_ *mdd-auto-reset-vf* on
When the VF sends malformed packets classified as malicious, it can cause the Tx queue to freeze, which makes it unusable for several minutes. However, with mdd-auto-reset-vf
enabled, a graceful VF reset automatically restores operational state when an MDD event occurs.
Jira:RHEL-54223[1]
NetworkManager now supports configuration of FEC encoding on NIC
With this enhancement, NetworkManager supports forward error correction (FEC) encoding support on the network interface controller (NIC). By disabling FEC encoding on NIC, you will have reduced overhead of redundant data transmission and lower latency of network traffic. Configure FEC settings on NIC by using the following steps:
Configure the FEC settings by using the
nmcli
utility:nmcli con mod __<example_connection_name>__ ethtool.fec off
# nmcli con mod __<example_connection_name>__ ethtool.fec off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bring the interface down to apply the ethtool FEC encoding setting:
nmcli con down __<example_connection_name>__
# nmcli con down __<example_connection_name>__
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Bring the interface up to apply the ethtool FEC encoding setting:
nmcli con up __<example_connection_name>__
# nmcli con up __<example_connection_name>__
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Use the
ethtool
utility to:ethtool --show-fec __<example_device_name>__
# ethtool --show-fec __<example_device_name>__
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
NetworkManager can automatically add routes to DNS servers
With the ipv4.routed-dns
parameter, you can configure NetworkManager so that name servers are reachable only through the correct network interface. Apart from systemd-resolved
and dnsmasq
backend DNS services in NetworkManager, other backend services do not support binding name servers to the correct network interface. As a result, you can use NetworkManager to add an explicit route to the name server through the related network interface.
NetworkManager can set ipv4.dhcp-send-hostname`to `false
by default
With this feature, you can set the ipv4.dhcp-send-hostname
option in NetworkManager to false
for all IPv4 connections. To disable this option by default, add the configuration snippet to the /etc/NetworkManager/conf.d/99-no-hostname.conf
file as follows:
[connection] match-device=type:ethernet ipv4.dhcp-send-hostname=0
[connection]
match-device=type:ethernet
ipv4.dhcp-send-hostname=0
You can also set this option for IPv6.
Jira:RHEL-32685[1]
NetworkManager supports ip-ping-addresses
and ip-ping-timeout
properties for the connection setting
With this enhancement, you can add an IP address to the ip-ping-addresses
and set a timeout with ip-ping-timeout
settings. As a result, you can ensure that remote services, such as network file system (NFS), are mounted only after the target network is reachable.
nmstate
supports the require-id-on-certificate
setting on Libreswan configuration
With this enhancement, libreswan
, an implementation of Internet Protocol Security (IPsec) specification, now supports the require-id-on-certificate
setting for VPN configurations by using NetworkManager. With this feature, you can configure Subject Alternative Name (SAN) validation by using the require-id-on-certificate
option. As a result, this implementation correctly enforces SAN validation based on the specified setting:
-
No SAN validation is performed when set to
no
-
SAN are validated when set to
yes
Jira:RHEL-58040[1]
NetworkManager DHCP Client supports IPv6-only preferred option for DHCPv4
With this enhancement, the IPv6-only preferred option for DHCPv4 is available for NetworkManager clients for the supported DHCP server. You can use this option in two ways: globally and locally. If enabled globally, this option allows and prioritizes only IPv6 addresses in dual networks that support both IPv4 and IPv6. If enabled locally by setting the ipv6.method disabled
option, IPv4 addresses assigned manually are prioritized over DHCP addresses.
xdp-tools
rebased to version 1.5.1
The xdp-tools
package has been upgraded to version 1.5.1, which provides multiple enhancements and bug fixes. Notable changes include:
-
Added the
xdp-forward
utility that enables XDP-accelerated packet forwarding between supported network devices. -
Updated the
xdp-trafficgen
utility to support specifying User Datagram Protocol (UDP) packet sizes. - Added a new option-based API for creating XDP sockets (XSK) and user memory (UMEM) objects.
wpa_supplicant
was rebased to version 2.11
The wpa_supplicant
utility has been upgraded to version 2.11, which provides multiple bug fixes and enhancements. Notable changes include:
- Removed incorrect Extensible Authentication Protocol (EAP) Session-Id length constraint.
- Added support for OpenSSL 3.0 API changes.
- The CONFIG_IEEE80211BE configuration option enabled for Extremely High Throughput (EHT) operation.
-
Support for explicit Service Set Identifier (SSID) protection in 4-way handshake is disabled by default. You can enable it using the
ssid_protection=1
configuration option.
For more details, see the upstream changelog.
iproute2
rebased to version 6.11.0
The iproute2
package has been upgraded to version 6.11.0, which provides multiple bug fixes and enhancements. Notable changes include:
-
Added support for the
mst_enabled
parameter - Added support for setting a Multiple Spanning Tree Instance (MSTI) for VLANs
- Added support for Multiple Spanning Tree (MST) states
-
Fixed
libbpf
version check for ENABLE_BPF_SKSTORAGE_SUPPORT configuration option - Added support for Berkeley Packet Filter (BPF) socket-local storage
-
Removed support for unused and obsolete queueing disciplines (
qdiscs
) and classifiers - Several NULL derefence fixes and code optimizations
For full extent, see the upstream article.
Bonding device supports IPsec HW offload with ESN
Previously, a bonding device did not support the IPSec Hardware HW
offload feature with Extended Sequence Numbers (ESN
). Consequently, setting up IPsec with HW offload and ESN failed on the bonding device. With this fix, you can setup IPsec HW offload with ESN on the bonding device, considering the bond ports already support this feature. As a result, the bonding device offloads IPsec traffic correctly.
Jira:RHEL-50630[1]
New "drop reasons" in the VXLAN implementation
In this update of the RHEL kernel, visibility patches were introduced which add new "drop reasons" in the Virtual eXtensible Local Area Networking (VXLAN) implementation. Visibility patches are important for troubleshooting problems, and thanks to these additions most of the dropped packets in VXLAN now have a reason attached to provide extra context.
Jira:RHEL-68063[1]
Network drivers for modems in RHEL are now fully supported
In the US, device manufacturers support Federal Communications Commission (FCC) locking as the default setting. FCC provides a lock to bind WWAN drivers to a specific system where WWAN drivers provide a channel to communicate with modems.
Based on the modem PCI ID, manufacturers may offer tools to unlock ModemManager, but they are not integrated in RHEL because they contain closed-source and private binaries.
A modem remains unusable if not unlocked previously, even if the WWAN driver is compatible and functional.
Red Hat Enterprise Linux provides the drivers for the following modems with full support:
- Intel IPC over Shared Memory (IOSM) - Intel XMM 7360 LTE Advanced
- Mediatek t7xx (WWAN) - Fibocom FM350GL
- Intel IPC over Shared Memory (IOSM) - Fibocom L860GL modem
- Qualcomm devices supported in upstream
Jira:RHELDOCS-16760[1]
nmstate
now supports configuring IPvLAN
The nmstate
API now supports configuring IPvLAN, a virtual network interface, that enhances network management and container networking.
IPvLAN supports the following modes:
-
l2
: IPvLAN receives and responds to ARP requests, which improves performance but has less control on the network traffic. -
l3
: IPvLAN processes only layer 3 traffic and above. IPvLAN does not respond to ARP requests and you must manually configure the ARP table entries for the IPvLAN IP addresses on the relevant devices. -
l3s
: IPvLAN processes the same way as in l3 mode, except that both egress and ingress traffic of a relevant device passes through thenetfilter
chain in the default namespace. -
Private
: Theprivate
setting controls the isolation between the IPvLAN interface and other devices on the network. -
Vepa
: When enabled, IPvLAN forwards traffic through a central switch, which improves the network management by reducing broadcast traffic.
In the following example, you can setup IPvLAN for l3
mode:
3.8. Kernel Copy linkLink copied to clipboard!
Kernel version in RHEL 9.6
Red Hat Enterprise Linux 9.6 is distributed with the kernel version 5.14.0-570.12.1.
The eBPF facility has been rebased to Linux kernel version 6.12
Notable changes and enhancements include the following:
- BPF token, which supports delegating a subset of BPF functionality from privileged system-wide daemons to a trusted and unprivileged application.
- BPF arena, a sparse shared memory region between the BPF program and user space that makes pointers within the arena work seamlessly.
-
may_goto
instruction, which is a contract between the verifier and the program. The verifier allows the program to execute loops (provided that they run well) in most situations, but reserves the right to stop it. - BPF verifier support for static sub-program calls in spin lock critical sections.
-
Support for attaching
kprobe
BPF programs in a session mode where the program is attached to both the function entry and return. The entry program can decide if the return program gets executed, and the programs can share au64
cookie value. - The ability to specify and retrieve the BPF cookie for raw tracepoint programs to ease migration from classic to raw tracepoints.
-
A new
bpf_wq
API has been introduced to provide a mechanism for deferring events. -
Several new
kfuncs
(kernel functions callable from BPF programs) are added for calling crypto APIs, enabling/disabling preemption, generic bits iterators, and various VFS operations. -
Support declaring arrays of
kptr
,bpf_rb_root
, andbpf_list_head
from BPF programs. -
Support for detection of
kfuncs
for the running kernel and dumping compilablekfunc
prototypes. - Support for 64-bit BPF v4 CPU instructions for PowerPC.
- Support for resilient split BTF, which cuts down on duplication and makes BTF as compact as possible WRT BTF from modules.
Jira:RHEL-63880[1]
View the number of instances of each cgroup from cgroup.stat
For cgroup v2
, the cgroup.stat
control file is enhanced to show the number of instances of each cgroup subsystem in the unified hierarchy, including any dying ones.
The /proc/cgroups
file used to show the number of cgroups for each cgroup subsystem is designed for cgroup v1
. With cgroup v2
, the information provided in /proc/cgroups
is no longer applicable. This file is deprecated for cgroup v2
.
Use the cgroup.stat
file of the root cgroup to get the correct number of cgroup subsystems. This is the replacement of /proc/cgroups
for cgroup v2
.
Jira:RHEL-36267[1]
New option to disable idle states locally on CPUs during rtla-timerlat
testing: deepest-idle-state
-
The arguments for the
deepest-idle-state
are the number of the deepest allowed idle state. If -1 is the value in the argument, and disables idle states on all CPUs. -
In the
rtla-timerlat
instead of using/dev/cpu_dma_latency
to disable the CPUs in the idle state globally, thedeepest-idle-state
option is added to set the deepest allowed idle state for CPUs where measurements are running.
As a result, you can save power and reflect the real-time workload during rtls-timerlat
testing and use the deepest-idle-state
instead of using the /dev/cpu_dma_latency
to disable them globally.
Jira:RHEL-69522[1]
kpatch-dnf
plugin is updated with improved kernel management
With the updated kpatch-dnf
plugin, kernel upgrades are closely aligned with kpatch support. Administrators gain the flexibility to focus kernel updates on those supported by kpatch, leading to more reliable system upgrades and overall stability.
Jira:RHEL-77113[1]
Containerization of the rteval
utility
With this update, you can run the rteval
utility with all its runtime dependencies from a container image publicly available through the Quay.io container registry. This feature also enables you to, for example:
-
Use the deployment flexibility, where older RHEL versions can get newer versions of
rteval
. -
Run multiple
rteval
instances on the same or multiple hosts. -
Allocate specific system resources to
rteval
, which ensures fine-grained control over resource usage.
Alternatively, you can use the dockerfile template to build your own container image with rteval
. You can find this dockerfile and the README file with more information in the upstream repository.
Jira:RHEL-9909[1]
TPM_TIS
rebased to upstream 6.7 for Lenovo hardware
This release introduces an updated version of the Trusted Platform Module (TPM) Integration Services (TPM_TIS
) firmware to upstream version 6.7. This update addresses stability and security enhancements for RHEL 9.6.
Jira:RHEL-52747[1]
kdump
is rebased to 6.10
This update incorporates the latest improvements, bug fixes, and features from the 6.10 kernel related to crash dumping.
Landlock, a new Linux Security Module (LSM) is released
RHEL 9.6 introduces Landlock, a new security feature that makes your containers safer. Landlock sets strict rules for processes such as Podman to limit access to the file system through the kernel API, defining rules for themselves regardless of privilege level and allowing users to create hard limits over the accessible scope of the processes.
With Landlock, you can build programs that mitigate potential risks associated with misconfigured or maliciously targeted processes. This makes containers and the whole system more secure.
New integration testing to validate kdump
procedures to prevent system failure
With this enhancement, you can check the log file for kdump
procedures after any software or hardware updates to prevent system failure. After the analysis of the output log files, the configuration entries, such as memory issues
or blacklist of some drivers
, are corrected to validate the kdump
procedures and generate the vmcore
. This ensures that the kdump
procedures are validated and corrected before a system crash after any software or hardware update.
Jira:RHEL-32060[1]
New timerlat-interval INTV_US
and cyclictest-interval INTV_US
options
With this enhancement, you can use the following new options of the rteval
command to modify the base or periodic interval option in running timerlat
or cyclictest
threads:
-
timerlat-interval INTV_US
-
cyclictest-interval INTV_US
Note that if you do not use either of these options with rteval
, the default value of 100 microseconds is applied.
Jira:RHEL-67423[1]
New option to disable idle states locally on latency testing with cyclictest
-
The
cyclictest
tool sets/dev/cpu_dma_latency
to 0 by default to avoid increased latency when waking up from idle, which disables idle states on all CPUs. -
The new
deepest-idle-state
option only disables idle states on CPUs which are selected for the testing. The argument specifies the deepest allowed idle state, setting it to-1
disables all idle states on the measured CPUs. -
Tuning with the
cyclictest
is supposed to reflect the real-time workload testing, and thus using thedeepest-idle-state
instead of using the/dev/cpu_dma_latency
to disable the CPU idle states reflects a use case where the real-time workload only disables idle states on the CPU where it is running. -
As a result, the
cyclictest
coverage of addressing all use cases is increased, and power consumption decreases.
Jira:RHEL-65487[1]
NVMf-FC
kdump is now supported on the IBM Power
NVMf-FC
kdump now supports the IBM Power system for running kexec-tools
. This allows the capture of system memory dumps over a fiber channel network by using the NVMe storage devices for high-speed and low-latency access to storage for crash dump data.
Jira:RHEL-11471[1]
3.9. Boot loader Copy linkLink copied to clipboard!
GRUB Boot loader has been hardened in RHEL 9.6
This enhancement includes fixes for various security flaws discovered as part of a pro-active hardening effort in the GRUB2 code. This ongoing proactive fuzzing effort of the GRUB boot loader yielded several flaws and vulnerabilities, some of which were severe enough to be CVEs, such as the following:
-
CVE-2024-45774
grub2
: reader/jpeg: Heap out-of-bounds (OOB) Write during JPEG parsing -
CVE-2024-45775
grub2
: commands/extcmd: Missing check for failed allocation -
CVE-2024-45776
grub2
: grub-core/gettext: Integer overflow leads to Heap OOB Write and Read. -
CVE-2024-45781
grub2
: fs/ufs: OOB write in the heap -
CVE-2024-45783
grub2
: fs/hfs+:refcount
can be decremented twice -
CVE-2025-0622
grub2
: command/gpg: Use-after-free due to hooks not being removed on module unload -
CVE-2025-0624:
net
: OOB write ingrub_net_search_config_file()
-
CVE-2025-0677
grub2
: UFS: Integer overflow might lead to heap based out-of-bounds write when handling symlinks -
CVE-2025-0690
grub2
: read: Integer overflow might lead to out-of-bounds write
Many of these flaws are buffer or integer overflows where GRUB did not check the integrity or length of variables resulting in the possibility for heap out-of-bounds writes. These were found for several filesystems in different contexts. The most severe one, CVE-2025-0624 with a CVSS v3 score of 7.6, is also a potential buffer overflow involving a user-controlled environment variable during network boot. These flaws could lead to overwriting sensitive data up to malicious code execution, and thus bypassing Secure Boot.
All of these flaws and vulnerabilities have been fixed in RHEL 9.6.
Jira:RHELDOCS-20163[1]
3.10. File systems and storage Copy linkLink copied to clipboard!
EROFS file system is now supported
EROFS is a lightweight generic read-only file system suitable for various read-only use cases, such as embedded devices or containers. It provides deduplication and transparent compression as options for scenarios that require them.
For more information, see the erofs documentation.
Jira:RHELDOCS-18451[1]
snapm
is now available in RHEL
Snapshot Manager (snapm
) is a new component designed to assist in managing system state snapshots. You can use it to roll back updates or changes, and boot into previous system snapshots. Managing snapshots across multiple volumes and configuring boot entries for snapshot boot and snapshot rollback can often be complex and prone to errors. Snapshot Manager automates these common tasks and integrates seamlessly with Boom Boot Manager, simplifying the process. With this update, you can easily take snapshots of the system state, apply updates, and revert to the previous system state if necessary.
Jira:RHEL-59005[1]
NFS with TLS is fully supported
Network File System (NFS) with Transport Layer Security (TLS), introduced in RHEL 9.4 as a Technology Preview, is now fully supported. This feature enhances NFS security by enabling TLS for Remote Procedure Call (RPC) traffic, ensuring encrypted communication between clients and servers. For details, see Configuring an NFS server with TLS support.
Note that NFS with TLS relies on support from kernel TLS (kTLS). The kTLS feature for general use is provided as a Technology Preview. For details see the release notes in the Technology previews chapter.
Jira:RHEL-59704[1]
VFS mnt_idmap
compile-time checking changes backported
This enhancement minimizes conflicts that might occur during the backporting of subsequent fixes or features. As a result, the risk of regressions with subsequent backports is reduced.
Jira:RHEL-33888[1]
CIFS client provides the ability to create special files under SMB shares
Common Internet File System (CIFS) client has the ability to create native Server Message Block (SMB), Network File System (NFS) or Windows Subsystem for Linux (WSL) symlinks. Use the new symlink=default|none|native|unix|mfsymlinks|sfu|nfs|wsl
mount option to either completely disallow creating symlinks or to select what kind of symlinks will be created by the client. You can also create special files, such as character devices, block devices, pipes, and sockets, through NFS or WSL reparse points by using the reparse=default|none|nfs|wsl
mount option. To create native Windows sockets that are supported by Windows applications on NT File System (NTFS) volumes, use the nativesocket
mount option.
Jira:RHEL-76046[1]
3.11. High availability and clusters Copy linkLink copied to clipboard!
Deleting multiple resources with a single pcs
command
Before this update, the pcs resource delete
, the pcs resource remove
, the pcs stonith delete
and the pcs stonith remove
commands supported the removal of only one resource at a time. With this update, you can now delete multiple resources at once with a single command.
New pcs tag
command option for displaying cluster resource tags in text, JSON, and command formats
The pcs tag [config]
command now supports the --output-format
option for the following use cases:
-
Displaying the configured text in plain text format by specifying
--output-format=text
. This is the default value for this option. -
Displaying the commands created from the current cluster tags configuration by specifying
--output-format=cmd
. You can use these commands to re-create configured tags on a different system. -
Displaying the configured tags in JSON format by specifying
--output-format=json
, which is suitable for machine parsing.
Jira:RHEL-46284[1]
Support for exporting fencing level configuration in JSON format and as pcs
commands
The pcs stonith config
and the pcs stonith level config
commands now support the --output-format=
option to display the fencing level configuration in JSON format and as pcs
commands.
-
Specifying
--output-format=cmd
displays thepcs
commands created from the current cluster configuration that configure fencing levels. You can use these commands to re-create configured fencing levels on a different system. -
Specifying
--output-format=json
displays the fencing level configuration in JSON format, which is suitable for machine parsing.
Removing Booth cluster tickets from the CIB after removal from the Booth configuration
After you remove a Booth cluster ticket by using the pcs booth ticket remove
command, the state of the Booth ticket remains loaded in the Cluster Information Base (CIB). This is also the case after you remove a ticket from the Booth configuration on one site and pull the Booth configuration to another site by using the pcs booth pull
command. This might cause problems when you configure a ticket constraint, because a ticket constraint can be granted even after a ticket has been removed. As a consequence, the cluster might freeze or fence a node. As of RHEL 9.6, you can prevent this by removing a Booth ticket from the CIB with the pcs booth ticket cleanup
command.
For information about removing a Booth ticket from the CIB, see Removing a Booth ticket.
3.12. Dynamic programming languages, web and database servers Copy linkLink copied to clipboard!
A new module stream: mysql:8.4
MySQL 8.4 is now available as a new module stream, mysql:8.4
. Notable enhancements over the previously available version 8.0 include:
- Enhancements to password management: Administrators can now enforce password expiration, lengths, strength, reuse policy, and other password-related settings.
-
Authentication: The
caching_sha2_password
plugin is now the default and replaces themysql_native_password
plugin to increase the security. -
Backup Compatibility: The
mysqldump
utility now provides an--output-as-version
option which enables logical backups to be compatible with older MySQL versions. -
EXPLAIN
: This statement can now display results in JSON format. Deprecation and removal: The following features, which were previously deprecated have been removed:
-
The
mysqlpump
utility -
The
mysql_native_password
authentication plugin -
The
mysql_upgrade
utility
-
The
For more information about changes in MySQL 8.4, see Notable differences between MySQL 8.0 and MySQL 8.4.
For more information about MariaDB, see Using MariaDB.
To install the mysql:8.4
stream, enter:
dnf module install mysql:8.4
# dnf module install mysql:8.4
If you want to upgrade from MySQL 8.0, see Upgrading from MySQL 8.0 to MySQL 8.4.
For information about the length of support for the mysql
module streams, see Red Hat Enterprise Linux Application Streams Life Cycle.
Jira:RHEL-68305[1]
ARGON2
password hashing is supported in PHP 8.3
PHP 8.3 is now available as the php:8.3
module stream. With this enhancement, support for the ARGON2I
and ARGON2ID
password hashing algorithms, provided by the openssl extension, is now available.
nginx 1.26
module stream is now available
The nginx 1.26
module stream includes various bug fixes and enhancements. Notable changes include:
- HTTP/2 support is now available on a per-server basis.
- Virtual servers can now be used with the stream module.
- Stream connections are now passed to listen sockets.
- Startup performance improvements are made for some complex configurations
An instantiated service support is now available. The
nginx@.service
unit is an instantiated template service. An instance of this unit uses the/etc/nginx/<INSTANCE>.conf
configuration file, where INSTANCE is replaced with the instance name. To allow multiple instances of thenginx
server to run simultaneously, you must change the following configuration:- pid
- access_log
- error_log to pick non-conflicting paths, and listen to choose different ports.
You can check the example configuration file /usr/share/doc/nginx/instance.conf
to understand how to make such changes.
Jira:RHEL-73508[1]
New php:8.3
module stream is now available
The RHEL 9.6 adds PHP 8.3 as a new php:8.3
module stream. Notable enhancements include:
- Typed class constants
- Dynamic class constant fetch
-
New
#[\Override]
attribute - Deep-cloning of readonly properties
To install the php:8.3
module stream, use the following command:
dnf module install php:8.3
# dnf module install php:8.3
For more information, see the following resources:
If you want to upgrade from the php:8.2
stream, see Switching to a later stream.
Jira:RHEL-21448[1]
3.13. Compilers and development tools Copy linkLink copied to clipboard!
LLVM Toolset updated to 19.1.7
LLVM Toolset has been updated to version 19.1.7.
Notable changes of the LLVM compiler:
- LLVM now uses debug records, a more efficient representation for debug information.
Notable updates of the Clang:
- C++14 sized deallocation is now enabled by default.
- C++17 support has been completed.
- Improvements to C++20 support, especially around modules, concepts, and Class Template Argument Deduction (CTAD) have been added.
- Improvements to C++23, C++2c, C23, and C2y support have been added.
For more information, see the LLVM release notes and Clang release notes.
LLVM Toolset is a rolling Application Stream, and only the latest version is supported. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.
The llvm-doc
package now contains only a reference to the upstream documentation.
In previous versions, the llvm-doc
package contained the LLVM documentation in HTML format. With this update, the package provides only the /usr/share/doc/llvm/html/index.html
file which contains a reference to the upstream documentation.
Clang and LLVM now support zstd
for debug section compression
By default, Clang and LLVM tools use Zlib
as the algorithm for debug section compression. With this enhancement, users can alternatively use the Zstandard (zstd
) algorithm which can reach a higher compression rate than Zlib
.
For example, if you want to use zstd
compression when you compile a program with Clang, use the following command:
clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
$ clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
Rust Toolset rebased to version 1.84.1
Rust Toolset has been updated to version 1.84.1. Notable enhancements since the previously available version 1.79.0 include:
-
The new
LazyCell
andLazyLock
types delay the initialization until the first use. These extend the earlierOnceCell
andOnceLock
types with the initialization function included in each instance. - The new sort implementations in the standard library improve the runtime performance and compile times. They also try to detect cases where a comparator is not producing a total order, making that panic instead of returning unsorted data.
-
Precise capturing for opaque return types have been added. The new
use<..>
syntax specifies the generic parameters and lifetimes used in animpl Trait
return type. Many new features for
const
code have been added, for example:- Floating point support
-
const
immediates for inline assembly - References to statics
- Mutable reference and pointers
Many new features for
unsafe
code have been added, for example:- Strict provenance APIs
-
&raw
pointer syntax - Safely addressing statics
-
Declaring safe items in unsafe
extern
blocks
-
The Cargo dependency resolver is now version aware. If a dependency crate specifies its minimum supported Rust version, Cargo uses this information when it resolves the dependency graph instead of using the latest
semver
-compatible crate version.
Compatibility notes:
-
The WebAssembly System Interface (WASI) target is changed from
rust-std-static-wasm32-wasi
torust-std-static-wasm32-wasip1
. You can select the WASI target also by using the--target wasm32-wasip1
parameter on the command line. For more information, see the Changes to Rust’s WASI targets upstream blog post. -
The split panic hook and panic handler arguments
core::panic::PanicInfo
andstd::panic::PanicInfo
are now different types. -
extern "C"
functions abort the process on uncaught panics. Useextern "C-unwind"
instead to allow unwinding across ABI boundaries.
Rust Toolset is a rolling Application Stream, and Red Hat only supports the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.
PCP rebased to version 6.3.2
Performance Co-Pilot (PCP) has been updated to version 6.3.2. Notable changes over the previously available version 6.2.2 include:
-
pmdaopenmetrics
: Virtual Large Language Model (vLLM) metrics are now added by default. -
pmdalinux
: Support for Hyper-V balloon metrics was added. -
pmdalinux
: The networking andhugepages
kernel metrics were updated. -
pmdaamdgpu
: This new agent collects metrics fromlibdrm
andlibdrm-amdgpu
libraries. -
pmdabpftrace
: The start of this agent with many or slowbpftrace
scripts was fixed. -
pmdaproc
: This agent now collects new metrics from AMD GPUs from the Linuxfdinfo
interface. -
pmdahacluster
: Metrics were updated to support new Pacemaker versions. -
pmdastatsd
: A bug was fixed to avoid crashes under load. -
pcp-htop
: AMD GPU metrics support was added. -
pcp-htop
: Platform settings were fixed to enable screen tabs. -
pcp-xsos
: This utility was added. For details seepcp-xsos
provides a rapid summary of a system. -
pmrep
: Numerous configuration file metric sets were updated. -
pmlogconf
: Numerous configuration file auto records were updated. -
libpcp
andpmcd
: Several security-hardening improvements were added. -
libpcp
andpmlogger
: Support for the optionalzstd
compression of archives was added.
The glibc
library contains improved IBM POWER10 optimizations
With this enhancement, hardware support for the IBM POWER10 platform has been improved in the glibc
library. As a result, the performance of the strcmp()
and memchr()
APIs has been significantly improved on this platform.
Jira:RHEL-24740[1]
valgrind
rebased to version 3.24.0
The valgrind
suite has been updated to version 3.24.0. Notable enhancements include:
-
The
--track-fds=yes
option now shows suppressible errors when using bad file descriptors, and the errors are written to the XML output. The warnings shown, if you do not use the option, are deprecated and will be removed in a future version. - Error messages now support Ada name demangling.
-
The
deflate-conversion
facility (z15/arch13) now supports the deflate compression call (DFLTCC) instruction on the IBM Z platform. -
On the IBM Z platform,
valgrind
now supports the instructions provided by the message security assist (MSA) facility and its 1-9 extensions. Valgrind
now supports the following new Linux system calls:-
open_tree
-
move_mount
-
fsopen
-
fsconfig
-
fsmount
-
fspick
-
landlock_create_ruleset
-
landlock_add_rule
-
landlock_restrict_self
-
libabigail
rebased to version 2.6
The libabigail
library has been updated to version 2.6. Notable changes include:
- Better support for Linux kernel module analysis by using the BPF Type Format (BTF) and Common Trace Format (CTF).
- Improved internal type comparison algorithms in the middle end.
-
Improved logging in
abipkgdiff
,abidw
, andabilint
utilities - Numerous bug fixes.
For further changes, see the upstream release notes.
SystemTap
rebased to version 5.2
The SystemTap
tracing and probing tool has been updated to version 5.2.
A notable enhancement is the full activation of debuginfod-metadata
based probes, based on elfutils
0.192. With this feature, you can write a systemtap
script to target a full range of versions of a given binary or library by searching a debuginfod
server for all matching names.
elfutils
rebased to version 0.192
The elfutils
package has been updated to version 0.192. Notable improvements include:
-
The
debuginfod
service can now perform a per-file signature verification to check the integrity by using the RPM Integrity Measurement Architecture (IMA) scheme from RHEL. -
A new
debuginfod
API was added to query server metadata, such as querying the build ID from a file name. -
Debuginfod
server-side extraction of files from kerneldebuginfo
packages is now significantly faster -
The
dwfl_set_sysroot
,dwfl_frame_unwound_source
, anddwfl_unwound_source_str
functions were added to thelibdw
library. -
The
eu-stacktrace
utility is available as a Technology Preview. For details, seeeu-stacktrace
available as a Technology Preview.
The ld
linker now detects if an application uses read, write, and execute permissions for a memory region
A memory region with read, write, and execute permissions at the same time is a potential point of attack because a buffer overflow can allow executable code to be injected into the memory and then executed.
With this enhancement, the ld
linker detects whether an application uses a memory region with these 3 permissions and reports the following error for applications:
ld: error: <file_name> has a LOAD segment with RWX permissions
ld: error: <file_name> has a LOAD segment with RWX permissions
You can suppress the error by using ld
with the -no-error-rwx-segments
option. However, to prevent a potential risk in your application if the linker does report this error, modify your source code and change how you build your application so that the problem is eliminated.
Jira:RHEL-59802[1]
The ld
linker now detects if an application uses an executable stack
A stack that is held in an executable region of memory is a potential point of attacks if, due to a buffer overrun, executable code is placed there.
With this enhancement, the ld
linker detects whether an application is created with an executable stack and reports errors, such as the following:
error: creating an executable stack because of -z execstack command line option error: <file>: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section) error: <file>: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section
error: creating an executable stack because of -z execstack command line option
error: <file>: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)
error: <file>: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section
You can suppress the error by using ld
with the -no-error-execstack
option. However, to prevent a potential risk in your application if ld
reports the error, it is better to modify your source code and change the build machinery so that it does not use an executable stack.
Jira:RHEL-59801[1]
binutils
now supports the arch15
extension of the IBM Z instruction set
With this enhancement, binutils
supports the arch15
extensions of CPUs on the IBM Z platform. Developers can now use the new features provided by the arch15
extension in assembler source files or, when an updated compiler is available, also in compiled programs. This can result in smaller and faster programs.
Jira:RHEL-50068[1]
The boost-devel
package provides BoostConfig.cmake
and other official CMake scripts
This enhancement adds BoostConfig.cmake
and other official CMake scripts to the boost-devel
package. CMake uses these scripts in some cases to test if boost
features exists. As a result, CMake projects that test for boost
features work now more robustly.
Go Toolset rebased to version 1.23
Go Toolset has been updated to version 1.23. Notable enhancements include:
The
for-range
loop accepts iterator functions of the following types:-
func(func() bool)
-
func(func(K) bool)
func(func(K, V) bool)
Calls of the iterator argument function create the iteration values for the
for-range
loop. For reference links, see the upstream release notes.
-
- The Go Toolchain can collect usage and breakage statistics to help the Go team to understand how the Go Toolchain is used and working. By default, Go Telemetry does not upload telemetry data and stores it only locally. For further information, see the upstream Go Telemetry documentation.
-
The
go vet
subcommand includes thestdversion
analyzer which flags references to symbols that are too new for the version of Go you use in the referring file. -
The
cmd
andcgo
features support the-ldflags
option to pass flags to the C linker. Thego
command uses this flag automatically to avoidargument list too long
errors when you use a very largeCGO_LDFLAGS
environment variable. -
The
trace
utility tolerates partially broken traces and attempts to recover the trace data. This is especially useful in case of crashes, because you can get the trace leading up to the crash. -
The traceback printed by the runtime after an unhandled panic or other fatal error carries indentation to distinguish the stack trace of the
goroutine
from the firstgoroutine
. - The compiler build time overhead of using profile-guided optimization was reduced to single-digit percentage.
-
The new
-bindnow
linker flag enables immediate function binding when building a dynamically-linked ELF binary. -
The
//go:linkname
linker directive no longer refer to internal symbols in the standard library and the runtime that are not marked with//go:linkname
on their definition. -
If a program no longer refers to a
Timer
orTicker
, garbage collection cleans them up immediately even if theirStop
method has not been called. The timer channel associated with aTimer
orTicker
is now unbuffered with capacity 0. This ensures that, every time aReset
orStop
method is called, no stale values are not sent or received after the call. -
The new
unique
package provides facilities for canonicalizing values, such asinterning
orhash-consing
. -
The new
iter
package provides the basic definitions to work with user-defined iterators. -
The
slices
andmaps
packages introduce several new functions that work with iterators. -
The new
structs
package provides types for struct fields that modify properties of the containing struct type, such as memory layout. Minor changes are made in the following packages:
-
archive/tar
-
crypto/tls
-
crypto/x509
-
database/sql
-
debug/elf
-
encoding/binary
-
go/ast
-
go/types
-
math/rand/v2
-
net
-
net/http
-
net/http/httptest
-
net/netips
-
path/filepath
-
reflect
-
runtime/debug
-
runtime/pprof
-
runtime/trace
-
slices
-
sync
-
sync/atomic
-
syscall
-
testing/fstest
-
text/template
-
time
-
unicode/utf16
-
For more information, see the upstream release notes.
Go Toolset is a rolling Application Stream, and Red Hat supports only the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.
Jira:RHEL-62392[1]
glibc
now supports the GB18030-2022 encoding standard
This enhancement updates the support of the GB18030 encoding standard in glibc
from version 2005 to 2022. With version 2022, you can use 31 new transcoding relationships and the additional characters and code points introduced by this standard.
Jira:RHEL-56032[1]
Go Toolset rebased to version 1.24.4
Go Toolset has been updated to version 1.24.4 with the release of the RHSA-2025:10676 advisory.
Notable enhancements and changes include:
Language:
- Generic type aliases are now fully supported, allowing type aliases to be parameterized for increased flexibility with generics.
Tools:
-
The Go module system supports
tool
directives ingo.mod
files, enabling direct management of executable dependencies. -
The
go build
,go install
, andgo test
commands now support the-json
flag for structured output. -
The new
GOAUTH
environment variable provides enhanced authentication for private modules.
-
The Go module system supports
Runtime and Performance:
- Runtime improvements reduce CPU overhead by 2–3% on average.
- Notable changes include a new map implementation based on Swiss Tables and more efficient memory allocation.
Standard Library:
-
The new
os.Root
type enables directory-limited filesystem access. -
The
testing.B.Loop
method improves benchmarking. -
The
runtime.AddCleanup
function provides a more flexible finalization mechanism. -
The new
weak
package introduces weak pointers.
-
The new
Cryptography:
-
New packages for ML-KEM post-quantum key exchange (
crypto/mlkem
), HKDF, PBKDF2, and SHA-3 are now available. - The Go Cryptographic Module is now under review for FIPS 140-3 certification.
-
New packages for ML-KEM post-quantum key exchange (
Additional updates:
-
The
vet
tool includes a new analyzer for detecting common mistakes in tests and examples. - The objdump tool now supports more architectures.
-
Cgo
introduces annotations for improved performance and correctness.
-
The
For more information, see the upstream release notes.
Go Toolset is a rolling Application Stream, and Red Hat supports only the latest version. For more information, see the Red Hat Enterprise Linux Application Streams Life Cycle document.
Jira:RHEL-101074[1]
3.14. Identity Management Copy linkLink copied to clipboard!
New tool to manage IdM ID range inconsistencies
With this update, Identity Management (IdM) provides the ipa-idrange-fix
tool. You can use ipa-idrange-fix
tool to analyze existing IdM ID ranges, identify users and groups outside these ranges, and propose to create new ipa-local
ranges to include them.
The ipa-idrange-fix
tool performs the following:
- Read and analyze existing ranges from LDAP.
-
Search for users and groups outside of
ipa-local
ranges. -
Propose new
ipa-local
ranges to cover the identified users and groups. - Prompt the user to apply the proposed changes.
By default, the tool excludes IDs below 1000 to prevent conflicts with system accounts. Red Hat strongly recommends creating a full system backup before applying any suggested changes.
For more information, see the ipa-idrange-fix(1)
man page.
Kerberos now supports the Elliptic Curve Diffie-Hellman key agreement algorithm
The Elliptic Curve Diffie-Hellman (ECDH) key agreement algorithm for PKINIT, as defined by RFC5349, is now supported. With this update, the pkinit_dh_min_bits
setting in krb5.conf`file can now be configured with `P-256
, P-384
, or P-521
to use ECDH by default.
ansible-freeipa
rebased to 1.14.5
The ansible-freeipa
package has been rebased from version 1.13.2 to version 1.14.5. Notable enhancements and bug fixes include:
You can use
module_defaults
to define variables for multipleansible-freeipa
tasksThe
freeipa.ansible_freeipa
collection now provides themodule_defaults
action group that simplifies the use ofansible-freeipa
modules. By usingmodule_defaults
, you can set default values to be applied to all modules of the collection used in a playbook. To do so, use theaction_group
namedfreeipa.ansible_freeipa.modules
. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow As a result, the playbook is more concise.
Multiple IdM
sudo
rules can now be managed in a single Ansible taskThis enhancement adds the
sudorules
option toansible-freeipa
. By usingsudorules
, you can add, modify, and delete multiple Identity Management (IdM)sudo
rules by using a single Ansible task. To do this, use thesudorules
option of theipasudorule
module. As a result, you can define yoursudo
rules more easily, and execute them more efficiently.Using the
sudorules
option, you can specify multiplesudo
rule parameters that apply to a particularsudo
rule. Thissudo
rule is defined by thename
variable, which is the only mandatory variable for thesudorules
option.Removing external members by using the
ipagroup
module now works correctlyPreviously, attempting to ensure the absence of an external member from an IdM group by using the
ansible-freeipa
ipagroup
module with theexternalmember
parameter did not remove the members from the group, even though Ansible presented the result of the task aschanged
. With this fix, using theipagroup
module withexternalmember
correctly ensures the absence of an external member from an IdM group. The fix also allows the use of either DOM\name or name@domain to identify AD users.
389-ds-base
has been rebased to version 2.6.1
The 389-ds-base
package has been rebased to version 2.6.1. Notable bug fixes and enhancements over version 2.5.2 include:
- Log buffering for the error log
- An option to write the audit log in JSON format
- An option to defer updating group members when the group is updated
- An option to configure the number of PBKDF2 iterations
-
The
logconv.py
log analyzer tool
openldap
has been rebased to version 2.6.8
The openldap
package has been updated to version 2.6.8. The update includes various enhancements and bug fixes, including:
- Handling of TLS connections has been improved.
-
Kerberos
SASL
works withSTARTTLS
even when the Active Directory certificate is an Elliptic Curve Cryptography (ECC) certificate andSASL_CBINDING
is set totls-endpoint
.
The new memberOfDeferredUpdate: on/off
configuration attribute is now available in Directory Server
With this update, Directory Server introduces the new memberOfDeferredUpdate
configuration attribute for the MemberOf plug-in. When set to on
, the MemberOf plug-in defers the update of group members resulting in improved server responsiveness, especially if the group changes impact a large number of its members.
For details, see memberOfDeferredUpdate in the Red Hat Directory Server 12 Configuration and schema reference documentation.
Directory Server now provides buffering of the error, audit, and audit fail logs
Before this update, only the access and security logs had log buffering. With this update, Directory Server provides buffering of the error, audit, and audit fail logs. Use the following settings to configure log buffering:
-
nsslapd-errorlog-logbuffering
for the error log. Disabled by default. -
nsslapd-auditlog-logbuffering
for the audit and audit fail log. Enabled by default.
For details, see nsslapd-errorlog-logbuffering and nsslapd-auditlog-logbuffering in the Red Hat Directory Server Configuration and schema reference documentation.
Directory Server now can update passwords with the CRYPT or CLEAR hashing algorithm after a successful bind
Before this update, Directory Server had a hard-coded list of hashing algorithms that were excluded from the password update during successful binds. Directory Server did not update user passwords that had the CRYPT or CLEAR hashing algorithm configured in the passwordStorageScheme
attribute.
With this update, you can set the list of hashing algorithms that must be excluded from password updates by using the nsslapd-scheme-list-no-upgrade-hash
configuration attribute. By default, nsslapd-scheme-list-no-upgrade-hash
contains CRYPT and CLEAR for backward compatibility.
HSM is now fully supported in IdM
Hardware Security Modules (HSM) are now fully supported in Identity Management (IdM). You can store your key pairs and certificates for your IdM Cerificate Authority (CA) and Key Recovery Authority (KRA) on an HSM. This adds physical security to the private key material.
IdM relies on the networking features of the HSM to share the keys between machines to create replicas. The HSM provides additional security without visibly affecting most IdM operations. When using low-level tools the certificates and keys are handled differently but this is seamless for most users.
Migration of an existing CA or KRA to an HSM-based setup is not supported. You need to reinstall the CA or KRA with keys on the HSM.
You need the following:
- A supported HSM.
- The HSM Public-Key Cryptography Standard (PKCS) #11 library.
- An available slot, token, and the token password.
To install a CA or KRA with keys stored on an HSM, you must specify the token name and the path to the PKCS #11 library. For example:
ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
Jira:RHELDOCS-17465[1]
3.15. SSSD Copy linkLink copied to clipboard!
New SSSD option: exop_force
You can use the exop_force
option to force a password change even if no grace logins are left. Previously, SSSD did not attempt password changes if the LDAP server indicated that there were no grace logins remaining. Now, if you set ldap_pwmodify_mode = exop_force
in the [domain/…]
section of the sssd.conf
file, SSSD tries to change the password even if no grace logins are left.
Jira:RHELDOCS-19863[1]
Support for group merging added in authselect
If you are using the authselect
utility, you no longer need to manually edit the nssswitch.conf
file to enable group merging. With this update, It is now integrated into authselect
profiles, eliminating the need for manual changes.
Jira:RHELDOCS-19936[1]
Support for dynamic DoT updates in SSSD
SSSD now supports performing all dynamic DNS (dyndns) queries using DNS-over-TLS (DoT). You can securely update DNS records when IP addresses change, such as Identity Management (IdM) and Active Directory servers. To enable this functionality, you must install the nsupdate
tool from the bind9.18-utils
package.
You can use the following new options in the sssd.conf
file to enable DoT and configure custom certificates for secure DNS updates:
- dyndns_dns_over_tls
- dyndns_tls_ca_cert
- dyndns_tls_cert
- dyndns_tls_key
For more details about these options, see the sssd-ad(5)
and sssd-ad(5)
man pages on your system.
Jira:RHELDOCS-20057[1]
3.16. Red Hat Enterprise Linux System Roles Copy linkLink copied to clipboard!
New variable in the postfix
RHEL system role: postfix_default_database_type
The postfix
system role can determine the default database type used by postfix
and export it as a variable postfix_default_database_type
. As a result, you can set configuration parameters based on the default database type.
Using postfix_default_database_type
in a configuration parameter value is not supported on Ansible 2.9.
New variables in the microsoft.sql.server
system role: mssql_tools_versions
and mssql_tls_self_sign
The new mssql-tools18
package brings functionality that is not backwards-compatible with the previous versions of the mssql-tools
package. Therefore the following variables have been added to the microsoft.sql.server
system role to adapt to the changes:
-
mssql_tools_versions
(list, defaults to version 18): Enables you to install different versions ofmssql-tools
. -
mssql_tls_self_sign
(boolean): Specifies whether the certificates that you use are self-signed or not. Applicable when you also set themssql_tls_enable: true
variable.
When you use mssql-tools18
with self-signed TLS certificates, you have to set mssql_tls_self_sign: true
so that the role sets the -C
flag in the sqlcmd
command-line utility so that your certificates can be trusted.
As a result, you can use these configurations to install mssql_tools
version 17; 18; or both in parallel.
For more details, see the resources in the /usr/share/ansible/roles/microsoft.sql-server/
directory.
New RHEL system role: aide
You can use the new aide
RHEL system role for detecting unauthorized changes to files, directories, and system binaries. With this role, you can accomplish, for example, the following tasks:
-
Install the
aide
package on the managed node -
Generate the
/etc/aide.conf
file and template it out to the managed node - Initialize the (Advanced Intrusion Detection Environment) AIDE database
- Run AIDE integrity checks on the managed node
The role does not explain how to create a suitable AIDE configuration.
As a result, you can manage AIDE at scale in an automated fashion to address your security, compliance or auditing needs.
For more details, see the resources in the /usr/share/doc/rhel-system-roles/aide/
directory.
New variable in the sudo
RHEL system role: sudo_check_if_configured
The sudo
RHEL system role has the following variable:
-
sudo_check_if_configured
(boolean): Provides a semantic check of an already configuredsudoers
file in case the Ansible setup is not needed and is skipped.
As a result, you can use this setting to ensure the sudo
role idempotence if Ansible intervention is not required.
For more details, see the resources in the /usr/share/doc/rhel-system-roles/sudo/
directory.
The microsoft.sql.server
system role enables AES 128-bit and AES 256-bit encryption for AD users
Since version 1.1.83, the adutil
utility supports the Kerberos protocol with AES 128-bit and AES 256-bit encryption when creating and modifying an Active Directory (AD) user. With this update, the microsoft.sql.server
system role automates enabling AES 128-bit and AES 256-bit encryption provided by the Kerberos protocol when creating or modifying AD users. As a result, manual post-configuration tasks are not necessary.
The systemd
RHEL system role can manage user units in addition to system units
With this update, the systemd
RHEL system role can also manage user units. For each unit file or unit specified in systemd_unit_files
, or systemd_unit_file_templates
, or systemd_started_units
and so on, you can add a user: name
if you want that file or unit to be managed for the given user. The default is root
which is used for system units.
To get the units on the system managed by the role, including both system and user units, a new return variable has been added:
-
systemd_units_user
(dictionary): Each key is a name of a user given in one of the lists passed to the role, androot
(even ifroot
is not given). Each value is a dictionary ofsystemd
units for that user, or system units forroot
.
The role does not create new users and it will return an error if you specify a non-existent user.
As a result, you can manage user units with the systemd
RHEL system role.
For more details, see the resources in the /usr/share/doc/rhel-system-roles/systemd/
directory.
Support for exporting corosync
configuration of an existing cluster
The ha_cluster
RHEL system role supports exporting the corosync
configuration of an existing cluster in a format that can be fed back to the role to recreate the same cluster. If you did not use the ha_cluster
RHEL system role to create your cluster, or if you have lost the original playbook for the cluster, you can use this feature to build a new playbook for the cluster.
The podman
RHEL system role can manage the quadlet units of type Pod
The podman
utility of version 5 added support for Pod
quadlet types. Consequently, the podman
RHEL system role enables you to also manage the quadlet units of type Pod
.
For more details, see the upstream article.
New property added to the network
RHEL system role network_connections
variable: autoconnect_retries
There is no fine-grained control over the number of automatic retries to reconnect a network connection in the network
RHEL system role. This limitation could be problematic for certain use cases where extending the retry process is critical, particularly in environments with unstable networks. The autoconnect_retries
property added to the to the network_connections
role variable configures how many times NetworkManager attempts to reconnect a network connection after an autoconnect failure. As a result, the network
RHEL system role allows configuring the number of automatic reconnection attempts after an autoconnect failure by using the autoconnect_retries
property in the network_connections
variable. This enhancement provides greater control over network stability and performance, especially in environments with unstable networks.
For more details, see the resources in the /usr/share/doc/rhel-system-roles/network/
directory.
New property added to the network
RHEL system role network_connections
variable: wait_ip
This update provides added support for the wait_ip
property of the ip
option in the network_connections
role variable. The property specifies if the system should consider the network connection as activated only when a specific IP stack is configured. You can configure wait_ip
with the following values:
-
any
: The system considers the connection activated once any IP stack is configured. -
ipv4
: The system waits until IPv4 is configured. -
ipv6
: The system waits until IPv6 is configured. -
ipv4+ipv6
: The system waits until both IPv4 and IPv6 are configured.
As a result, the network
RHEL system role allows you to configure network connections based on specific IP stack configurations. This enables the connection to remain activated even if an IP address is not assigned, depending on the selected wait_ip
setting.
For more details, see the resources in the /usr/share/doc/rhel-system-roles/network/
directory.
The metrics
RHEL system role supports Valkey as an alternative to Redis
This update provides added support for the Valkey in-memory data structure store for the metrics
RHEL system role. It is an alternative to Redis, which is no longer open source and is being removed from Linux distributions. Valkey is typically used as a high-performance caching layer. It stores data in memory, which accelerates applications by caching frequently accessed data. Additionally, you can use Valkey for other performance-critical operations, for example:
- Storing and retrieving user session data.
- Real-time communication between different application parts.
- Providing fast data access for analytics and monitoring.
New variable in the logging
RHEL system role: logging_custom_templates
The following variable has been added to the logging
RHEL system role:
-
logging_custom_templates
: A list of custom template definitions. You can use it with thelogging_outputs
variable when its option istype: files
ortype: forwards
. You can specify this custom template for each output by setting thetemplate
option in a particularlogging_outputs
specification. Alternatively, you can set this custom template to be used by default for all files and forwards outputs by using thelogging_files_template_format
andlogging_forwards_template_format
global options.
As a result, you can format log entries differently than what the built-in defaults provide.
For more details, see the resources in the /usr/share/doc/rhel-system-roles/logging/
directory.
sshd
RHEL system role validates commands and configurations
The sshd
role uses the quote
command when using the command
or shell
plugins to ensure you can use these commands safely. The role also validates certain user-supplied role variables passed to these plugins. This improves the security and robustness of using the role because, without validation, user-supplied variables that contain white space could split and not function correctly.
3.17. Virtualization Copy linkLink copied to clipboard!
KVM on IBM Z now supports more than one boot device
Guest operating systems running on KVM on IBM Z hosts can attempt booting from additional devices when the primary boot device is not bootable. This feature is supported for the following device types:
-
virtio-net
-
virtio-blk
-
virtio-scsi/cdrom
To configure the order of the boot devices for the VM, use the order
parameter on the <boot>
line of their XML configuration. The VM will now attempt up to 8 devices for booting.
In addition, these devices now support the loadparm
parameter for the <boot>
line of their XML configuration. By using loadparm
, it is possible to configure which boot entry the device uses when the guest operating system boots from the device.
Virtual machines supported in RHEL for Real Time
This update introduces full support for real-time virtualization in RHEL for Real Time. You can configure the host and guest operating systems to achieve low-latency and deterministic behavior for virtual machines (VMs). This makes real-time VMs suitable for applications that require real-time performance, such as industrial automation, telecommunications, and automotive systems.
Jira:RHELDOCS-20116[1]
Newly supported features for virtual machines on 64-bit ARM hosts
The following features are now supported for virtual machines on RHEL hosts that use the 64-bit ARM architecture, also known as aarch64:
- Migrating VMs between 64-bit ARM hosts. Note, however, that the migration currently only works when both hosts use the same CPU type and memory page size.
- The Trusted Platform Module (TPM) Interface Specification (TIS) hardware interface
- Non-volatile dual inline memory module (NVDIMM) memory device
- The virtio-iommu device
Jira:RHELDOCS-19832[1]
virt-install
now supports creating VMs with SEV-SNP
You can now use the virt-install
utility to create a virtual machine (VM) that uses the AMD Secure Encrypted Virtualization with Secure Nested Paging (SEV-SNP) feature. To do so, use the launchSecurity sev-snp,policy=0x30000
option.
Note that SEV-SNP is currently provided as a Technology Preview.
Support for VM live migration with shared virtiofs
directory that provides write access to other parties
With this update, you can live migrate a virtual machine (VM) with a virtiofs
shared directory, even if multiple other parties, such as the host and other VMs, have write access to that directory.
Virtualization support for IBM z17 processors
With this update, virtualization on RHEL adds support for the IBM z17 CPUs. As a result, virtual machines hosted on an IBM Z system with RHEL can now use new features that the z17 processors provide.
Jira:RHEL-33137[1]
Retrievable secrets are supported for Secure Execution on IBM Z
With this update, you can use generalized host-based secrets for cryptographic devices in Secure Execution virtual machines (VMs) on IBM Z. As a result, it is no longer needed to store secrets in an initramfs
image when configuring Secure Execution, which simplifies creating a secure VM image. Note that this feature is currently only supported on IBM z17 processors.
Jira:RHEL-50754[1]
Virtualization support for Intel Xeon v6 processors
With this update, virtualization on RHEL 9 adds support for the Intel Xeon v6 processors, formerly known as Sierra Forest. As a result, virtual machines hosted on RHEL 9 can now use the SierraForest
CPU model and use new features that the processors provide.
Jira:RHEL-15731[1], Jira:RHEL-15719
RHEL supports live migrating a VM with a Mellanox virtual function
With this update, you can perform live migration of a virtual machine (VM) with an attached virtual function (VF) of a Mellanox networking device.
However, this feature is currently only supported with a Mellanox CX-7 networking device with a specific firmware version. The VF on the Mellanox CX-7 networking device uses a new mlx5_vfio_pci
driver, which adds functionality that is necessary for the live migration, and libvirt
binds the new driver to the VF automatically.
For more details and limitations, see: Live migrating a virtual machine with an attached Mellanox virtual function
Jira:RHELDOCS-19210[1]
3.18. RHEL in cloud environments Copy linkLink copied to clipboard!
Intel TDX in RHEL guests
The Intel Trust Domain Extension (TDX) feature is now fully supported in RHEL 9.5 and later when used as a guest operating system. If the host system supports TDX, you can deploy hardware-isolated RHEL 9 guests, called trust domains (TDs). This increases the isolation of the RHEL guest from the host, and makes it significantly more difficult for the host to access the data on the RHEL guest.
Jira:RHEL-70465[1]
Unified Kernel Image for RHEL is fully supported
Unified Kernel Image (UKI) for RHEL, which was introduced in RHEL 9.2 as a Technology Preview, is now fully supported. To use RHEL UKI, you must first install the kernel-uki-virt
package. RHEL UKI can enhance SecureBoot protection in virtualized and cloud environments.
Jira:RHELDOCS-19839[1]
WSL images of RHEL 8 - 10 are available on the Customer Portal
RHEL 8, RHEL 9, and RHEL 10 images for the Windows Subsystem for Linux (WSL) can now be downloaded from the Red Hat Customer Portal. These images are available for all RHEL subscriptions, including no-cost developer subscriptions. By using the WSL images, you can create RHEL instances on your Windows system.
Note that the WSL images are provided as self-supported. As such, they are not supported by Red Hat, and are intended for application development purposes only.
In addition, the following issues are currently present in the RHEL guest operating system if you use a WSL image with a Windows WSL host:
- WSL instances of RHEL might work incorrectly in a graphical interface. Using a text user interface is recommended instead.
To use podman, you must add the following lines to the
/etc/containers/containers.conf
file, in addition to the standard configuration steps:[network] firewall_driver="iptables"
[network] firewall_driver="iptables"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow To use cloud-init, you must create the
/etc/cloud/cloud.cfg.d/99_wsl.cfg
file and add the following content to it, in addition to the standard configuration steps:datasource_list: [WSL] network: {config: disabled}
datasource_list: [WSL] network: {config: disabled}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - It is not possible to set SELinux to enforcing mode.
- FIPS mode is not available in WSL instances of RHEL.
RHEL on HPE can run up to 4096 vCPUs
With this feature, a RHEL virtual machine (VM) instance running with the RHEL KVM hypervisor on Hewlett Packard Enterprise Compute Scale-Up Server now supports up to 4096 virtual CPUs, 32 sockets, and 64 TB of memory to handle in-memory databases and other large compute intensive workloads.
Jira:RHEL-11043[1]
Enhanced automatic registration for eligible RHEL images
When purchasing certain eligible cloud marketplace subscriptions for RHEL 9.6 or later and for RHEL 10.0 or later, an improved version of the auto-registration function is available.
With the enhanced auto-registration, any RHEL instances on the eligible marketplaces will be automatically registered to Red Hat and automatically receive content updates from Red Hat Update Infrastructure (RHUI) after you establish a trusted connection between your Red Hat account and your account for the specific cloud platform, even if you did not have the trusted connection when you set launched the instance.
For additional details, see Understanding auto-registration.
Jira:RHELDOCS-19664[1]
3.19. Supportability Copy linkLink copied to clipboard!
The plugin option names now use only hyphens instead of underscores
To ensure consistency across sos
global options, the plugin option names now use only hyphens instead of underscores For example, the networking plugin namespace_pattern
option is now namespace-pattern
and must be specified by using the --plugin-option networking.namespace-pattern=<pattern>
syntax.
Jira:RHELDOCS-18655[1]
The --api-url
option is now available
With the --api-url
option you can call another API as required. For example, the API for an OpenShift Container Platform cluster. Example: sos collect --cluster-type=ocp --cluster-option ocp.api-url=_<API_URL> --alloptions
.
The new --skip-cleaning-files
option is now available
The --skip-cleaning-files
option for the sos report
command allows you to skip cleaning selected files. The option supports globs and wildcards. Example: sos report -o host --batch --clean --skip-cleaning-files 'hostname'
.
Jira:RHEL-30893[1]
3.20. Containers Copy linkLink copied to clipboard!
Podman supports pushing and pulling images compressed with zstd:chunked
You can push images compressed with the zstd:chunked
format to reduce the image size and use partial pulls.
The Container Tools packages have been updated
The updated Container Tools RPM meta-package, which contains the Podman, Buildah, Skopeo, crun
, and runc
tools, is now available. The Buildah has been updated to version 1.39.0, Skopeo has been updated to version 1.18.0. Podman v5.4 contains the following notable bug fixes and enhancements over the previous version:
-
The
podman update
command now supports a wide variety of options related to health checks: the--health-cmd
to define a new health check and--no-healthcheck
to disable an existing health check. These options make it easier to add, modify, or disable health checks on running containers. For more information, see thepodman-update(5)
man page. -
The
--mount type=volume
option for thepodman run
,podman create
, andpodman volume create
commands now supports a new option,subpath=
, to make only a subset of the volume visible in the container. -
The
--userns=keep-id
option for thepodman run
,podman create
, andpodman pod create
commands now supports a new option,--userns=keep-id:size=
, to configure the size of the user namespace. -
The
podman kube play
command now supports Container Device Interface (CDI) devices. -
The
podman run
,podman create
, andpodman pod create
commands now support a new option,--hosts-file
, to define the base file used for/etc/hosts
in the container. -
The
podman run
,podman create
, andpodman pod create
commands now support a new option,--no-hostname
, which disables the creation of/etc/hostname
in the container. -
The
podman network create
command now supports a new option for bridge networks,--opt mode=unmanaged
, which allows Podman to use an existing network bridge on the system without changes. -
The
--network
option forpodman run
,podman create
, andpodman pod create
now accepts a new option for bridge networks,host_interface_name
, which specifies a name for the network interface created outside the container. -
The
podman manifest rm
command now supports a new option,--ignore
, to proceed successfully when removing manifests that do not exist. -
The
podman system prune
command now supports a new option,--build
, to remove build containers leftover from prematurely terminated builds. - Podman now passes container hostnames to Netavark, which uses them for any DHCP requests for the container.
-
Packagers can now set the
BUILD_ORIGIN
environment variable when building podman from the Makefile. This provides information on who built the Podman binary, and this information is displayed in thepodman version
andpodman info
commands. Including this information can assist with bug reports by helping maintainers to identify the source and method of the build and installation. -
The
podman kube generate
andpodman kube play
commands can now create and run Kubernetes Job YAML. -
The
podman kube generate
command now includes information on the user namespaces for pods and containers in the generated YAML. Thepodman kube play
command uses this information to duplicate the user namespace configuration when creating new pods based on the YAML. -
The
podman kube play
command now supports Kubernetes volumes of type image. -
The service name of
systemd
units generated by Quadlet can now be set with theServiceName
key in all supported Quadlet files. -
Quadlets can now disable their implicit dependency on
network-online.target
by using a new key,DefaultDependencies
, supported by all Quadlet files. -
Quadlet
.container
and.pod
files now support a new key,AddHost
, to add hosts to the container or pod. -
The
PublishPort
key in Quadlet.container
and.pod
files can now accept variables in its value. -
Quadlet
.container
files now support two new keys,CgroupsMode
andStartWithPod
, to configure control groups for the container and whether the container will be started with the pod that it is part of. -
Quadlet
.container
files can now use the network of another container by specifying the.container
file of the container to share within the Network key. -
Quadlet
.container
files can now mount images managed by.image
files into the container by using theMount=type=image
key with an.image
target. -
Quadlet
.pod
files now support six new keys,DNS
,DNSOption
,DNSSearch
,IP
,IP6
, andUserNS
, to configureDNS
, static IPs, and user namespace settings for the pod. -
Quadlet
.image
files can now give an image multiple times by specifying theImageTag
key multiple times. -
Quadlets can now be placed in the
/run/containers/systemd
directory and existing directories, such as$HOME/containers/systemd
and/etc/containers/systemd/users
. - Quadlet now properly handles subdirectories of a unit directory that is a symlink.
-
The
podman manifest inspect
command now includes the manifest’s annotations in its output. -
The
--add-host
option forpodman create
,podman run
, andpodman pod create
now supports specifying multiple hostnames, semicolon-separated (for examplepodman run --add-host test1;test2:192.168.1.1
). -
The
podman run
andpodman create
commands now support three new options for configuring health check logging:--health-log-destination
(specifies where logs are stored),--health-max-log-count
(specifies how many health checks worth of logs are stored), and--health-max-log-size
(specifies the maximum size of the health check log).
For more information about notable changes, see upstream release notes.
Enhanced health check output configuration is now available in Podman
Podman now offers enhanced configurability for health check outputs on a per-container basis. Before this update, health check outputs were limited to the five most recent executions, each capped at 500 characters, accessible only by using the podman inspect
command. You can now adjust the amount of health check output stored for each container, allowing for more comprehensive debugging information when needed. This feature is particularly beneficial for diagnosing intermittent health check failures without disrupting the running service. Additionally, to address concerns about sensitive data and storage efficiency, you can opt to limit or disable health check output storage for specific containers.
For more details, see the podman-update
man page.
Jira:RHEL-60561[1]
Deploying a container image by using a single command is now available
You can deploy a container image into a RHEL cloud instance by using a signal command. The system-reinstall-bootc
command installs performs the following actions:
- Pull the supplied image to set up SSH keys or access the system.
-
Run the
bootc install to-existing-root
command with all the bind mounts and SSH keys configured.
Jira:RHELDOCS-19516[1]
Creating custom bootc
images from scratch is now supported
You can create bootc
images from scratch and fully control the contents of the image and tailor the system environment to meet specific requirements. With the bootc-base-imgectl
command, you can create custom bootc
images based on an existing bootc
base image. Bootc Image from Scratch are derived from container images and do not automatically receive updates from the default base image. To include such updates, you must incorporate them manually as part of your container pipeline. Additionally, you can use the rechunk
subcommand in bootc-base-imgectl
on any bootc container image to optimize or restructure the image as needed.
Jira:RHELDOCS-19825[1]
A new image build progressing bar available for bootc-image-builder
Previously, you could not check if an image build was progressing by looking into the logs. With this enhancement, you can check the progress of the image build that you created by using bootc-image-builder
. You can revert to the previous behavior by using the --progress=verbose
argument when building images.
Jira:RHELDOCS-20170[1]
3.21. Lightspeed Copy linkLink copied to clipboard!
The command-line assistant powered by RHEL Lightspeed is generally available in RHEL
The command-line assistant powered by RHEL Lightspeed is available within the RHEL command line. The generative AI that powers the assistant is trained on information from the RHEL product documentation and Red Hat Knowledgebase, and can help you to understand, configure, and troubleshoot your RHEL systems in a more accessible way, whether you are new to RHEL or already an experienced user.
Jira:RHELDOCS-20019[1]
The command line assistant supports using the systemd-creds
as a password store manager
The command-line assistant powered by RHEL Lightspeed integrates command line assistant daemon (clad
) by using the systemd-creds
, a password store manager shipped with RHEL. This means that you can securely store your passwords by using databases such as PostgreSQL or MySQL as your history backend. As a result, you can use the tool for listing, showing, encrypting and decrypting unit credentials in a secure manner.
Jira:RHELDOCS-20024[1]