Commit Graph

270 Commits

Author SHA1 Message Date
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
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
09503e583c Don't mount /run during wwinit
- Fixes: #1566

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-30 16:28:57 -07:00
Jonathon Anderson
51f61f93c4 Refactor kernel args as a slice
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-21 09:52:58 -07:00
Jonathon Anderson
c209dadc1f Update network interface bonding configuration and documentation
- Closes: #1482
- Closes: #1280

This also corrects poor handling of whitespace around the "file" function
throughout the templates, given experiences with the network templates while
implementing the bond behavior. Since the file function actually does produce
output (that is parsed by Warewulf itself) it should not collaps prefix
whitespace.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-21 09:42:27 -07:00
Jonathon Anderson
ef376e97de Improved template variables debug template and documentation
- Closes #1097

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-21 09:42:27 -07:00
Jonathon Anderson
8e8349ccd0 Fix newline handling in /etc/issue
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 13:58:19 -07:00
Jonathon Anderson
d6d1e37c83 Merge pull request #1641 from anderbubble/rename-container-node-image
Rename "container" to "image"
2025-01-23 21:45:41 -07: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
57d28c5bc9 Expand nodes when rendering overlay templates
Before #1628, all default constructors for nodes and profiles attempted to
construct objects with pre-populated empty fields (e.g., for pointers to member
structs and for collections that default to nil). Changes to MergeNode in #1629
changed this behavior intentionally to simplify the generation of minimal json;
but this had the unintended side-effect of breaking existing templates that may
now encounter a nil pointer, particularly when accessing member structs.

Introduced here, the Expand() methods on Node and Profile are now responsible
for populating such fields, and Node.Expand() is now called during template
processing.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 04:26:01 -07:00
Jonathon Anderson
dae8d004b3 Use Node literal in MergeNode, not EmptyNode()
EmptyNode populates empty sub-structs, which interferes with omitempty during
serialization.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-18 09:48:26 -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
eff1edd038 Fixing tests in review of #1568
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-17 01:27:15 -07:00
Christian Goll
847d11611b creating exports from resource
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-01-16 23:00:37 -07:00
Christian Goll
77bdfba816 create fstab from resource
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-01-16 23:00:37 -07:00