Commit Graph

621 Commits

Author SHA1 Message Date
Jonathon Anderson
40f0cebe64 Configure destination of grub.cfg at overlay render time
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-10-29 21:27:47 -06:00
Jonathon Anderson
be97ef15a0 Manage selinux context of tftp directory
- Fixes: #1997

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-10-29 20:11:41 -06:00
Christian Goll
8360a6ffff Fix CVE-2025-58058 2025-10-20 14:09:59 -06:00
Stephen Simpson
b5552aee07 Add IPMI bit-rate configuration and update documentation
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-10-17 11:04:43 -05:00
Christian Goll
05cf57a506 Merge pull request #2030 from middelkoopt/tm-openeuler
Add OpenEuler support
2025-10-15 09:24:28 +02:00
Jonathon Anderson
c600a3e455 Updated CHANGELOG and tests for netplan bonding
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-10-14 13:53:44 -06:00
Jonathon Anderson
a4bde3b279 Fix "address already in use" after wwclient --once
- Closes: #2009

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-10-14 13:01:04 -06:00
Timothy Middelkoop
44057766e7 Add OpenEuler support
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-10-01 13:50:31 -05:00
Jonathon Anderson
91a69e8756 Rename debian.interfaces to ifupdown
When I first split the debian interfaces support from wwinit, I was unable to
figure out what it was called. I used the inelegant name "debian.interfaces" to
identify it; but I have since learned that it is called "ifupdown." I have
since learned that there is even a variant implementation, ifupdown-ng, that is
used by Alpine Linux.

This PR renames the overlay to ifupdown, but retains a copy of it at
debian.interfaces for backwards compatibility.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-15 09:50:59 -06:00
Jonathon Anderson
489c8662d3 v4.6.4 release updates
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-05 16:45:23 -06:00
Christian Goll
28b040326e Merge pull request #1995 from anderbubble/update-nm-connections
Omnibus network management overlay fixes
2025-09-05 14:18:49 +02:00
Jonathon Anderson
59f187bf5e Convert disk booleans from wwbool to *bool
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-05 14:16:03 +02:00
Christian Goll
d5b94afcb9 replace bools in disk structures with wwBool 2025-09-05 14:16:03 +02:00
Jonathon Anderson
458e23d0ae Set SLAVE=yes in ifcfg files when MASTER is set
- Fixes: #1980

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-04 17:44:25 -06:00
Jonathon Anderson
7a6a1ad441 Disable ipv4 in NetworkManager if no address or route is specified
- Closes: #1986

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-04 17:44:25 -06:00
Stephen Simpson
0ef2faf3f7 Update NetworkManager Overlay
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-09-04 17:44:25 -06:00
Jonathon Anderson
79d058f202 Prevent brp-mangle-shebangs from updating overlays
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-04 15:38:22 -06:00
Jonathon Anderson
0379cebb71 Merge pull request #2000 from anderbubble/golang-version-spec
Update golang BuildRequires in warewulf.spec.in
2025-09-04 15:21:14 -06:00
Jonathon Anderson
34bf90dbe9 Merge pull request #1993 from middelkoopt/tm-systemd-warewulfd
Add default for systemd name for warewulf in warewulf.conf
2025-09-04 15:14:38 -06:00
Adrian Reber
e86981fd59 fix(wwctl): Create overlay edit tempfile in tmpdir
When editing an overlay, the temporary file was created within the
overlay directory structure. This could lead to the temporary file
being included in the overlay if not cleaned up properly.

This change modifies the behavior to create the temporary file in the
system's default temporary directory, avoiding any potential issues
with the overlay itself.

Not using this change the temporary file can be seen in the overlay:

 DEBUG  : Using temporary file /usr/share/warewulf/overlays/host/ww-overlay-edit-2879742493
 DEBUG  : Checking if path exists as a file: /usr/share/warewulf/overlays/host/rootfs/etc/hosts.ww
 DEBUG  : ExecInteractive(tee, [/usr/share/warewulf/overlays/host/ww-overlay-edit-2879742493])

 # find /srv | grep ww-overlay
 /srv/warewulf/overlays/host/ww-overlay-edit-2879742493

With this patch applied:

 DEBUG  : Using temporary file /tmp/ww-overlay-edit-266752840
 DEBUG  : Checking if path exists as a file: /usr/share/warewulf/overlays/host/rootfs/etc/hosts.ww
 DEBUG  : ExecInteractive(tee, [/tmp/ww-overlay-edit-266752840])

 # find /srv | grep ww-overlay

Assisted-by: Gemini 2.5 Pro
Signed-off-by: Adrian Reber <areber@redhat.com>
2025-09-04 14:10:13 -06:00
Jonathon Anderson
a979bb1bef Update golang BuildRequires in warewulf.spec.in
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-09-04 13:35:03 -06:00
Timothy Middelkoop
58f13721f0 Add default for systemd name for warewulf in warewulf.conf
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-09-01 14:39:46 -05:00
Jonathon Anderson
32ca0a9170 Atomic overlay file application in wwclient
Update wwclient such that each file in the runtime overlay is applied
atomically, and only if modified.

- Closes: #1307
- Closes: #1975
- Closes: #1226

Also adds --once flag to allow wwclient to be run one time.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-28 07:45:35 -06:00
Christian Goll
6f4fd60d8f refactored overlay class
overlay.GetOverlay(name) returns now an error if the overlay doesn't
exist. This is the most canonical way to act if there is no overlay.
2025-08-27 22:24:31 -06:00
Timothy Middelkoop
c1027053d0 Add support for EL10
* Upadate dev container to use EL10
* Update CI to use EL10
* Update spec file for EL10
* Add `make rpm` target for building RPMs
* Use `mktemp` for `make dist` to use devcontainer filesystem
* Set default dhcpd and tftpd to dnsmasq for EL10
* Fix dnsmasq template tftp paths to use basename

Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-08-24 21:43:14 +00:00
Christian Goll
1e54d02f70 Revert "Atomic overlay file application in wwclient"
This reverts commit 9f11b4a2b9.
2025-08-13 09:57:31 +02:00
Jonathon Anderson
9f11b4a2b9 Atomic overlay file application in wwclient
Update wwclient such that each file in the runtime overlay is applied
atomically.

- Closes: #1307
- Closes: #1975
- Closes: #1226

Also adds --once flag to allow wwclient to be run one time.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-12 23:16:03 -06:00
Jonathon Anderson
70eb60bd2c v4.6.3 release
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-01 16:48:30 -06:00
Dacian Reece-Stremtan
efd63aecd4 IPv6 iPXE support
* Parse address and port with netip w/ tests
* Add Authority to provisioning templates based on remote IP family
  (name based on RFC 3986)
* Add IPv6 support to the default iPXE (tested)
* Update `grub.cfg.ww` to use Authority (untested)

Co-authored-by: Dacian Reece-Stremtan <dacianstremtan@gmail.com>
Co-authored-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-08-01 14:46:36 -06:00
Jonathon Anderson
61fa859da5 Fix a syntax error in the RPM specfile
This error was apparently being ignored by rpmbuild; but it was called
out by Copilot during a recent review.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-01 11:50:13 -06:00
Jonathon Anderson
b3a6f3d905 Fix a race condition in wwctl overlay edit
Switches to using sha256 rather than mtime to detect changes to an
overlay file.

- Fixes: #1947

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-01 01:57:02 -06:00
Jonathon Anderson
ae9d349e33 Fixed handling of comma-separated mount options in fstab and ignition overlays
- Fixed: #1950

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-01 01:43:25 -06:00
Jonathon Anderson
ebc101b2b1 Move reexec.Init() to beginning of wwctl
- Fixes: #1879

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-01 01:08:20 -06:00
Stephen Simpson
49db6fdb71 Add documentation for using tmpfs to distribute across numa nodes
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-08-01 00:49:35 -06:00
Christian Goll
2c51ca7fff added warewuld configure option
Co-authored-by: Jonathon Anderson <janderson@ciq.com>
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-31 21:47:08 -06:00
Jonathon Anderson
4b44de6688 Fix wwctl upgrade nodes to handle kernel argument lists
`wwctl upgrade nodes` could convert legacy kernel argument formats to
the new list format, but then wasn't properly parsing the new list
format for repeat runs.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-31 19:01:47 -06:00
Jonathon Anderson
e149a332e6 Bugfix: cloning a site overlay when parent dir does not exist
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
jason yang
62d1aa654d Support for creating and updating overlay file in wwapi
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2025-07-28 18:18:48 -06:00
jason yang
e089fe0101 add overlay file deletion support
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
6b5115934b DELETE /api/overlays/{id}?force=true can delete overlays in use
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
949dc9d46b Restore idempotency of PUT /api/nodes/{id}
HTTP PUT is supposed to be idempotent, so PUT for an existing node or
profile should replace the node or profile, not throw an error.

Generating an error on duplicate can now be requested using the
If-None-Match header with a `*` value.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:41 -06:00
jason yang
a3dbf6aeee add node overlay buildtime
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2025-07-28 18:18:13 -06:00
Jonathon Anderson
cd14ee146f Improved netplan support
Amother other things, implements support for bonds.

- Fixes: #1873

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-21 09:38:00 +02:00
Jonathon Anderson
a2c7caa4ba Rebuild overlays for discovered nodes
- Fixes: #1468

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-09 14:29:38 -06:00
Jonathon Anderson
f22ab9e7b1 v4.6.2
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-09 09:36:58 -06:00
Tobias Ribizel
c2a51c2a7e format and changelog
Signed-off-by: Tobias Ribizel <mail@ribizel.de>
2025-07-07 15:44:11 +02:00
Jonathon Anderson
2ba6e28215 Remove wwctl node import --csv
- Closes #1862

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-02 21:25:54 -06:00
Jonathon Anderson
dda51d2426 Additional nettag documentation in userdocs
- Fixes #1856

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-02 15:45:19 -06:00
Jonathon Anderson
48bace55f6 Preserve file permissions during wwctl overlay edit
- Fixes: #1886

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-02 08:06:13 -06:00
Jonathon Anderson
3db131eadf Fix width of wwctl image shell --help
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-02 13:54:56 +02:00