From c7fc14c3aed5a4d698d01682b4a3c44bc7365874 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Mon, 12 Jan 2026 18:37:03 -0700 Subject: [PATCH] v4.6.5 release Signed-off-by: Jonathon Anderson --- .github/releases/v4.6.5.md | 15 +++ CHANGELOG.md | 71 ++++++------ RELEASE.md | 2 +- .../getting-started/debian-quickstart.rst | 2 +- userdocs/getting-started/el-quickstart.rst | 4 +- userdocs/index.rst | 1 + userdocs/release/v4.6.5.rst | 108 ++++++++++++++++++ userdocs/server/bootloaders.rst | 4 +- userdocs/server/installation.rst | 12 +- 9 files changed, 172 insertions(+), 47 deletions(-) create mode 100644 .github/releases/v4.6.5.md create mode 100644 userdocs/release/v4.6.5.rst diff --git a/.github/releases/v4.6.5.md b/.github/releases/v4.6.5.md new file mode 100644 index 00000000..cba920df --- /dev/null +++ b/.github/releases/v4.6.5.md @@ -0,0 +1,15 @@ +Warewulf v4.6.5 is a regularly-scheduled minor release in the v4.6.x series. + +- new `wwctl overlay info` command +- fixed `wwctl image import --update` option +- cross-arch support for `wwclient` +- improved IPv6 support +- improved support for bonded interfaces +- renamed `debian.interfaces` overlay to `ifupdown` +- new `systemd-networkd` overlay +- `warewulf-dracut` fixes, including "provision-to-disk" fixes + +Significant changes are detailed in the [release +notes](https://warewulf.org/docs/v4.6.x/release/v4.6.5.html). Additional changes +may be listed in the +[CHANGELOG](https://github.com/warewulf/warewulf/blob/main/CHANGELOG.md). diff --git a/CHANGELOG.md b/CHANGELOG.md index 12a69334..143c2370 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,58 +4,59 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). -## v4.6.5, unreleased +## v4.6.5, 2026-01-12 ### Added -- `wwclient.aarch64` overlay always provides an aarch64 wwclient executable. -- `wwclient.x86_64` overlay always provides an x86_64 wwclient executable. -- systemd-networkd overlay with IPv6 support -- `wwctl overlay info` lists the variables used by an overlay template -- Added support for setting mtu and mac address on bonds with NetworkManager #2059 -- Added new Vagrant/Libvirt basic test/dev environment #2081, #2003 +- New `wwclient.aarch64` overlay provides an aarch64 wwclient executable. #2068 +- New `wwclient.x86_64` overlay provides an x86_64 wwclient executable. #2068 +- New `wwctl overlay info` command lists variables used by an overlay template. #2060 +- New Vagrant/Libvirt basic test/dev environment. #2081, #2003 +- New `bit-rate` IPMI tag. #2045 +- New `prefixlen6` parameter in `warewulf.conf`. #2068 +- New `cloned-mac-address` network device tag for `NetworkManager` overlay. #2017 +- New `range6 start` and `range6 end` in `warewulf.conf:dhcp`. #2068 +- New `Gateway6` network device field. #2068 +- New `systemd-networkd` overlay. #2068 ### Changed -- Renamed debian.interfaces overlay to ifupdown -- Change the DHCP server package used on openeuler 24.03 to dnsmasq -- Added configurable Serial over LAN speed via IPMI `bit-rate` tag in `50-ipmi` template -- Manage SELinux context of TFTP directory. #1997 -- Dynamically write `$tftpdir/warewulf/grub.cfg` to the configured value from `warewulf.conf` -- Absolute paths specified with `{{ file }}` in an overlay now write to that absolute path. -- Use opencontainers/selinux to manage SELinux in wwclient. -- Replace unused/unneeded IPv6net with IpCIDR6 and NetworkCIDR6 to align with IPv4 -- Improved IPv6 support - - Add PrefixLen6 for prefix length, Gateway6, and IPv6 DHCP range - - IPv6 support for Dnsmasq and NetworkManager - - Rename Netdev ip6addr to ipaddr6 for consistency - - Set `addr-gen-mode=eui64` -- Set dnsmasq to listen to the Warewulf interface to prevent to binding to localhost:53 -- Added Ipv6 support to `/etc/hosts` on host and nodes. -- Added IPv6 support to wwclient -- `sfdisk` overlay creates a GPT label when wiping disks. #2025 -- Renamed systemd templates in the `ignition` overlay for clarity. +- Renamed `debian.interfaces` overlay to `ifupdown`. #2011 +- Changed the openEuler 24.03 RPM package to use dnsmasq. #2030 +- Enhanced `wwctl configure tftp` to manage the SELinux context of TFTP directory. #1997 +- Enhanced overlay templates to support absolute paths with `{{ file }}`. #2055 +- Refactored `wwclient` to use opencontainers/selinux to manage SELinux. #2042 +- Renamed network device `ip6addr` to `ipaddr6`. #2068 +- Limited Warewulf server dnsmasq to the Warewulf server interface. #2068 +- Refactored `ignition` overlay systemd templates for clarity. #2077 +- Enhanced `hosts` overlay with IPv6 support. #2068 +- Enhanced dnsmasq and `/etc/hosts` server configuration with IPv6 support. #2068 +- Enhanced `wwclient` with IPv6 support. #2068 ### Removed -- Remove unused Netdev `Prefix` field. +- Remove unused Netdev `Prefix` field. #2068 +- Remove unused `IPv6net` from host configuration. #2068 ### Fixed - Fix "address already in use" in `wwclient` when `secure: true`. #2009 -- Use device names in netplan bonds. #2013 -- Fix ImageDelete API not returning error when checking if image is used by nodes/profiles -- Fix warewulf-dracut to not run the wwinit module if root is not set to `root=wwclient*` -- Fix `wwctl image import --update` #2066 -- Fix filesystem overwrite/force behavior in mkfs overlay. #2028 +- Fix `netplan` overlay to use device names bonds. #2013 +- Fix ImageDelete API not returning error when checking if image is used by nodes/profiles. #1705 +- Fix warewulf-dracut to not run the wwinit module if root is not set to `root=wwclient*`. #2066 +- Fix `wwctl image import --update` #2073 +- Fix filesystem overwrite/force behavior in `mkfs` overlay. #2028 - Prevent ignition from running twice in a provision-to-disk configuration. #1981 -- Fix `warewulf.spec.in` to resolve a build break for openSUSE 15.x +- Remove `%elif` from `warewulf.spec.in` to resolve a build break for openSUSE 15.x. #2082 +- Fixed IPv6 support in `NetworkManager` overlay. #2068 +- Write `$tftpdir/warewulf/grub.cfg` to `tftproot` as configured in `warewulf.conf`. #2055 +- Automatically create a GPT label when `sfdisk` overlay wipes disks. #2025 +- Fix configuration of MTU on bonds with `NetworkManager`. #2059 ### Dependencies -- Updated github.com/ulikunitz/xz to 0.5.14 (CVE-2025-58058) #2007 -- Updated github.com/opencontainers/selinux to v1.13.1 (CVE-2025-52881) -- Updated github.com/cyphar/filepath-securejoin to v0.5.1 (indirect via selinux version bump) +- Update github.com/ulikunitz/xz to 0.5.14 (CVE-2025-58058) #2007 +- Update github.com/opencontainers/selinux to v1.13.1 (CVE-2025-52881) #2082 ## v4.6.4, 2025-09-05 diff --git a/RELEASE.md b/RELEASE.md index 84da58d8..55e464a1 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -29,7 +29,7 @@ versions (e.g., v4.6.3) are tagged on a separate release branch. 6. Create a signed tag for the release of the format v4.MINOR.PATCH, following the format specified in . - git tag --sign v4.6.3; git push origin v4.6.3 + git tag --sign v4.6.5; git push origin v4.6.5 7. Monitor the release action associated with the pushed tag at https://github.com/warewulf/warewulf/actions, and verify the generated draft diff --git a/userdocs/getting-started/debian-quickstart.rst b/userdocs/getting-started/debian-quickstart.rst index af7a0514..28c538d4 100644 --- a/userdocs/getting-started/debian-quickstart.rst +++ b/userdocs/getting-started/debian-quickstart.rst @@ -31,7 +31,7 @@ Install Warewulf and dependencies cd ~/git git clone https://github.com/warewulf/warewulf.git cd warewulf - git checkout main # or switch to a tag like 'v4.6.4' + git checkout main # or switch to a tag like 'v4.6.5' make all && sudo make install Configure firewalld diff --git a/userdocs/getting-started/el-quickstart.rst b/userdocs/getting-started/el-quickstart.rst index 6c9b887f..0ebbafbf 100644 --- a/userdocs/getting-started/el-quickstart.rst +++ b/userdocs/getting-started/el-quickstart.rst @@ -10,11 +10,11 @@ Install Warewulf The preferred way to install Warewulf on Enterprise Linux is using the the RPMs published in `GitHub releases`_. For example, to install the -v4.6.4 release on Enterprise Linux 9: +v4.6.5 release on Enterprise Linux 9: .. code-block:: bash - dnf install https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-4.6.4-1.el9.x86_64.rpm + dnf install https://github.com/warewulf/warewulf/releases/download/v4.6.5/warewulf-4.6.5-1.el9.x86_64.rpm Packages are available for el8 and el9. diff --git a/userdocs/index.rst b/userdocs/index.rst index 2bbcba05..91021544 100644 --- a/userdocs/index.rst +++ b/userdocs/index.rst @@ -94,3 +94,4 @@ Welcome to the Warewulf User Guide! v4.6.2 v4.6.3 v4.6.4 + v4.6.5 diff --git a/userdocs/release/v4.6.5.rst b/userdocs/release/v4.6.5.rst new file mode 100644 index 00000000..797dcbd2 --- /dev/null +++ b/userdocs/release/v4.6.5.rst @@ -0,0 +1,108 @@ +==================== +v4.6.5 Release Notes +==================== + +v4.6.5 is a regularly-scheduled minor release in the v4.6.x series. + +Significant changes are described below. Additional changes are listed in the +`CHANGELOG`_. + +.. _CHANGELOG: https://github.com/warewulf/warewulf/blob/main/CHANGELOG.md + +wwctl overlay info +================== + +A new ``wwctl overlay info`` command lists variables used by an overlay +template, including the ``wwctl set`` argument used to set that +variable. + +.. code-block: console + + # wwctl overlay info ifcfg /etc/sysconfig/network-scripts/ifcfg.ww + VARIABLE OPTION TYPE HELP + -------- ------ ---- ---- + $netdev.Device --netdev string Set the device for given network + $netdev.Gateway --gateway IP Set the node's IPv4 network device gateway + $netdev.Hwaddr --hwaddr MAC Set the device's HW address for given network + $netdev.Ipaddr --ipaddr IP IPv4 address in given network + $netdev.Ipaddr6 --ipaddr6 IP IPv6 address in given network + $netdev.MTU --mtu uint Set the mtu + $netdev.Netmask --netmask IP Set the networks netmask + $netdev.OnBoot --onboot wwtype.WWbool Enable/disable network device (true/false) + $netdev.Tags map[string]string + $netdev.Tags.DNSSEARCH string + $netdev.Tags.master string + $netdev.Type --type string Set device type of given network + .NetDevs map[string]*node.NetDev + +Other variables and the overlay itself can also be documented explicitly within a template. + +.. code-block:: text + + {{/* wwdoc: Configures chronyd to synchronize time with a specific time server. */}} + {{/* .Tags.ntp_server: the NTP server to synchonize with */}} + +wwctl image import --update +=========================== + +The ``wwctl image import`` come has included an ``--update`` option since +v4.6.0, but it has not been functional. The option now imports an image +on-top-of an existing image and is meant to be used to update an existing image +with new files from an updated upstream or external image (e.g., by importing a +new version of an image from an OCI registry). + +wwclient +======== + +One of the last real impediments to multi-architecture support in Warewulf has +been the wwclient daemon which, though distributed to cluster nodes, has been +built only for the architecture of the Warewulf server. Now, new +``wwclient.aarch64`` and ``wwclient.x86_64`` overlays provide +architecture-specific builds of wwclient for aarch64 and x86_64 nodes, +respectively. + +wwclient has also been enhanced with IPv6 support, and now properly handles +recently-used addresses when restarting. + +Network management +================== + +A number of network management improvements have been made. Most deal with +improving IPv6 support. The ``debian.interfaces`` overlay has been renamed to +``ifupdown`` to better reflect its support for both Debian, Ubuntu, and Alpine +systems. The ``netplan`` and ``NetworkManager`` overlay have improved support +for bonded interfaces; and a new ``systemd-networkd`` overlay adds support for +the systemd networking daemon. + +Packaging +========= + +The openEuler 24.03 RPM package now uses dnsmasq by default. + +Development +=========== + +Work has resumed on support for using Vagrant to initialize a basic testing / +development environment with libvirt. + +warewulf-dracut +=============== + +A bug between ``warewulf-dracut`` and the ``ignition`` overlay previously caused +non-root filesystems from mounting when provisioning the image to disk. A fix in +``warewulf-dracut`` prevents ignition from running twice, allowing all file +systems to mount properly. The ``wwinit`` dracut module also no longer runs the +wwinit module if root is not set to `root=wwclient*`. + +These fixes require installing the updated ``warewulf-dracut`` package in the +node image. + +Other fixes +=========== + +- Enhanced `wwctl configure tftp` to manage the SELinux context of TFTP directory. #1997 +- Enhanced overlay templates to support absolute paths with `{{ file }}`. #2055 +- Fix ImageDelete API not returning error when checking if image is used by nodes/profiles. #1705 +- Fix filesystem overwrite/force behavior in `mkfs` overlay. #2028 +- Write `$tftpdir/warewulf/grub.cfg` to `tftproot` as configured in `warewulf.conf`. #2055 +- Automatically create a GPT label when `sfdisk` overlay wipes disks. #2025 diff --git a/userdocs/server/bootloaders.rst b/userdocs/server/bootloaders.rst index 558a2bbb..8409ac82 100644 --- a/userdocs/server/bootloaders.rst +++ b/userdocs/server/bootloaders.rst @@ -340,11 +340,11 @@ an initramfs inside the image. .. code-block:: shell # Enterprise Linux - wwctl image exec rockylinux-9 --build=false -- /usr/bin/dnf -y install https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-dracut-4.6.4-1.el9.noarch.rpm + wwctl image exec rockylinux-9 --build=false -- /usr/bin/dnf -y install https://github.com/warewulf/warewulf/releases/download/v4.6.5/warewulf-dracut-4.6.5-1.el9.noarch.rpm wwctl image exec rockylinux-9 -- /usr/bin/dracut --force --no-hostonly --add wwinit --regenerate-all # SUSE - wwctl image exec leap-15 --build=false -- /usr/bin/zypper -y install https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-dracut-4.6.4-1.suse.lp155.noarch.rpm + wwctl image exec leap-15 --build=false -- /usr/bin/zypper -y install https://github.com/warewulf/warewulf/releases/download/v4.6.5/warewulf-dracut-4.6.5-1.suse.lp155.noarch.rpm wwctl image exec leap-15 -- /usr/bin/dracut --force --no-hostonly --add wwinit --regenerate-all .. note:: diff --git a/userdocs/server/installation.rst b/userdocs/server/installation.rst index 8df00c6a..d4bb4d37 100644 --- a/userdocs/server/installation.rst +++ b/userdocs/server/installation.rst @@ -18,14 +18,14 @@ Rocky Linux 9 .. code-block:: console - # dnf install https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-4.6.4-1.el9.x86_64.rpm + # dnf install https://github.com/warewulf/warewulf/releases/download/v4.6.5/warewulf-4.6.5-1.el9.x86_64.rpm openSuse Leap ------------- .. code-block:: console - # zypper install https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-4.6.4-1.suse.lp155.x86_64.rpm + # zypper install https://github.com/warewulf/warewulf/releases/download/v4.6.5/warewulf-4.6.5-1.suse.lp155.x86_64.rpm Container images ================ @@ -97,9 +97,9 @@ appropriate substitutions: .. code-block:: bash - curl -LO https://github.com/warewulf/warewulf/releases/download/v4.6.4/warewulf-4.6.4.tar.gz - tar -xf warewulf-4.6.4.tar.gz - cd warewulf-4.6.4 + curl -LO https://github.com/warewulf/warewulf/releases/download/v4.6.5/warewulf-4.6.5.tar.gz + tar -xf warewulf-4.6.5.tar.gz + cd warewulf-4.6.5 make all && sudo make install Git @@ -118,7 +118,7 @@ from the main site, the GitHub releases page, or from a Git tag. git clone https://github.com/warewulf/warewulf.git cd warewulf - git checkout main # or switch to a tag like 'v4.6.4' + git checkout main # or switch to a tag like 'v4.6.5' make all && sudo make install Runtime Dependencies