Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems.
Warewulf v4.5.1 is primarily a bugfix and dependency update release.
Updates to dependencies broke compatibility with CentOS 7, so we have also dropped support for CentOS 7 (which, itself, goes EOL at the end of June) in this release. (This only affects the ability to run the Warewulf server on CentOS 7: Warewulf can still provision compute node images running CentOS 7.)
wwctl profile list -a
format when kernerargs are set.%install
section. #1169The Warewulf project is pleased to announce the release of v4.5.0.
There's a lot in this release! Some of the more prominent changes are described here. For a more complete list of changes, see the changelog.
In this release we have significantly increased our focus on testing. Code changes, especially bug fixes, are increasingly accompanied by additional tests in the automated test suite, and this test suite is automatically run by GitHub against every pull request and every release.
Use the make test
target to run the test suite locally whenever you're doing development of your own.
Additional Makefile targets have also been introduced (or improved) to aid in overall maintenance of the code base:
make vet
uses standard golang heuristics to flag potential troublemake fmt
applies a uniform source code formatDocumentation continues to be an area for growth in Warewulf; but v4.5.x brings a number of improvements, some foundational:
main
branch.There have been a few other specific additions: for example, there is now explicit documentation for how to configure multiple networks on a cluster node, and documentation for the "hostlist" syntax used by multiple wwctl
commands.
Please reach out via Slack if you'd be interested in helping to improve the project's documentation!
This release brings three new features in a preview status: they haven't quite had enough use, testing, integration, or documentation to be ready for production, but they represent interesting new capabilities for the project and we are eager to hear about your experiences!
You can now initialize file systems, partitions, and disks on attached storage during node boot using the Ignition utility. This does not yet support provisioning the node image to local disk; but it can be used to provision storage to be mounted into the node image; for example, to initialize a swap partition, to format a scratch disk, or to prepare local storage for system logs.
More information is available in the documentation.
You can now use dnsmasq as a dhcp and tftp server in place of dhcpd and tftp-server. dnsmasq may become the default implementation in the future, unifying Warewulf on a single code-base for some of its down-stream services.
More information is available in the documentation.
You can now use GNU GRUB as a node bootloader in place of iPXE. Using GRUB introduces support for secureboot, and may also help us to overcome some limitations on node image size that we have encountered with the available releases of iPXE.
More information is available in the documentation.
This release introduces multiple improvements to the wwctl
utility.
wwctl container copy
duplicates a container image to a new name, simplifying the process of testing a change in a test image.wwctl container rename
adds support for renaming a container image in-place. (Nodes and profiles that refer to the old name must be updated separately.)wwctl container syncuser --build
automatically (re)builds a container image after syncuser.wwctl <node|profile> list --all
now only shows attributes that have a value set.
wwctl <node|profile> list --fullall
shows all attributes, including those which do not have a set value.wwctl <node|profile> set --primarynet
sets the primary network device for the node, to be used for Warewulf provisioning.wwctl <node|profile> set --ipmiescapechar
changes the ipmitool
escape character.wwctl overlay import --parents
automatically creates intermediate parent directories.wwctl node edit
is now much more reliable, with multiple bugfixes and a general rewrite of its temporary file handling.wwctl <node|profile> set --mtu
now correctly accepts valid MTU values.wwctl container import
can now import a container archive using a relative path.wwctl container import --force
no longer fails when replacing an existing container.wwctl <node|profile> list
now supports a comma-separated list of nodes or profiles to filter the list to be displayed.wwctl overlay
tab completion now supports completing files within an overlay.Much of Warewulf's functionality is actually implemented using its bundled overlays.
~
prefix./var/lib/warewulf/overlays
, and overlay images will now be built in /var/lib/warewulf/provision/overlays
.)__SYSTEM__
or __RUNTIME__
by default, replacing the previous format that was a comma-separated list of the contained overlays./warewulf/config
is now restricted to root only.ONBOOT
is now correctly configured when using ifcfg
./etc/hosts
./etc/hosts
.Warewulf suports arbitrary key-value tags on nodes, network devices, and ipmi interfaces. These tags can then be used by built-in and custom overlays.
wwinit
overlay now uses DNS
network tags (including DNS1
, DNS2
, etc.) to configure DNS resolution in network configuration files.Warewulf is primarily configured using two configuration files, warewulf.conf
and nodes.conf
.
ipaddr
now supports CIDR format, optionally inferring netmask and network.paths
can be used to override compiled-in paths, e.g., for overlays, containers, and provisioned images.tftp:ipxe
now supports full paths.All available configuration options can be seen in context using wwctl genconfig warewulfconf print
.
PrimaryNetDev
now defines a single network interface as primary for a node (or profile), deprecating the primary
boolean on each individual network device.Finally, a number of improvements have been made to the Warewulf build system, including its Makefile and RPM specfile.
scripts/build-ipxe.sh
. (Use warwulf.conf:tftp:ipxe
to configure Warewulf to use a local iPXE build.)Second release candidate for upcoming release v4.5.0.
For a complete list of changes, see https://github.com/warewulf/warewulf/blob/v4.5.0rc2/CHANGELOG.md
Release candidate for upcoming release v4.5.0.
For a complete list of changes, see https://github.com/warewulf/warewulf/blob/v4.5.0rc1/CHANGELOG.md
THIS IS A NIGHTLY RELEASE
This release contains latest commits, which is a feature unstable version
Reflog: d0c413a9 main@{0}: branch: Created from refs/remotes/origin/main
Commits: []
Warewulf v4.4.1 is a bugfix release in the 4.4.x branch. This release backports certain fixes from the development branch.
.ww
extension to the 70-ww4-netname.rules
template in the wwinit overlay. #724/warewulf/config
to root only. #728Warewulf 4.4.0 unifies the underlying implementation of nodes and profiles to prevent divergence in their features and attributes going forward; but this necessitated an update to their respective command-line arguments to unify them as well. Changes to those arguments is detailed here:
--discoverable
becomes --discoverable=true
--addprofile
has been removed--assetkey
becomes --asset
--delprofile
has been removed--discoverable
becomes --discoverable=true
--netdeltag
becomes --nettagdel
--nettag
becomes --nettagadd
--system
becomes --wwinit
--tag
becomes --tagadd
--undiscoverable
becomes --discoverable=false
--assetkey
becomes --asset
--discoverable
becomes --discoverable=true
--netdeltag
becomes --nettagdel
--nettag
becomes --nettagadd
--system
becomes --wwinit
--tag
becomes --tagadd
--undiscoverable
becomes --discoverable=false
All changes introduced since v4.3.0 are summarized below.
wwctl container list
now shows the container creation date,
modification date, and size. #537wwctl node edit
supports directly editing or defining node
configuration YAML in an editor. #540wwctl node export
and wwctl node import
support 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 form
net.$NETNAME.$NETOPTION
. (e.g., net.default.ipaddr
) #540warewulfd.service
systemd unit file now supports execreload
and execstop
. #550mtu
attribute. #549wwinit
overlay now supports network interface configuration
via NetworkManager for Ethernet and InfiniBand interfaces. #539defaults.conf
configuration file. If this file
is not present, built-in default values are used. #539warewulf.conf
and nodes.conf
#510wwctl show --render
shows overlay templates as they would be
rendered on a given target node. #467wwctl ssh
now supports Bash completion. #466WW_CONTAINER_SHELL
is defined in a wwctl container shell
environment to indicate the container in use. #579ifcfg
) files now include the
interface name and type. #457defaults.conf
man page. #593-y
flag to wwctl profile add
. #610wwctl overlay edit
no longer saves a new template to the overlay
if the template is not modified from its initial state. #522wwctl container delete
now also deletes the built images
associated with that container. #214wwctl profile
and wwctl node
commands, 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, #637wwctl power
commands no longer separates node output with
additional whitespace. #514wwctl container delete
. #606/etc/warewulf/excludes
(read from the node image) once again
excludes files from being included in the node image. #532wwctl ssh
always uses a node's primary interface. #544wwctl container show
now correctly shows the kernel version. #542wwctl overlay chown
now correctly handles uid and gid arguments. #530wwctl overlay chown
no longer sets gid to 0
when unspecified. #531.wwbackup
files in some situations. #524imgextract
for legacy BIOS machines to avoid 32-bit memory
limitations. #497warewulfd
no longer panics when network interface tags are
defined. #468--keep
flag
during wwctl container build
. #580defaults.conf
. #581wwctl container list
no longer segfaults when a container chroot
is present without a built image. #585wwctl configure hostfile
now correctly detects the presence of the
hostfile overlay template. #571wwctl overlay build
no longer panics when rendering an template
for a node which has tags set. #568wwctl profile set
now indicates "profiles" in output where it
previously mistakenly indicated "nodes." #600Hopefully the last prerelease if no significant bugs are encountered.
ipxe template
did not have a default value so nodes did not boot if a this value was not set. Please check your defaults.conf
if you installed this releasegzip
versions are now handled correctlywwctl container exe
First release candidate of the 4.3.0 branch.
node edit/export/import
where the edit command exposes the YAML config for the
given nodes in an editor. Nodes can also be added with this command. The export command
simply drops the YAML config for the given nodes. With the import command nodes can be
imported as YAML or as a CSV file. The CSV file must havr a header in where the first field
must always be the nodename, the rest of the fields are the same as the long commandline
options. Network device must have the form net.$NETNAME.$NETOPTION, which would e.g. be
net.default.ipaddrwwctl container list
will now show the creation,modification
date and the size.wwctl ssh
the primary interface will be usedwwctl container show