50 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
v4.7.0, unreleased
Fixed
- Prevent
assetkeyfrom leaking into wwclient logs. - Remove requisite dependency between ignition disk target and ignition service. #2083
- Return HTTP 409 status when creating an existing overlay
- Allow whitespace to be trimmed for wwdoc comments. #2109
- update go-chi to 5.2.5 to fix CVE-2025-69725
- Prevented profile
commentfield from being inherited by nodes. #2078 - Error handling for /newroot mount during single-stage boot
- Bugfix for command-line arguments during single-stage image unpacking
- Fix path traversal vulnerability (CWE-23) by validating overlay names in
overlay.Get()andoverlay.Create() - Upgrade golang version to 1.25 to resolve stdlib CVEs (CVE-2025-4673, CVE-2025-58187, CVE-2025-61723, CVE-2025-58188, CVE-2025-61725, CVE-2025-61726, CVE-2025-47907, CVE-2025-58189, CVE-2025-47906, CVE-2025-58186, CVE-2025-61727, CVE-2025-61724, CVE-2025-58185, CVE-2025-47912, CVE-2025-61729, CVE-2025-0913, CVE-2025-22873, CVE-2024-45336, CVE-2024-45341, CVE-2025-58183, CVE-2025-68121, CVE-2025-61730)
- Fix path traversal vulnerability (CWE-23) in overlay cleanup function
Dependencies
- Bump golang.org/x/term from 0.28.0 to 0.40.0 #2037
- Bump golang.org/x/sys from 0.29.0 to 0.42.0 #2036
- Bump golang.org/x/crypto from 0.31.0 to 0.48.0
- Bump golang.org/x/net from 0.33.0 to 0.49.0 #1819
- Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.26.1 to 2.28.0 #2032
- Bump google.golang.org/grpc from 1.70.0 to 1.79.2
- Bump google.golang.org/protobuf from 1.36.3 to 1.36.11
- Bump github.com/containers/image/v5 from 5.32.2 to 5.36.2 #1996
- Bump github.com/containers/storage from 1.57.1 to 1.59.1 #1970
- Bump github.com/coreos/ignition/v2 from 2.20.0 to 2.26.0
- Bump github.com/coreos/go-systemd/v22 from 22.5.0 to 22.7.0
- Bump github.com/spf13/cobra from 1.9.1 to 1.10.2
- Bump github.com/stretchr/testify from 1.10.0 to 1.11.1
- Bump github.com/swaggest/openapi-go from 0.2.55 to 0.2.60
- Bump github.com/swaggest/rest from 0.2.73 to 0.2.75
- Bump github.com/swaggest/swgui from 1.8.2 to 1.8.5
- Bump github.com/hashicorp/go-version from 1.7.0 to 1.8.0
- Bump github.com/opencontainers/umoci from 0.4.7 to 0.6.0
- Migrate github.com/talos-systems/go-smbios to github.com/siderolabs/go-smbios v0.3.3 (module renamed)
Added
-
Document reclaiming RAM by moving the image to swap
-
New
--partwipeflag for profile and node set -
Updated arguments for
ValidStringto matchregexp.MatchString -
New
migoverlay to configure NVIDIA MIG devices. #2102 -
Documented that booting a node twice fixes broken partition tables
-
Updated arguments for
ValidStringto matchregexp.MatchString -
New
migoverlay to configure NVIDIA MIG devices. #2102 -
TLS with the command
wwctl configure tlsfor key management. Keys can be created automtically or imported. The runtime overlay is if TLS is enabled is not distributed over plain http. -
Documented that booting a node twice fixes broken partition tables
-
TLS support for
warewulfdand REST API -
New
wwctl configure tlscommand to generate and configure TLS keys and certificates -
New dedicated
warewulfdserver routes (/ipxe/,/kernel/,/image/,/initramfs/,/system/,/runtime/,/grub/,/efiboot/)
Changed
- Runtime overlay download failure during dracut/wwinit boot is now non-fatal;
the node continues to boot and
wwclientretries the download at runtime. hostsoverlay added to the default system overlay list
Changed
- Updated
MAINTAINING.mdto document golang version policy
v4.6.5, 2026-01-12
Added
- New
wwclient.aarch64overlay provides an aarch64 wwclient executable. #2068 - New
wwclient.x86_64overlay provides an x86_64 wwclient executable. #2068 - New
wwctl overlay infocommand lists variables used by an overlay template. #2060 - New Vagrant/Libvirt basic test/dev environment. #2081, #2003
- New
bit-rateIPMI tag. #2045 - New
prefixlen6parameter inwarewulf.conf. #2068 - New
cloned-mac-addressnetwork device tag forNetworkManageroverlay. #2017 - New
range6 startandrange6 endinwarewulf.conf:dhcp. #2068 - New
Gateway6network device field. #2068 - New
systemd-networkdoverlay. #2068
Changed
- Renamed
debian.interfacesoverlay toifupdown. #2011 - Changed the openEuler 24.03 RPM package to use dnsmasq. #2030
- Enhanced
wwctl configure tftpto manage the SELinux context of TFTP directory. #1997 - Enhanced overlay templates to support absolute paths with
{{ file }}. #2055 - Refactored
wwclientto use opencontainers/selinux to manage SELinux. #2042 - Renamed network device
ip6addrtoipaddr6. #2068 - Limited Warewulf server dnsmasq to the Warewulf server interface. #2068
- Refactored
ignitionoverlay systemd templates for clarity. #2077 - Enhanced
hostsoverlay with IPv6 support. #2068 - Enhanced dnsmasq and
/etc/hostsserver configuration with IPv6 support. #2068 - Enhanced
wwclientwith IPv6 support. #2068
Removed
- Remove unused Netdev
Prefixfield. #2068 - Remove unused
IPv6netfrom host configuration. #2068
Fixed
- Fix "address already in use" in
wwclientwhensecure: true. #2009 - Fix
netplanoverlay 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
mkfsoverlay. #2028 - Prevent ignition from running twice in a provision-to-disk configuration. #1981
- Remove
%eliffromwarewulf.spec.into resolve a build break for openSUSE 15.x. #2082 - Fixed IPv6 support in
NetworkManageroverlay. #2068 - Write
$tftpdir/warewulf/grub.cfgtotftprootas configured inwarewulf.conf. #2055 - Automatically create a GPT label when
sfdiskoverlay wipes disks. #2025 - Fix configuration of MTU on bonds with
NetworkManager. #2059
Dependencies
- 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
Added
- Initial support for EL10 using
dnsmasqin place ofdhcpd-server. #1974 make rpmfor local development rpm builds. #1974wwclient --onceprompts wwclient to run once. #1226- Added
wwctl configure warewulfd
Changed
make distnow usesmktempinstead of.dist. #1974- Fixed dnsmasq template file to use basename for ipxe files. #1974
- Refactored overlay class. #1968
wwclientplaces files from the runtime overlay atomically. #1307, #1975wwclientskips files that do not appear to have been modified. #1984wwctl overlay editagain writes temporary files to the default location. (After #1886 better resolves the underlying issue from #1473.) #1946- Prevent brp-mangle-shebangs from changing files in overlays.
- The NetworkManager overlay now only adds an
[ethernet]section for ethernet interfaces. - The NetworkManager overlay now sets
ipv4:method=disabledif no address or route is specified. #1986
Fixed
- Fixed a bug in
wwclientwhich prevented proper cleanup of ephemeral files. - Fixed
wwclient --debugto properly enable debug logging. - Updated golang BuildRequires in RPM specfile. #1990
- Fixed handling of
wwctlboolean options for disk related settings. - Set
SLAVE=yesin ifcfg files whenMASTERis set. #1980
v4.6.3, 2025-08-01
Added
- Added system and runtime overlay built time to REST API.
- Support If-None-Match header in
PUT /api/nodes/{id} - Added
PUT|DELETE /api/overlays/{name}/file?path={path} - Added troubleshooting documentation regarding NUMA and tmpfs
- Added support for IPv6 when booting with iPXE. #1852
Changed
- Restore default idempotency of
PUT /api/nodes/{id} DELETE /api/overlays/{name}?force=truecan delete overlays that are in usewarewulfdoverlay autobuild rebuilds overlays after node discovery. #1468- Improved netplan support. #1873
Fixed
- Fixed a bug when cloning an overlay to site when parent is missing
- Fixed
wwctl upgrade nodesto properly handle kernel argument lists. #1938 - Fixed a panic during
wwctl overlay editdue to missingreexec.Init(). #1879 - Fixed handling of comma-separated mount options in
fstabandignitionoverlays. #1950 - Fixed a race condition in
wwctl overlay edit. #1947 - Fixed a syntax error in the RPM specfile.
v4.6.2, 2025-07-09
Added
- Added userdocs for
wwctl node importfrom yaml/csv. - Added uid, gid, and permissions to OverlayFile in REST API. #1925
- (preview) Support provisioning to local storage with
wwctl <node|partition> set --root=/path/to/disk. #1894 - (preview) Support disk provisioning during dracut boot stage with Ignition, sfdisk, mkfs, and mkswap. #1894
- Support creating multiple symlinks from a single overlay template. #1894
- Added systemd.mount and systemd.swap overlays. #1894
- Support configuring Ignition with resources. #1894
- Added
wwctl <node|partition> set --parttype. #1894 - Added additional documentation for network tags. #1856
- Added node pattern description to commands that use it. #1936
Fixed
- Updated 70-persistent-net.rules.ww to use
(lower $netdev.Type)for case-insensitive comparison of "infiniband". - Fixed a regression in SELinux support by restoring the
/runmount during wwinit. #1910 - Fixed
wwctl profile setfor disks, partitions and file systems. #1883 - Do not let API add a node that exists
- Fixed sleep/rebooting on error during GRUB boot. #1894
- Fixed IPMI VLAN configuration. #1892
- Fixed
wwctl image shell --helpto fit properly within 80 columns. - Preserve existing permissions during
wwctl overlay edit. #1886 - Configure NetworkManager to wait for interfaces to come online before provisioning with Dracut.
Changed
- Added
-lflag towwctl image listwithin the sos plugin for better reporting. #1855 - Moved
wwclientbinary to thewwclientoverlay. - Minor updates to
wwclientlog messages
Removed
- Removed the gRPC API servers and client. #1876
- Removed
wwctl node import --csv. #1862
v4.6.1, 2025-04-04
Added
- Added
wwctl overlay import --overwriteto overwrite existing overlay file. - wwclient uses
WW_IPADDR, if set, to contact the Warewulf server. #1788 - Add
wwctl node import --yesto assume yes to confirmations. - Set an IPMI tag
vlanto configure the vlan duringipmiwrite. #1031 - Added net.ifnames=1 to default kernel argument list. #1820
- Add a new OpenAPI v3 REST API to warewulfd at /api. #1588
- New sos plugin in
warewulf-sossubpackage. #1822 - Add
--retry-connrefusedto dracut curl commands. #1800
Fixed
- Fixed panic in warewulfd if node netdev is only defined in a profile. #1817
- Replaced unreadable >= character external sphinx module for pdf doc build.
- Handle missing ipmi fields during bmc commands. #1768
- Properly configure a default IPMI template during
wwctl upgrade nodes --add-defaults. - Fixed display of dotted field names. #1825
- Add single quote around escapechar in ipmitool template #1830
- Update nodes and profiles when renaming an image. #1637
- If init is not specified, wwinit looks for /sbin/init, /etc/init, and /bin/init. #1808
- assume ipxe template=default if not set. #1808, #1813
- Display a warning during overlay build if an overlay list is empty. #1808
- Fix processing of UNDEF and UNSET during
wwctl <node|profile> set. #1837 - Actually cause grub to sleep and reboot when log messages indiacte. #1838
- Fixed issue with importing new nodes from yaml. #1842
wwctl upgrade nodes --replace-overlaysavoids applying overlays multiple times. #1823- Fix a panic during
wwctl node list --ipmifor nodes with no ipmi configuration. #1847 - Allow
--verboseand--debugto set log level for warewulfd. #1801
Changed
- Update GitHub actions to build aarch64 artifacts.
- Explicitly enforce the number or arguments accepted by some
wwctlsubcommands. #1717 - Renamed
wwctl node import --cvsto--csv. - Update JSON output to match YAML field names. #1588
- Update JSON output to omit empty values. #1588
Removed
- Removed "Auto generated by" tag from generated docs.
Dependencies
- Bump github.com/spf13/cobra from 1.8.1 to 1.9.1 #1795
- Bump github.com/creasty/defaults from 1.7.0 to 1.8.0 #1794
v4.6.0, 2025-03-02
Added
- Support Ubuntu-style dracut initrd images.
Fixed
- Fix nightly builds.
- Better handling for missing NetDev.Device. #1777
- Remove dracut NetworkManager connections between boot phases. #1780
Changed
- Match default kernel arguments from
wwctl upgrade nodeswith the distributednodes.conf. - Use
wwctl overlay <import|build> --workers=0to indicateruntime.NumCPU(). #1782
Dependencies
- Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.23.0 to 2.26.1 #1724
- Bump google.golang.org/protobuf from 1.35.1 to 1.36.5 #1712
- Bump github.com/containers/storage from 1.55.2 to 1.57.1 #1676
- Bump google.golang.org/grpc from 1.67.1 to 1.70.0 #1650
- Bump golang.org/x/crypto from 0.28.0 to 0.31.0 #1772
- Bump golang.org/x/net from 0.30.0 to 0.33.0 #1774
- Bump github.com/go-jose/go-jose/v4 from 4.0.2 to 4.0.5 #1773
- Bump github.com/golang/glog from 1.2.3 to 1.2.4 #1771
v4.6.0rc3, 2025-02-23
Added
- Added missing hostlist support for
wwctl nodeandwwctl overlay build. #1635 - Added support for comma-separated hostlist patterns. #1635
- Added default value for
warewulf.conf:dhcp.template. #1725 - Added
UniqueFieldtemplate function. #829 - Added
wwctl image build --syncuser. #1321 - Added support for a DNSSEARCH netdev tag in network configuration overlays. #1256
- Added
WW_HISTFILEto control shell history location duringwwctl image shell. #1732 - Added target help in Makefile. #1740
- Added fstab mounts for
/homeand/optto initial default profile. #1744 - Add support for an
IPXEMenuEntrytag to select the boot method during iPXE.
Changed
- Hide internal
wwctl completionandwwctl genconfigcommands. #1716 - Make .ww suffix optional during
wwctl overlay show --render. #649 - DHCP template generates as much of the subnet and range definition as possible. #1469
- Updated overlay flags to
wwctl <node|profile> <add|set> [--runtime-overlays|--system-overlays]. #1495 - syncuser overlay reads host passwd and group database from sysconfdir. #1736
- syncuser overlay skips duplicate users and groups in passwd and group databases. #829
wwctl image syncuser --writeis true by default. #1736- Update syncuser documentation. #1736
- Update PS1 during
wwctl image shellto include working directory by default, and to includePS1from the environment if present. #1245 - DHCP template generates as much of the subnet and range definition as possible. #1469
- Updated overlay flags to
wwctl <node|profile> <add|set> [--runtime-overlays|--system-overlays]. #1495 - Added logging and updated output during iPXE and GRUB. #1156
- Defined a menu for iPXE. #1156
- Added logging to wwinit scripts. #1156
- Renamed /warewulf/wwinit to /warewulf/prescripts. #1156
- Display auto-detected kernel version during iPXE and GRUB. #1742
- Reduced default verbosity of
wwctl overlay build. - Reorganized and updated userdocs. #1116, #1324
Fixed
- Fixed detection of overlay files in
wwctl overlay list --long. - Fixed panics in
wwctl node sensorsandwwctl node consolewhen ipmi not configured. - Fixed completions for
wwctlcommands. - Return "" when NetDev.IpCIDR is empty.
- Updated
wwctl node exportto include node IDs. #1718 - Don't add "default" profile to new nodes if it does not exist. #1721
- Make DHCP range optional.
- Don't use DHCP for interfaces attached to a bond. #1743
- Wait until ignition has completed before trying to mount.
- Fix timeout problem for wwclient. #1741
- Fixed default "true" state of NetDev.OnBoot. #1754
- Port NFS mounts during
wwctl upgrade nodesbefore applying defaults. #1758
Removed
- Removed partial support for regex searches in node and profile lists. #1635
- Remove redundant
wwctl genconfig completionscommand. #1716 - Remove syncuser warning messages in
wwctlthat assume its use. #1321 - Remove syncuser from the list of default runtime overlays. #1322
- Removed check for "discoverable" profiles during
wwctl upgrade nodes. - Removed
dracut.ipxetemplate. (Usedefault.ipxeand set tagIPXEMenuEntry=dracut.)
v4.6.0rc2, 2025-02-07
Added
- Document defining kernel args that include commas. #1679
- Recommend installing ipmitool with Warewulf package. #970
- Add completion for profile list. #1695
- Add OPTIONS argument for
warewulfd.service. #1707 - Document
warewulf.conf:dhcp.template. #1701 - New template field
IpCIDR. #1700 wwctl configurepersists auto-detected server network settings towarewulf.conf. #1700- Run staticcheck as part of GitHub CI. #1657
Changed
wwctl node list <--yaml|--json>outputs a map keyed by node name. #1667- Don't mount /run during wwinit. #1566
- Simpler permissions in official RPM packages. #1696
- Only calculate image chroot size when requested. #1504
- Create temporary files in overlay directory during
wwctl overlay edit. #1473 - Re-order SSH key types to make ed25519 default. #981
- Don't assume default values for
warewulf.confnetwork settings. #1700 - Omit DHCP pool from
dhcpd.confif any required fields are missing. #1700 warewulf.conf:ipaddr6is no longer required to be a/64or smaller. #1700
Fixed
- Fix default nodes.conf to use the new kernel command line list format. #1670
- Fix
make installwhensudodoes not set$PWD. #1660 - Use sh to parse and exec IPMI command. #1663
- Use configured warewulf.conf path in
wwctl upgrade. #1658 - Fixed negation for slice field elements during profile/node merge. #1677
- Show each overlay only once, even when both site and distribution versions exist. #1675
- Remove a redundant "Building image" log message after image exec. #1694
- Don't populate NetDevs[].Type or NetDevs[].Netmask during upgrade. #1661
- Prefer parent profile values over child profile values. #1672
- Don't attempt to back-up an output file that doesn't exist during upgrade. #1671
- Specify init=/init when booting with Grub+dracut. #1573
- Fix a warewulfd panic when no kernel fields are specified. #1689
- Create site overlay directory. #1690
- Urlencode asset keys during dracut boot. #1610
- Set execute permissions for intermediate directories during
wwctl overlay import --parents. #1655 - Fix log output formatting during overlay build.
- Prevent merging of zero-value net.IP fields. #1710
Removed
- Remove
warewulf.conf:syslog. #1606 - Properly handle parsing of server network and netmask from CIDR
warewulf.conf:ipaddr. #1541, #1594 - Populate template field
NetworkCIDR. #1700
Dependencies
- Bump github.com/coreos/ignition/v2 from 2.19.0 to 2.20.0. #1583
v4.6.0rc1, 2025-01-29
Added
- Added Netplan NIC support for Debian/Ubuntu #1463
- Added documentation on ensuring
systemctl restart warewulfdis ran when editingnodes.conforwarewulf.conf - Add the ability to boot nodes with
wwid=[interface], which replacesinterfacewith the interface MAC address - Added https://github.com/Masterminds/sprig functions to templates #1030
- Add multiple output formats (yaml & json) support. #447
- More aliases for many wwctl commands
- Add support to render template using
hostor$(uname -n)as the value ofoverlay show --render. #623 - Added command line parameters for credentials of a container registry
- Add flag
--buildtowwctl container copy. #1378 - Add
wwctl cleanto remove OCI cache and overlays from deleted nodes - Add
wwctl container import --platform. #1381 - Read environment variables from
/etc/default/warewulfd#725 - Add support for VLANs to NetworkManager, wicked, ifcfg, debian.interfaces overlays. #1257
- Add support for static routes to NetworkManager, wicked, ifcfg, debian.interfaces overlays. #1257
- Add
wwctl upgrade <config|nodes>. #230, #517 - Better handling of InfiniBand udev net naming. #1227
- use templating mechanism for power commands. #1004
- Document "known issues."
- Add
wwctl <node|profile> <add|set> --kernelversionto specify the desired kernel version or path. #1556 - Add
wwctl container kernelsto list discovered kernels from containers. #1556 - Add possibility to define a softlink target with an overlay template
- Support defining a symlink with an overlay template. #1303
- New "localtime" overlay to define the system time zone. #1303
- Add support for nested profiles. #1572, #1598
- Adds
wwctl container <exec|shell> --build=falseto prevent automatically (re)building the container. #1490, #1489 - Added resources as generic, arbitrary YAML data for nodes and profiles. #1568
- New
fstabresource configures mounts in fstab overlay, including NFS mounts. #515 - Add Dev Container support #1653
- Add man pages and command reference to userdocs. #1488
- Document building images from scratch with Apptainer. #1485
- Added warewulfd:/overlay-file/{overlay}/{path...}?render={id}
Changed
- Renamed "container" to "image" throughout wwctl and overlay templates. #1385
- Locally defined
trhas been dropped, templates updated to use Sprig replace. - Bump github.com/opencontainers/image-spec to 1.1.0
- Bump google.golang.org/grpc 1.62.1
- Bump google.golang.org/protobuf to 1.33.0
- Bump github.com/containers/image/v5 to 5.30.0
- Bump github.com/docker/docker to 25.0.5+incompatible
- Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.0 to 2.19.1 #1165
- Bump github.com/spf13/cobra from 1.7.0 to 1.8.0 #1166
- Bump github.com/fatih/color from 1.15.0 to 1.17.0 #1224
- Bump github.com/coreos/ignition/v2 from 2.15.0 to 2.19.0 #1239
- Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 #1481
- Bump google.golang.org/protobuf from 1.34.1 to 1.35.1 #1480
- Bump golang.org/x/term from 0.20.0 to 0.25.0 #1476
- Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.19.1 to 2.23.0 #1513
- Bump github.com/containers/image/v5 from 5.30.1 to 5.32.2 #1366
- Bump github.com/fatih/color from 1.17.0 to 1.18.0 #1523
- Disable building containers by default when calling
wwctl container copy. #1378 - Split wwinit and generic overlays into discrete functionality. #987
- Updated IgnitionJson to sort filesystems. #1433
wwctl node setrequires mandatory pattern input. #502- Remove NodeInfo (in-memory-only) data structure, consolidating onto NodeConf. #916
- Replace
defaults.confwith settings on the default profile. #917 - Switched from yaml.v2 to yaml.v3 #1462
- Make OCIBlobCache a separate path and point it to
/var/cache#1459 - Updated various shell scripts for POSIX compatibility. #1464
- Update
wwctl serverto always run in the foreground #508 - Update
wwctl serverto log to stdout rather than a file #503 - Changed
wwctl serverto use "INFO" for send and receive logs #725 - Remove a 3-second sleep during iPXE boot. #1500
- Don't package the API in RPM packages by default. #1493
- Update default
warewulfdport to match shipped configuration. #1448 - Replace
olekukonko/tablewriterwithcheynewallace/tabby. #1497, #1498 - replaced deprecated errors.Wrapf with fmr.Errorf. #1534
- Rename udev net naming file to 70-persistent-net.rules. #1227
- Manage warewulfd template data as a pointer. #1548
- Added test for sending grub.cfg.ww. #1548
- Use a sentinel file to determine container readonly state. #1447
- Bump github.com/Masterminds/sprig/v3 from 3.2.3 to 3.3.0 #1553
- Bump github.com/golang/glog from 1.2.0 to 1.2.3 #1527
- Bump github.com/opencontainers/runc from 1.1.12 to 1.1.14
- Repurpose Kernel.Override to specify the path to the desired kernel within the container. #1556
- Merge Kernel.Override into Kernel.Version to specify the desired kernel version or path. #1556
- Provide detected kernel version to overlay templates. #1556
- Bump github.com/containers/storage from 1.53.0 to 1.55.2 #1316, #892
- Process nodes.conf path dynamically from config. #1595, #1596, #1569
- Split overlays into distribution and site overlays. #831
- Added note to booting userdoc for removing machine-id. #1609
- Log cpio errors more prominently. #1615
- Improved syncuser conflict help text. #1614
- Parallelized overlay build. #1018
- Parallelized and optimized overlay build. #1018
- Added note about dnsmasq interface options in Rocky 9.
- Added retries to curl in wwinit dracut module. #1631
- Added ip= argument to dracut ipxe script. #1630
- Updated network interface bonding configuration and documentation. #1482, #1280
- Refactor Kernel arguments as a slice (list) rather than a single string. #1656
Removed
wwctl node list --fullallhas been removedwwctl profile list --fullallhas been removed- Remove
wwctl server <start,stop,status,restart,reload>#508 - Remove
wwctl overlay build --host#1419 - Remove
wwctl overlay build --nodes#1419 - Remove
wwctl kernel#1556 - Remove
wwctl <node|profile> <add|set> --kerneloverride#1556 - Remove
wwctl container <build|import> --setdefault#1335 - Remove NFS mount options from warewulf.conf. #515
Fixed
- Update links on contributing page to point to warewulf repo.
- Prevent NetworkManager from trying to obtain IP address via DHCP on unused/unmanaged network interfaces.
- Systems with no SMBIOS (Raspberry Pi) will create a UUID from
/sys/firmware/devicetree/base/serial-number - Replace slice in templates with sprig substr. #1139
- Fix an invalid format issue for the GitHub nightly build action. #1258
- Return non-zero exit code on overlay build failure #1393
- Return non-zero exit code on container copy failure #1377
- Return non-zero exit code on container sub-commands #1414
- Fix excessive line spacing issue when listing nodes. #1241
- Return non-zero exit code on node sub-commands #1421
- Fix panic when getting a long container list before building the container. #1391
- Return non-zero exit code on power sub-commands #1439
- Fix issue that pattern matching broken on
node set#964 - Fix issue that domain globs not supported during wwctl node delete. #1449
- Fix overlay permissions in /root/ and /root/.ssh/. #1452
- Return non-zero exit code on container sub-commands #1437
- Return non-zero exit code on profile sub-commands #1435
- Fix issue that NetworkManager marks managed interfaces "unmanaged" if they do not have a device specified. #1154
- Return non-zero exit code on overlay sub-commands #1423
- Simplify passing of arguments to commands through
wwctl container exec. #253 - Don't update IPMI if password isn't set. #638
- Fix issue that
--nettagdeldoes not work properly. #1503 - Fix test for dhcp static configuration #1536 #1537
- Fix issue that initrd fails at downloading runtime overlay with permission denied error, when warewulf secure option in warewulf.conf is enabled. #806
- Allow iPXE to continue booting without runtime overlay. #806
- Format errors in logs as strings. #1563
- Fix display of profiles during node list. #1496
- Fix internal DelProfile function to correctly operate on profiles rather than nodes. #1622
- Fix parsing of bool command line variables #1627
- Fix newline handling in /etc/issue. #1648
v4.5.8, 2024-10-01
Added
- Added
--syncuserflag towwctl container shell. #1358 - Added a troubleshooting guide. #1234
- Added documentation about
rootfstype=ramfsfor SELinux support. #1001 - Added workaround documentation for importing containers with sockets. #892
- Added documentation for building iPXE locally. #1114
- Documented that ignition is not available for Rocky Linux 8. #1373, #1272
- Additional help text when container
RunDiralready exists. #1389
Changed
- Interleave tmpfs across all available NUMA nodes. #1347, #1348
- Syncuser watches for changes in mtime rather than ctime. #1358
- Change the default permissions for provisioned overlay images to
0750(dirs) and0660(files). #1388
Fixed
- Return an error during
wwctl container importif the archive filename includes a colon. #1371 - Correctly extract smbios asset key during GRUB boot. #1291
- Refactor of
wwinit/initto more properly address rootfs options. #1098 - Fix autodetected kernel sorting and filtering. #1332
- Avoid a panic during container import. #1244
- Make sure that tftp files have unmasked permissions at creation time. #674
- Fix "onboot" behavior for NetworkManager, Debian networking, and Suse wicked. #1278
- Clarified missing steps in Enterprise Linux quickstart. #1179
- Fix dhcpd.conf static template to include next-server and dhcp-range #1536
- Fix panic when adding tag with existing netdev #1546
v4.5.7, 2024-09-11
Added
- Added option for wwclient port number. #1349
- Additional helper directions during syncuser conflict. #1359
- Add
:copysuffix towwctl container exec --bindto temporarily copy files into the node image. #1365
Changed
- Added a link to an example SELinux-enabled node image in documentation. #1305
- Refine error handling for
wwctl configure. #1273 - Updated dracut guidance for building initramfs. #1369
Fixed
- Fixed application of node overlays such that they override overlapping files from profile overlays. #1259
- Prevent overlays from being improperly used as format strings during
wwctl overlay show --render. #1363 - Fix dracut booting with secure mode. #1261
v4.5.6, 2024-08-05
Added
- Show more information during
wwctl container <shell|exec>about when and if the container image will be rebuilt. #1302 - Command-line completion for
wwctl overlay <edit|delete|chmod|chown>. #1298 - Display an error during boot if no container is defined. #1295
wwctl conatiner list --kernelshows the kernel detected for each container. #1283wwctl container list --sizeshows the uncompressed size of each container.--compressedshows the compressed size, and--chrootshows the size of the container source on the server. #954, #1117- Add a logrotate config for
warewulfd.log. #1311
Changed
- Refactor URL handling in wwclient to consistently escape arguments.
Fixed
- Ensure autobuilt overlays include contextual overlay contents. #1296
- Fix the failure when updating overlay files existing on different partitions. #1312
- Escape asset tag for
wwclientquery strings when pulling runtime overlays. #1310
Changed
wwctl container listonly lists names by default. (--longshows all attributes.) #1117
v4.5.5, 2024-07-05
Fixed
- Support leading and trailing slashes in
/etc/warewulf/excludes. #1266 - Fix a regression in overlay autobuild. #1216
- Fix wwclient not reading asset-tag. #1110
- Fix dhcp not passing asset tag or uuid to iPXE. #1110
- Restored previous static dhcp behavior. #1263
- Capture "broken" symlinks during container build. #1267
- Fix the issue that removing lines during wwctl overlay edit didn't work. #1235
- Fix the issue that new files created with wwctl overlay edit have 755 permissions. #1236
- Fix tab-completion for
wwctl overlay list. #1260
Changed
- Explicitly ignore compat-style NIS lines in passwd/group during syncuser. #1286
- Accept
+within kernel version. #1268 - Mount
/sysand/runduringwwctl container exec. #1287
v4.5.4, 2024-06-12
Fixed
- Fix a regression that caused an error when passing flags to
wwctl container execandwwctl container shell. #1250
v4.5.3, 2024-06-07
Added
- Add examples for building overlays in parallel to documentation
- Add
stage=initramfsto warewulfd provision to serve initramfs from container image. #1115 - Add
warewulf-dracutpackage to support building Warewulf-compatible initramfs images with dracut. #1115 - Add iPXE template
dracut.ipxeto boot a dracut initramfs. #1115 - Add dracut menuentry to
grub.cfg.wwto boot a dracut initramfs. #1115 - Add
.NetDevsvariable to iPXE and GRUB templates, similar to overlay templates. #1115 - Add
.Tagsvariable to iPXE and GRUB templates, similar to overlay templates. #1115
Changed
- Replace reference to docusaurus with Sphinx
wwctl container importnow only runs syncuser if explicitly requested. #1212- wwinit now configures NetworkManager to not retain configurations from dracut. #1115
- Improved detection of SELinux capable root fs #1093
Fixed
- Block unprivileged requests for arbitrary overlays in secure mode. #1215
- Fix installation docs to use github.com/warewulf instead of github.com/hpcng. #1219
- Fix the issue that warewulf.conf parse does not support CIDR format. #1130
- Reduce the number of times syncuser walks the container file system. #1209
- Create ssh key also when calling
wwctl configure --all#1250 - Remove the temporary overlayfs dir and create them besides rootfs #1180
Security
- Bump golang.org/x/net from 0.22.0 to 0.23.0. #1223
v4.5.2, 2024-05-13
Added
- Allow specification of the ssh-keys to be to be created. #1185
Changed
- The command
wwctl container execlocks now this container during execution. #830
Fixed
- Fix nightly release build failure issue. #1195
- Reorder dnsmasq config to put iPXE last. #1146
- Update a reference to
--addprofileto be--profile. #1085 - Update a dependency to address CVE-2024-3727. #1221
v4.5.1, 2024-04-30
Added
- Document warewulf.conf:paths. #635
- New "Overlay" template variable contains the name of the overlay being built. #1052
- Documented HTTP proxy environment variables for
wwctl container import. #1214
Changed
- Update the glossary. #819
- Upgrade the golang version to 1.20.
- Bump github.com/opencontainers/umoci to 0.4.7
- Bump github.com/containers/image/v5 to 5.30.0
- Bump github.com/docker/docker to 25.0.5+incompatible
- Bump github.com/go-jose/go-jose/v3 to 3.0.3
- Bump gopkg.in/go-jose/go-jose.v2 to 2.6.3
- Bump github.com/opencontainers/runc to 1.1.12
- Dynamically calculate version and release from Git. #1162
- Update quickstarts to configure firewalld for dhcp. #1133
- Omit building the API on EL7. #1171
- Syncuser only walks the file system if it is going to write. #1207
Fixed
- Fix
wwctl profile list -aformat when kernerargs are set. - Don't attempt to rebuild protocol buffers in offline mode. #1155
- Fix Suse package by moving yq command to
%installsection. #1169 - Fix a rendering bug in the documentation for GRUB boot support. #1132
- Fix a locking issue with concurrent read/writes for node status. #1174
- Fix shim and grub detection for aarch64. #1145
- wwctl [profile|node] list -a handles now slices correclty. #1113
- Fix parsing of /etc/group during syncuser. #1202
4.5.0, 2024-02-08
Official v4.5.0 release.
Added
- Publish v4.5.x documentation separately from
main. #919 - Update quickstart for Enterprise Linux. #394, #401, #977
Fixed
- Fix
Requires: ipxe-bootimgsfor building an Enterprise Linux 7 RPM. #1126
4.5.0rc2, 2024-02-21
Fixed
- Fix mounting local partitions into sub-directories with Ignition. #1073
- Fix a panic in
wwctl node setwhen modifying a network device that is only defined in a profile. #1094
4.5.0rc1, 2024-02-08
Added
- Start building packages for Rocky Linux 9. #951
- Start building nightly GitHub releases. #969
- Support building on Fedora. #988
- New command
wwctl container copyto duplicate a container image. #130 - New command
wwctl container renameto rename a container image. #583 - New command
wwctl genconfgenerates shell completions, initial configuration files, and documentation. #721 - New flag
wwctl container syncuser --buildautomatically (re)builds a container image after syncuser. #509 - New flag
wwctl overlay import --parentsautomatically creates intermediate parent directories. #481, #608 - New flag
wwctl <node|profile> list --fullallshows all attributes, including those which do not have a set value. #786 - New option
wwctl <node|profile> set --ipmiescapecharchanges theipmitoolescape character. #999 - New option
wwclient --warewulfconfspecifies the location ofwarewulf.conf. - New configuration option
warewulf.conf:pathsto override compiled-in paths. #721, #960, #1037 - Support configuring full paths to iPXE binaries in
warewulf.conf:tftp:ipxe. #784 - Use
DNSnetwork tags to configure DNS resolution in network configuration overlays. #922 - Support a command-separated list of nodes or profiles in
wwctl <node|profile> list. #739 - Support specifying
warewulf.conf:ipaddrin CIDR format, optionally inferring netmask and network. #1016 - Support bonded network interfaces with NetworkManager using new network device types
bondandbond-slave. #1071 - Support tab completion for overlay files in
wwctl overlay. #813 - New
localdisk.ipxescript to boot from local disk. #1058 - New example template to create genders database for use with clush, pdsh, and others. #825
- Document the "hostlist" syntax used by
wwctl. #611 - Document using Vagrant as a development environment. #855
- Document quickstart for Enterprise Linux 9. #849
- Document configuring nodes with multiple networks. #1043
- (preview) Added support for initializing file systems, partitions and disks with Ignition. #786
- (preview) Added support for dnsmasq as a tftp and dhcp provider. #727, #1041
- (preview) Support booting nodes with GNU GRUB as an alternative to iPXE. #859
Fixed
- Fix configuration of network device MTU in network configuration overlays. #807
- Separate provisioned overlays from overlay sources. #972
- Display the correct header for
wwctl overlay list --all --long. #485 - Prevent column overflow in
wwctl <subcommand> listwith dynamic tabular output. #690 - Support relative path to a container image archive in
wwctl container import. #493 - Correctly configure
ONBOOTinwwinit:etc/sysconfig/network-scripts/ifcfg.ww. #644 - Fix multiple bugs in
wwctl node edit. #691, #902, #1024 - Fix formatting of kernel arguments in
wwctl <node|profile> list. #828 - Fix the ability to build the Warewulf API with
make. #854 - Fix the ability to set MTU with
wwctl. #947 - Fix multiple bugs in the handling of node and profile tags. #884, #967
- Fix an error when using
wwctl container import --forceto replace an existing container. #474 - Fix configuration of network device names. #926
- Fix a bug that prevented
wwclientfrom starting on systemd hosts. #1066 - Set default ownership of built-in overlay files to
root:root. #1078 - Fix a SIGSEGV error when building Warewulf on a host without network access. #907
- Use
sysrq-triggerto reboot during wwinit, asrebootmay require systemd, which is not yet running. #871 - Only write IPMI configuration if
ipmiwriteis explicitly set to true. #823 - Don't show an error during
wwctl container listif images are missing. #933 - Fix a bug preventing containers with symlinked
/bin/shfrom being imported. #797 - Fix a bug that caused syncuser to panic if
/etc/passwdwas malformed. #527 - Fix inclusion of kernel modules for imported kernels. #836
- Fix a bug that caused
wwctl overlay showto write to stderr. #1000 - Correct "shebang" lines in
wwinit:warewulf/init.dscripts. #821
Changed
- Rebase OpenSUSE Leap build to 15.5. #951
- Update default
Makefileprovision directory to match RPM specfile. #972 - Replace deprecated
io.utilsfunctions with newosfunctions. #883 - Sort node and profiles by name in
wwctl <node|profile> list. #816 - Use the mountpoint file system for
wwctl execbind mounts. #897 - Reduce a warning message during
overlay buildfromWarntoDebug. #1025 - Use the primary interface hostname and the Warewulf server FQDN as the canonical name in
/etc/hosts. #693 - Refactor
wwctl profile addto behave more likewwctl node add. #658 #659 - Write
wwctlerror messages to stderr rather than stdout. #758 wwctlnow validates IP and MAC address format.- Refactor
Makefilefor clarity and reliability. #890 - Move primary network interface definition to
PrimaryNetDevon the node. #682 wwctl <node|profile> list --allnow only shows attributes that have a set value. #786- Name system and runtime overlay images as
__SYSTEM__and__RUNTIME__by default. #852, #876, #896 - Always prefer a node's primary network interface during node discovery. #775
- Stop bundling iPXE with Warewulf and use iPXE from the host distribution. #784
- Update and simplify the iPXE build script, now at
scripts/build-ipxe.sh. #1026 - Merge overlays from multiple profiles on a single node, and exclude overlays with a
~prefix. #885 - Move
hostlistpackage intointernaldirectory alongside other Warewulf packages. #804 - Move built-in overlay files to a transparent
rootfsdirectory. #1086 - Update quickstart guides. #847, #848
4.4.1, 2023-05-07-05
Fixed
- Properly update container file GIDs during syncuser. #840
- Add a missing
.wwextension to the70-ww4-netname.rulestemplate in the wwinit overlay. #724 - Restrict access to
/warewulf/configto root only. #728
4.4.0, 2023-01-18
Added
- New Docker container node image for CentOS 7. #621
Fixed
- Replaced an invalid variable name in a NetworkManager overlay template. #626
- The 'nodes' alias now correctly refers to 'node' rather than 'profile'.
- Fixed a typo in a log message. #631
- Boolean attributes now correctly account for profile and default values. #630
- Kernel version is shown correctly for symlink'd kernels #640
- Changing a profile always adds an empty default interface. #661
4.4.0rc3, 2022-12-23
Added
- New
defaults.confman page. #593 - A new debug overlay includes a template which demonstrates accessing all available variables. #599
- Distribute a README along with staticfiles. #189
- Add a
-yflag towwctl profile add. #610 - Distribute a source RPM with GitHub releases. #614
Changed
- No longer ask for confirmation when deleting 0 nodes. #603
- Ask for confirmation during
wwctl container delete. #606
Fixed
wwctl profile setnow indicates "profiles" in output where it previously mistakenly indicated "nodes." #600- Set correct overlay permissions for a NetworkManager configuration file. #591
Fixed
- Directories within overlays no longer lose group/other write permissions #584
4.4.0rc2, 2022-12-09
Added
- The environment variable
WW_CONTAINER_SHELLis defined in awwctl container shellenvironment to indicate the container in use. #579 - Network interface configuration (
ifcfg) files now include the interface name and type. #457
Fixed
- Work-around for older versions of gzip that lack a
--keepflag duringwwctl container build. #580 - The default ipxe template is once again specified as a built-in
default and in
defaults.conf. #581 wwctl container listno longer segfaults when a container chroot is present without a built image. #585wwctl configure hostfilenow correctly detects the presence of the hostfile overlay template. #571wwctl overlay buildno longer panics when rendering an template for a node which has tags set. #568- Minor typographical fixes. #569
4.4.0rc1, 2022-10-27
Added
- iPXE binaries included with Warewulf now support VLAN tagging. #563
wwctl container listnow shows the container creation date, modification date, and size. #537wwctl node editsupports directly editing or defining node configuration YAML in an editor. #540wwctl node exportandwwctl node importsupport importing and exporting node definitions as YAML or (for import) CSV. The CSV file must have a header in where the first field must always be the nodename, and the rest of the fields are the same as the long commandline options. Network device must have the formnet.$NETNAME.$NETOPTION. (e.g.,net.default.ipaddr) #540- The
warewulfd.servicesystemd unit file now supportsexecreloadandexecstop. #550 - Network interfaces now accept an
mtuattribute. #549 - The
wwinitoverlay now supports network interface configuration via NetworkManager for Ethernet and InfiniBand interfaces. #539 - Default node attribute values (e.g., for kernel arguments) are now
read in from a
defaults.confconfiguration file. If this file is not present, built-in default values are used. #539 - Warewulf documentation is now managed alongside the Warewulf source code in a single code repository so that documentation may be updated alongside code changes.
- New man pages for
warewulf.confandnodes.conf#510 - An initial cut of the Warewulf API #471
wwctl show --rendershows overlay templates as they would be rendered on a given target node. #467wwctl sshnow supports Bash completion. #466
Changed
wwctl overlay editno longer saves a new template to the overlay if the template is not modified from its initial state. #522- The wwinit overlay now only sets a name for a network interface if that interface has a MAC address defined. #553
wwctl container deletenow also deletes the built images associated with that container. #214- Unified internal code paths for
wwctl profileandwwctl nodecommands, and between the on disk YAML format and the in memory format, enabling the command-line options to be autogenerated from the datastructures and ensuring that profile and node capabilities remain in sync. Multiple command line arguments have been updated or changed. #495, #637 wwctl powercommands no longer separates node output with additional whitespace. #514
Fixed
/etc/warewulf/excludes(read from the node image) once again excludes files from being included in the node image. #532wwctl sshalways uses a node's primary interface. #544wwctl container shownow correctly shows the kernel version. #542- System users are no longer prevented from logging into compute nodes. #538
wwctl overlay chownnow correctly handles uid and gid arguments. #530wwctl overlay chownno longer sets gid to0when unspecified. #531- Corrected the path for
.wwbackupfiles in some situations. #524 - Bypass
imgextractfor legacy BIOS machines to avoid 32-bit memory limitations. #497 warewulfdno longer panics when network interface tags are defined. #468- The wwinit overlay now configures the network device type. #465
- Minor typographical fixes. #528, #519
4.3.0, 2022-06-25
Added
- All configurations files for the host (/etc/exports, /etc/dhcpd.conf, /etc/hosts) are now populated from the (OVERLAYDIR/host/etc/{exports|dhcpd|hosts}.ww . Also other configuration files like prometheus.yml.ww or slurm.conf.ww which depend on the cluster nodes can be placed. Also the new templated functions {{ abort }}, {{ IncludeBlock }} abd {{ no_backup }} are allowed now.
- nodes and profiles can now have multiple system and runtime overlays, as a comma separated list. The overlays of the profile and the nodes are combined.
- simple ipv6 support is now enabled. In
warewulf.confthe optionipaddr6/Ipv6netmust be set to enable ipv6. If enabled on of these options is set a node will get a derived ipv6 in the schemeipv6net:ipaddr4. This address can also be overwritten for every node - Multiple files can now created from a single
template.wwfile with the{{ file FILENAME }}command in the template. The command is expanded to the magic template command{{ /* file FILENAME */}}which is picked up by wwctl and everything which comes after this magic comment will be written to the fileFILENAME. This mechanism is leveraged in the configuration files for the network, seeifcfg.xml.wwandifcgf.ww. - Networks can now have arbitrary keys value pairs in the profiles and on the node, so that things like bridges and mtu sizes can be set
- oci container tar balls can be imported with the 'file://$PATH' scheme
- uids and gids of a container can now get synced at import time, so that at least users with the same name have the same uid. This is not necessarily needed for warewulf, but services like munge.
Changed
- Provision interface is not tied to 'eth0' any more. The provision interface must be have the 'primary' flag now. The file `nodes.conf' must be changed accordingly.
- the provisioning network is now called primary and not default
- Creating of '/etc/exports' can now be disabled, so that
wwctl configure -awont overwrite a existing '/etc/exports'. - The yaml format for nodes has now sub-keys for ipmi and kernel, old nodes.conf files have to to be changed accordingly
- host overlays can globaly disbaled, but are enabled per default
wwctl overlay build -Hwill only build the overlays which are assigned to the nodes
4.1.0, 2021-07-29
Added
- Support for ARM nodes
- firewalld service file for warewulfd
-yoption to skip "Are you sure" querieswwctl kernel deletecommandwwctl vnfsalias forwwctl container- Support for authenticated OCI registries
- warewulfd can reload config on SIGHUP and when the config file changes
- Node database index to improve lookup speeds
- Kernels and containers can be imported from a chroot subdirectory
- Systemd service file
Changed
wwctl node listoutput beautification- Log timestamps are more precise
- PID file and log files are now in
/var/runand/var/log, respectively make installno longer overwrites preexisting configuration files- Kernel modules and overlays are now compressed
rootfstypenow usesrootfsin default kernel arguments- iPXE binaries updated
- Installed container directory is deleted when import fails
- Default iPXE script now reboots erroring nodes every 15 seconds
- Only open
/etc/hostswhen writing
Removed
wwctl configure--persistflags have been removed.configurecommands persist changes by default unless--showis used- In-repository documentation: has been moved to it's own repository
Fixed
- Importing containers from directory
- Debug log verbosity option takes precedence over verbose option
wwctl node list -noutput is formatted corectly- Container names can contain an underscore
wwctl overlay build --alldoes not require an argument- specfile date format works with older versions of rpmbuild
- Use SystemOverlay when building system overlay
- dhcpd template now references correct wwctl subcommand
wwctl node set kernelargsandwwctl profile set kernelargschange kernel arguments