Commit Graph

285 Commits

Author SHA1 Message Date
Jonathon Anderson
4e67db0be6 Reflection-based template walking
Rather than deriving the identity of template variables by string parsing the
name, identify its relationship to the underlying struct using reflection.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-12-09 23:16:00 -07:00
Timothy Middelkoop
fe611f77de IPv6: Add dnsmasq non-static config
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-12-01 03:39:54 +00:00
Timothy Middelkoop
5bad8e45fd IPv6: Add Network6 to tstruct
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-30 02:38:33 +00:00
Timothy Middelkoop
223f56a330 Merge dnsmasq ipv4 and ipv6 files
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-29 02:12:19 +00:00
Timothy Middelkoop
4c82de92c7 Systemd-networkd overlay with IPV6 support
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-28 04:46:47 +00:00
Timothy Middelkoop
d9b4317034 Ipv6: ifupdown overlay
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-27 23:07:16 +00:00
Timothy Middelkoop
484965dbae IPv6: /etc/exports overlay
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-27 23:05:13 +00:00
Timothy Middelkoop
3aded908ce Add overlay variable NetworkCIDR6
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-27 19:34:28 +00:00
Timothy Middelkoop
f5b4333781 IPv6: /etc/hosts support
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-27 02:48:28 +00:00
Timothy Middelkoop
4f58845a9e Add IPv6 support for Dnsmasq and NetworkManager
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-27 01:56:18 +00:00
Timothy Middelkoop
07eee48a6a Add IPv6 support for dnsmasq
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-17 18:03:05 +00:00
Timothy Middelkoop
463994976e Add IpCIDR6 and IPv6 DHCP range
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-17 17:53:09 +00:00
Jonathon Anderson
e07efeee4c New architecture-specific wwclient overlays
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-10-31 11:56:53 -06:00
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
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
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
Tim Weiers
7ffb07c54a Change netplan overlay to use netdev device names instead of the netdev name in bonds
Signed-off-by: Tim Weiers <56134890+tweiers@users.noreply.github.com>
2025-10-14 13:53:44 -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
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
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
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
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
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
987eeb019b Fixed IPMI VLAN configuration
- Closed: #1892

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-02 13:53:11 +02:00
Jonathon Anderson
db3a3fee05 Additional overlays to support provision-to-disk without ignition
- sfdisk - partitions the disk
- mkfs - formats partitions
- mkswap - formats partitions for swap
- systemd.mount - explicit creation of systemd mount units
- systemd.swap - explicit creation of systemd swap units

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-06-30 23:24:20 -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
8c2723f16c Fixed a regression in SELinux support by restoring the /run mount during wwinit. #1910
https://systemd.io/INITRD_INTERFACE/

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-05-12 21:26:59 -06:00
Stephen Simpson
9b94c6c8c3 Updated udev overlay for case-insensitive
Co-authored-by: acabrera86 <acabrera86@users.noreply.github.com>
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-05-02 16:50:13 -05:00
Jonathon Anderson
d982fea6da Set an IPMI tag `vlan to configure the vlan during ipmiwrite`
- Closes: #1031

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-03-25 20:49:28 -06:00
Jonathon Anderson
4367b56120 Restore some default behaviors
- If `init` is not specified, wwinit looks for /sbin/init, /etc/init,
  and /bin/init, matching dracut behavior.
- assume ipxe template=default if not set
- Display a warning during overlay build if an overlay list is empty

Issues:

- Closes: #1808
- Closes: #1813

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-03-25 09:07:03 +01:00
Jonathon Anderson
e4a9018b80 wwclient uses WW_IPADDR, if set, to contact the Warewulf server.
- Closes: #1788

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-03-22 03:03:21 -06:00
Jonathon Anderson
8c65c681c9 Remove dracut NetworkManager connections for phase 2
- Closes: #1780

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-25 06:32:25 -07:00
Jonathon Anderson
3a1e581f93 Better handling for missing NetDev.Device
- Closes: #1777

Overlays:
- ifcfg
- NetworkManager

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-24 22:27:36 -07:00
Christian Goll
4fcd12da40 Added test for onboot parameter
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-02-20 01:41:11 -07:00
Jonathon Anderson
fd8de8bfab Add WWbool.BoolDefaultTrue()
New support in WWbool for booleans that default "true."

Used primarily for NetDev.OnBoot.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-20 01:41:10 -07:00
Christian Goll
bd485817c1 Require ignition for mount and not only after
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-02-21 22:27:40 -07:00
Christian Goll
9fd3b354e0 Merge pull request #1742 from anderbubble/wwinit-logging
Improved logging during iPXE, GRUB, and wwinit
2025-02-20 10:32:11 +01:00
Jonathon Anderson
e5024038a6 Don't use DHCP for interfaces attached to a bond
- Fixes: #1743

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-20 10:16:59 +01:00
Jonathon Anderson
4fa8601b75 Updated wwinit for clarity #1156
Also:

- Renamed /warewulf/wwinit to /warewulf/prescripts

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-17 02:48:16 -07:00
Jonathon Anderson
da26fa3061 Added support for a DNSSEARCH netdev tag in network configuration overlays
- Closes: #1256

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-14 09:07:09 +01:00
Jonathon Anderson
21333482e6 Omit duplicate passwd and group entries in syncuser overlay
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-11 18:28:47 -07:00
Jonathon Anderson
4abaa1207a DHCP template generates as much of the subnet and range definition as possible.
- Closes: #1469

This makes it possible to disable just the dynamic range without losing access
to the next-server required by static host entries.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-10 16:27:13 -07:00
Jonathon Anderson
87da57d1a2 Return "" when NetDev.IpCIDR is empty
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-10 10:26:01 +01:00
Jonathon Anderson
73f34d0099 Restore server network auto-detection
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-06 20:46:20 -07:00
Jonathon Anderson
2e1466fc7e Fix handling of CIDR values in warewulf.conf
- Fixes: #1541
- Fixes: #1594

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-06 20:46:20 -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