# Final release of 4.4.0 ## Changes to node and profile subcommands Warewulf 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: ### wwctl node add * `--discoverable` becomes `--discoverable=true` ### wwctl node set * `--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` ### internal/app/wwctl/profile/set/root.go * `--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. ## Added - iPXE binaries included with Warewulf now support VLAN tagging. #563 - `wwctl container list` now shows the container creation date, modification date, and size. #537 - `wwctl node edit` supports directly editing or defining node configuration YAML in an editor. #540 - `wwctl 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`) #540 - The `warewulfd.service` systemd unit file now supports `execreload` and `execstop`. #550 - Network interfaces now accept an `mtu` attribute. #549 - The `wwinit` overlay 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.conf` configuration file. If this file is not present, built-in default values are used. #539 - [Warewulf documentation](https://warewulf.org/docs/) 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.conf` and `nodes.conf` #510 - An initial cut of the [Warewulf API](API.md) #471 - `wwctl show --render` shows overlay templates as they would be rendered on a given target node. #467 - `wwctl ssh` now supports Bash completion. #466 - The environment variable `WW_CONTAINER_SHELL` is defined in a `wwctl container shell` environment to indicate the container in use. #579 - Network interface configuration (`ifcfg`) files now include the interface name and type. #457 - New `defaults.conf` man 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 `-y` flag to `wwctl profile add`. #610 - Distribute a source RPM with GitHub releases. #614 - New Docker container node image for CentOS 7. #621 ## Changed - `wwctl overlay edit` no 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 delete` now also deletes the built images associated with that container. #214 - Unified internal code paths for `wwctl 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, #637 - `wwctl power` commands no longer separates node output with additional whitespace. #514 - No longer ask for confirmation when deleting 0 nodes. #603 - Ask for confirmation during `wwctl container delete`. #606 ## Fixed - `/etc/warewulf/excludes` (read from the node image) once again excludes files from being included in the node image. #532 - `wwctl ssh` always uses a node's primary interface. #544 - `wwctl container show` now correctly shows the kernel version. #542 - System users are no longer prevented from logging into compute nodes. #538 - `wwctl overlay chown` now correctly handles uid and gid arguments. #530 - `wwctl overlay chown` no longer sets gid to `0` when unspecified. #531 - Corrected the path for `.wwbackup` files in some situations. #524 - Bypass `imgextract` for legacy BIOS machines to avoid 32-bit memory limitations. #497 - `warewulfd` no longer panics when network interface tags are defined. #468 - The wwinit overlay now configures the network device type. #465 - Minor typographical fixes. #528, #519 - Work-around for older versions of gzip that lack a `--keep` flag during `wwctl container build`. #580 - The default ipxe template is once again specified as a built-in default and in `defaults.conf`. #581 - `wwctl container list` no longer segfaults when a container chroot is present without a built image. #585 - `wwctl configure hostfile` now correctly detects the presence of the hostfile overlay template. #571 - `wwctl overlay build` no longer panics when rendering an template for a node which has tags set. #568 - Minor typographical fixes. #569 - Directories within overlays no longer lose group/other write permissions #584 - `wwctl profile set` now indicates "profiles" in output where it previously mistakenly indicated "nodes." #600 - Set correct overlay permissions for a NetworkManager configuration file. #591 - 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