Warewulf v4.6.0rc1 is the first release candidate for the upcoming v4.6.0. Warewulf v4.6.0 is a major release that includes many significant enhancements, fixes, and changes. - rename "containers" to "images" - "sprig" functions in overlay templates - support for yaml and json formatted output - `wwctl upgrade` to automatically update `nodes.conf` and `warewulf.conf` - completely re-designed kernel selection support - nested profiles - arbitrary node and profile data in new "resources" structure - moved NFS mount options to resources / fstab overlay - split overlays by function - split overlays, site vs distribution - replaced `defaults.conf` with settings on default profile - improved tabular output - parallel overlay build - improved networking functionality (static route, vlans, and bonds) - kernel arguments as a list - non-zero exit codes on wwctl errors - fixed argument parsing for `wwctl image exec` This release also includes numerous additional bug fixes and other. Contributors for this release: - Adam Michel - Arian - Benedikt Braunger - Beni - Brandon Biggs - Brian Clemens (CIQ) - Christian Goll (Suse) - Daniele Colombo - David McFarlane - Dietmar Rieder - Elmar Pruesse - John "griznog" Hanks - Howard Van Der Wal (CIQ) - Ian Kaufman - Josh Burks (ASU) - Jonathon Anderson (CIQ) - Nicholas Porter - Shane Nehring (Iowa State University) - Stephen Simpson (CIQ) - Timothy Middelkoop (internet2) - Tobias Poschwatta - Tobias Ribizel - "Jason" Xu Yang - Yong Qin (Nividia) The full changelog is included below. # Added - Added Netplan NIC support for Debian/Ubuntu #1463 - Added documentation on ensuring `systemctl restart warewulfd` is ran when editing `nodes.conf` or `warewulf.conf` - Add the ability to boot nodes with `wwid=[interface]`, which replaces `interface` with 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 `host` or `$(uname -n)` as the value of `overlay show --render`. #623 - Added command line parameters for credentials of a container registry - Add flag `--build` to `wwctl container copy`. #1378 - Add `wwctl clean` to 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.network_interfaces overlays. #1257 - Add support for static routes to NetworkManager, wicked, ifcfg, debian.network_interfaces overlays. #1257 - Add `wwctl upgrade `. #230, #517 - Better handling of InfiniBand udev net naming. #1227 - use templating mechanism for power commands. #1004 - Document "known issues." - Add `wwctl --kernelversion` to specify the desired kernel version or path. #1556 - Add `wwctl container kernels` to 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 --build=false` to prevent automatically (re)building the container. #1490, #1489 - Added resources as generic, arbitrary YAML data for nodes and profiles. #1568 - New `fstab` resource 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 `tr` has 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 set` requires mandatory pattern input. #502 - Remove NodeInfo (in-memory-only) data structure, consolidating onto NodeConf. #916 - Replace `defaults.conf` with settings on the default profile. #917 - Switched from yaml.v2 to yaml.v3 #1462 - Make OCIBlobCache a seperate path and point it to `/var/cache` #1459 - Updated various shell scripts for POSIX compatibility. #1464 - Update `wwctl server` to always run in the foreground #508 - Update `wwctl server` to log to stdout rather than a file #503 - Changed `wwctl server` to 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 `warewulfd` port to match shipped configuration. #1448 - Replace `olekukonko/tablewriter` with `cheynewallace/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 --fullall` has been removed - `wwctl profile list --fullall` has been removed - Remove `wwctl server ` #508 - Remove `wwctl overlay build --host` #1419 - Remove `wwctl overlay build --nodes` #1419 - Remove `wwctl kernel` #1556 - Remove `wwctl --kerneloverride` #1556 - Remove `wwctl container --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 optain 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. #1093 - 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 `--nettagdel` does 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