Commit Graph

2963 Commits

Author SHA1 Message Date
Jonathon Anderson
73a8ef8e0e Refactor wwctl <node|profile> edit and fix bugs
`wwctl node edit` appears to not be working properly since MergeNode. This
refactor, partly towards #918, resolves the issues with `node edit` and updates
`profile edit` to match.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 13:02:18 -07:00
Jonathon Anderson
adf5c500f0 Merge pull request #1647 from anderbubble/enhanced-field-formatting
Enhancements for node.Field formatting
2025-01-23 21:51:54 -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
Xu YANG
55c2f155b3 Merge pull request #1644 from anderbubble/vscode-recommendations
Linting fixes called-out by vscode
2025-01-24 08:55:47 +09:00
Xu YANG
0400a21e85 Merge pull request #1645 from anderbubble/remove-upgrade-printf
Remove a vestigial printf from wwctl upgrade
2025-01-24 08:53:28 +09:00
Christian Goll
102deb3e43 Merge pull request #1643 from anderbubble/node-profile-expand
Expand nodes when rendering overlay templates
2025-01-23 21:02:16 +01:00
Jonathon Anderson
96396ed47e Merge pull request #1642 from anderbubble/fix-upgrade-nfs-client
Fix a null-pointer bug in `wwctl upgrade config`
2025-01-22 20:07:47 -07:00
Jonathon Anderson
2408555748 Merge pull request #1628 from anderbubble/ciq-merge-fixes
Fixes for MergeNode handling of NetDevs, Tags, IpmiConf, KernelConf, and net.IP
2025-01-21 22:00:06 -07:00
Christian Goll
ad90874797 Merge pull request #1632 from anderbubble/fix-1629
Adjust umask during overlay build
2025-01-21 08:47:42 +01:00
Christian Goll
abc2bd884b Merge pull request #1568 from mslacken/remoteRes
Introduce Resource concept
2025-01-20 11:46:43 +01:00
Jonathon Anderson
a8fab3e844 Enhancements for node.Field formatting
- Complex values are now marshalled as json
- Booleans are now represented as truth values

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 12:55:19 -07:00
Jonathon Anderson
2e057d3a81 Remove a vestigial printf from wwctl upgrade
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 07:24:45 -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
4be3e6db9f Linting fixes called-out by vscode
A few linting issues that were called out by vscode.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 05:26:43 -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
22657fed36 Fix a null-pointer bug in wwctl upgrade config
Also removing some vestigial development-debug output.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-19 00:35:34 -07:00
Jonathon Anderson
c06f558cf4 fixup! Use Node literal in MergeNode, not EmptyNode()
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-18 10:12:08 -07:00
Jonathon Anderson
b50fb3f3ef Fix handling of net.IP during node merge
Because net.IP is derived from []byte, it was being handled by mergo as a
slice. This adds an additional transformer that handles net.IP specifically,
and also watches for this type in field tracking.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-18 10:07:19 -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
f0e634183e Consolidate MergeNode merge behavior to an inner merge function
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-18 09:47:45 -07:00
Jonathon Anderson
e478adc45d Add InterfaceTransformer{} to a Merge call that omitted it
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-18 07:33:11 -07:00
Jonathon Anderson
c33b4dd4c2 Adjust umask during overlay build
- Fixes: #1629

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-17 23:05:13 -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
Christian Goll
c3833b5ba0 Merge pull request #1631 from ResearchIT/dracut-curl-retry
adding retry to curl in wwinit dracut module
2025-01-17 14:32:30 +01: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
Christian Goll
07c77a63d5 use list of resources in profiles/nodes
access the resource not at node or profile level but
in the templates as global variable

Signed-off-by: Christian Goll <cgoll@suse.com>
2025-01-16 23:00:37 -07:00
Christian Goll
5ff27061a3 added remote resources
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-01-16 23:00:37 -07:00
Jonathon Anderson
a36b33dcf8 Merge pull request #1626 from mslacken/FailedSetOnBoot
added failing test for set --onboot
2025-01-15 15:14:54 -07:00
Shane Nehring
e1b3a65129 adding change to CHANGELOG.md
Signed-off-by: Shane Nehring <snehring@iastate.edu>
2025-01-15 14:56:09 -06:00
Shane Nehring
c31c226487 adding retry to curl in wwinit dracut module
Signed-off-by: Shane Nehring <snehring@iastate.edu>
2025-01-15 14:51:24 -06:00
Christian Goll
455d9b65e4 Fix panic ObjectIsEmpty for bool
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-01-15 13:34:45 +01:00
Christian Goll
aec61328fc added failing test for set --onboot 2025-01-15 10:36:22 +01:00
Christian Goll
16269abf62 Merge pull request #1621 from ssimpson89/update-dnsmasq
Update dnsmasq Documentation
2025-01-13 08:49:08 +01:00
Christian Goll
2f1d74142b Merge pull request #1623 from anderbubble/DelProfile
Fix DelProfile to operate on profiles, not nodes.
2025-01-13 08:04:55 +01:00
Stephen Simpson
71d02f0f07 Update dnsmasq Documentation
Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
2025-01-10 17:06:10 -06:00
griznog
5afd548832 Merge pull request #1619 from anderbubble/panic-node-list
Fix a panic introduced by #1598
2025-01-09 14:51:39 -06:00
Jonathon Anderson
ae47fdfcca Merge pull request #1612 from anderbubble/overlay-build-benchmark
Benchmark test for overlay build
2025-01-08 15:22:58 -07:00
Christian Goll
276e67fc54 Merge pull request #1603 from anderbubble/container-build-false
Add wwctl container <exec|shell> --build=false
2025-01-08 20:37:47 +01:00
Jonathon Anderson
1a3b9a16ed Add wwctl container <exec|shell> --build=false
- Closes #1490
- Closes #1489

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-08 20:37:29 +01:00
Christian Goll
ebf53bae22 Merge pull request #1598 from anderbubble/nested-profiles
Support nested profiles
2025-01-08 20:33:42 +01:00
Jonathon Anderson
baf8124186 Merge pull request #1604 from anderbubble/parallel-overlay-build
Parallel and optimized overlay builds
2025-01-08 11:13:01 -07:00
Christian Goll
e64396cfab Merge pull request #1614 from anderbubble/syncuser-help-test
Improve syncuser conflict help text
2025-01-08 15:51:49 +01:00
Jonathon Anderson
74616f578d Improve syncuser conflict help text
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-01-08 15:50:45 +01:00
Christian Goll
f1e587eb23 Merge pull request #1613 from anderbubble/remove-setdefault
Remove `wwctl overlay <build|import> --setdefault`
2025-01-08 15:45:10 +01:00
Christian Goll
ac687a363f Merge pull request #1616 from anderbubble/cpio-error-verbosity
Log cpio errors more prominently
2025-01-08 09:27:50 +01:00
Jonathon Anderson
3bbe859e07 Merge pull request #1609 from ssimpson89/main
Add note in userdoc regarding dracut and machine-id
2025-01-06 15:04:43 -07:00
Stephen Simpson
8af74bdb69 Add machine-id note
This note informs that it may be necessary to remove /etc/machine-id for dracut to properly generate. The nodes will fail to boot otherwise
2025-01-03 16:03:55 -06:00
Jonathon Anderson
86d10a1a0a Update copyright dates
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-30 00:48:00 -07:00