Commit Graph

154 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
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
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
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
f2b091d4cb Fixed sleep/reboot on error during GRUB boot
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-06-30 23:26:42 -06:00
Jonathon Anderson
b98eae4b01 Refactor ignition support during dracut
- Control root device using the node/profile root field
- Add support for `/warewulf/wwinit.d` to run scripts during first stage
- Move first-stage ignition support to `/warewulf/wwinit.d/`
- Add `wwctl <node|profile> set --parttype`
- Add overlay template functions `SystemdEscape` and `SystemdEscapePath`
- Support configuring ignition with resources

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-06-30 23:19:31 -06:00
Christian Goll
917f191abe add support for ignition in configs
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-06-17 01:34:23 -06:00
Jonathon Anderson
4005afac4c Add a new OpenAPI v3 REST API to warewulfd at /api
Co-authored-by: jason yang <jasonyangshadow@gmail.com>

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-04-03 07:12:03 -06:00
Christian Goll
eb9a20fa01 fix SUSE specific udev regression
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-04-02 20:39:41 -06:00
Jonathon Anderson
f65be064ad Add indicated sleep and reboot during grub boot
- Closes: #1791

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-03-25 19:03:53 -06:00
Jonathon Anderson
fb9f269fc5 Update ipxe and grub configuration for clarity #1156
Also:

- Defined a menu for iPXE
- Support a IPXEMenuEntry tag to select the boot method
- Merge iPXE dracut support into default.ipxe (use IPXEMenuEntry=dracut)

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-17 02:31:05 -07:00
Jonathon Anderson
b05fa4157a Added fstab mounts for /home and /opt to initial default profile
- Closes: #1744

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-14 20:30:46 -07:00
Jonathon Anderson
b0b4e8117f Remove syncuser from the list of default runtime overlays
- #1322

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-11 18:28:49 -07:00
Timothy Middelkoop
944d611d4f Set default for dhcp.template in warewulf.conf
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-02-10 11:16:15 -07:00
Xu YANG
470f8c65d5 Merge pull request #1707 from anderbubble/remove-syslog
Remove `warewulf.conf:syslog`
2025-02-07 12:08:48 +09:00
Jonathon Anderson
4809641ef6 Re-order SSH key types to make ed25519 default
- Fixes: #981

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-05 23:27:29 -07:00
Jonathon Anderson
89721c6832 Remove warewulf.conf:syslog
- Fixes: #1606

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-05 21:58:39 -07:00
Jonathon Anderson
7c8a1a4e1b Specify init=/init when booting with Grub+dracut
- Fixes: #1573

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-03 13:56:18 +01:00
Timothy Middelkoop
b66a8679c5 Fix default nodes.conf to use the new kernel command line list format
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-30 01:44:53 -07:00
Shane Nehring
6bad4ed8d1 have dracut explicitly configure defined interfaces
Signed-off-by: Shane Nehring <snehring@iastate.edu>
2025-01-24 10:04:37 -06:00
Jonathon Anderson
45a690ca4e Rename "container" to "image"
- Updated `wwctl upgrade` to handle updates
- Maintained `.Container` and `.ContainerName` in tstruct
- Added `ContainerName()` methods to node and profile objects
- Added `--container`, `-C` aliases to wwctl commands (`<node|profile> <add|set>`)
- Added `wwctl container` alias
- Added support for `container_exit.sh` if `image_exit.sh` is not found

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 05:54:19 -07:00
Jonathon Anderson
bc52f3b7d7 Recommended changes from review of #1568
- Make Resources an `interface{}` to support arbitrary yaml
- Remove `wwctl resource` as incompatible with arbitrary yaml
- Revert changes to host overlay templates
- Remove NFS mount options from warewulf.conf
- Replace NFS support / resource prefix with "fstab" resource
- Move resources to profiles
- Migrate warewulf.conf mounts to nodes.conf with `wwctl upgrade`
- Add documentation

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-17 10:33:37 -07:00
Jonathon Anderson
a844379bc5 Merge --kerneloverride into --kernelversion
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-09 10:02:28 +01:00
Jonathon Anderson
8f21d54243 Refactor kernel support
- Remove kernel imports and kmods images
- Repurpose KernelOverride as container path
- Support Kernel.Version as version prefix for kernel selection
- Compare initramfs by version

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-09 10:02:22 +01:00
Jonathon Anderson
cab56fbea5 Omit initrd=runtime if not loaded
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-13 22:20:26 -07:00
Xu Yang
c6ebac89da add failure downloading runtime message to imgextract part
Signed-off-by: Xu Yang <xyang@ciq.com>
2024-11-13 21:50:03 -07:00
Jonathon Anderson
7b1adf4c12 Simplified CHANGELOG and iPXE error messages
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-13 21:50:03 -07:00
xu yang
7a63e517f7 fix issue that initrd fails at downloading runtime overlay with permission denied error, when warewulf secure option in warewulf.conf is enabled
Signed-off-by: xu yang <xyang@ciq.com>
2024-11-13 21:50:03 -07:00
Jonathon Anderson
a7325b6ffa Remove WW_INTERNAL
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:08:54 -07:00
Jonathon Anderson
c25eaa8855 Move default ipmi template to default profile
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-07 23:01:32 -07:00
Jonathon Anderson
a9b908e339 Remove "network" parameter from initial warewulf.conf
"network" is redundant with ipaddr and netmask.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-06 19:07:06 -07:00
Jonathon Anderson
cec95b14f0 Update default warewulfd port to match initial configuration
We've been shipping a warewulf.conf that defines the warewulfd port as
9873, and a firewalld service that uses this port as well; but the
default value in the YAML data-structure has been 9983.

This changes the default port to 9873 to match the configuration we've
been shipping, and removes the port from the initial configuration file
(to use the default value).

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-06 19:07:05 -07:00
Jonathon Anderson
94ee0a5bd9 Remove an unnecessary 3s boot from iPXE
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-01 19:07:19 -06:00
Jonathon Anderson
02b4cc1572 Remove profiles from the default profile
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-10-17 15:39:59 -04:00
Jonathon Anderson
b6fa127f31 Update default profile with split overlays
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-10-17 15:39:59 -04:00
Christian Goll
9fdb9ca792 updated overlays
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-10-17 15:30:54 -04:00
Elmar Pruesse
097fbbc82a Fix grub asset key handling
Signed-off-by: Elmar Pruesse <pruessee@njhealth.org>
2024-09-16 13:04:09 +02:00
Jonathon Anderson
e2da5b6d09 Restore use of dmidecode in dracut for assettag and uuid
This prevents exposing these values in /proc/cmdline.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-05 18:41:19 -04:00
Jonathon Anderson
e4385713e8 Port dracut boot refinement to grub
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-05 18:41:18 -04:00
Jonathon Anderson
624631a4d5 Use the wwinit uri built by iPXE during dracut
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-05 18:41:18 -04:00
Jonathon Anderson
becd0a5e32 Pass wwinit.KernelOverride explicitly
Rather than create a new wwinit.kmods boolean, pass
wwinit.KernelOverride explicitly to dracut and allow it to perform the
same logic that previously had been in iPXE.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-05 18:41:18 -04:00
Josh Burks
d62743ee11 clean up /proc/cmdline with dracut and allow dracut to boot with secure mode to fix #1261 2024-09-05 18:41:18 -04:00
Christian Goll
fbf3e3c0a8 Add a logrotate config for warewulfd.log
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-08-02 17:06:21 -06:00
Christian Goll
640a046dd9 report error if no container was defined
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-08-02 14:48:02 -06:00
Jonathon Anderson
05b951d78d Support dracut booting with GRUB
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-06 16:34:53 -04:00
Jonathon Anderson
53dae60e20 New, optional dracut.ipxe configuration
dracut.ipxe boots an initramfs detected in the container image. This
required a few small changes to warewulfd and the wwinit overlay to
accommodate the dracut initramfs configuring the network interface
before wwinit:

- Include .NetDevs in the ipxe configuration template, so that dracut
  can configure interfaces with the correct names.

- Configure NetworkManager to not keep the initramfs configuration, in
  stead applying the configuration found by wwinit.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-06 03:20:09 -04:00
Christian Goll
21150d2975 make created ssh keys configureable
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-05-01 14:27:39 -06:00
Jonathon Anderson
a5dc1de3b4 Match warewulf.conf to documentation
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2024-02-17 02:29:08 -07:00
Christian Goll
1fca0057d3 updated WW_INTERNAL to 45 for 4.5.x release
Internal version update is necessary as new structures were added,
most obviously the disk, partitions and file system structures.
Old configurations will work as expected.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-02-16 20:12:51 -07:00