Commit Graph

788 Commits

Author SHA1 Message Date
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
Christian Goll
aec61328fc added failing test for set --onboot 2025-01-15 10:36:22 +01:00
Jonathon Anderson
a18913924d Benchmarking for wwctl overlay build
- Benchmarks overlay build in an environment with 1000 nodes
- Updates testenv to support both benchmarks and tests

To execute:

```
go test github.com/warewulf/warewulf/internal/app/wwctl/overlay/build -bench Benchmark_Overlay_Build
```

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-25 12:34:23 -07: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
8ef063a093 Check ip addresses formatting
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-12-25 09:10:05 -07:00
Jonathon Anderson
83af6021c0 Recast Profiles as a Profile field and support recursion
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-25 09:10:05 -07:00
Jonathon Anderson
deaf9c99d7 Remove DEBUG logging in test suite
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-25 09:10:02 -07:00
Jonathon Anderson
1a3d037703 Refactor GetNode merging with new MergeNode method
- Adds many tests for node+profile merging
- Ensures that tracked fields match mergo results

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-25 09:07:28 -07:00
Jonathon Anderson
c244adc7f6 Performance improvements for overlay build
Rendering overlay templates requires fetching and populating / merging all
other nodes, because overlay templates have access to all cluster node info.
This was previously being done for each template render, but is not being done
once for each render operation and re-used for each template render.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-25 08:48:14 -07:00
Jonathon Anderson
a59403ab3b Parallel overlay builds
- Closes #1018

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-25 08:48:14 -07:00
Jonathon Anderson
d0f4eaa9bb Remove wwctl overlay <build|import> --setdefault
- Closes: #1335

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-24 23:14:12 -07:00
Jonathon Anderson
9c42f3c475 Only import files into site overlays
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
1fb67d666f Avoid creating directories or cloning a site overlay until edit is ready to write
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
0b00233ab7 Move tstruct.Overlay from wwctl to overlay.InitStruct
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
c03dc9436b Add an Overlay type with helper methods
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
ac49ecef70 Rename and refactor overlay constructor functions
- Reduces redundancy
- Adds clarity

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Jonathon Anderson
717241aa18 Add methods to config.New().Paths for site and distribution overlays
- SiteOverlaySourcedir() uses WWOverlaydir (/var/lib/warewulf/overlays)
- DistributionOverlaySourcedir() uses Datadir (/usr/share/warewulf/overlays)
- config.New().Warewulf.DataStore moved to config.New().Paths.Datadir
- FindOverlays() ignores missing distribution overlay directory

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-20 11:12:47 +01:00
Christian Goll
e2c03ce863 added test for precedence
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-12-20 11:12:46 +01:00
Christian Goll
d5fc7e9320 introduce site overlays
site overlays are place in sysconfdir/overlays and take
precedence over distribution overlays with the same name.

Every `wwctl overlay` command changing overlays will create
an site overlay. distribution overlays can't be deleted or
modified with wwctl.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-12-20 11:12:41 +01:00
Jonathon Anderson
a80ba8ee01 Configure nodes.conf path dynamically from config
Removes the use of init() to initialize the variable.

- Closes: #1596
- See also: #1569

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-17 11:04:43 -07:00
Jonathon Anderson
facba28e0f Rename "preferred" kernel to "default" kernel
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-09 10:02:29 +01:00
Jonathon Anderson
6f4d33b19e Move wwctl kernel list to wwctl container kernels
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-12-09 10:02:28 +01: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
Christian Goll
d584c14403 Merge pull request #1564 from anderbubble/issues/1447
Use a sentinel file to determine container readonly state
2024-12-02 09:03:02 +01:00
Jonathon Anderson
07f6402520 Use a sentinel file to determine container readonly state. #1447
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-29 10:37:52 -07:00
Christian Goll
ab0eddea53 Merge pull request #1565 from anderbubble/issues/1419
Remove wwctl overlay build --host
2024-11-28 08:43:05 +01:00
Jonathon Anderson
e098455f7c Fix display of profiles in node list
- Closes #1496

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-25 11:32:03 +01:00
Jonathon Anderson
eace23802f Remove wwctl overlay build --host #1419
Remove the ability to "build" the host overlay with `wwctl overlay
build`. This also obsoletes the `--nodes` flag, which is also removed.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-24 22:48:19 -07:00
Jonathon Anderson
5834b82f93 Format errors in logs as strings
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-23 22:47:48 -07:00
Christian Goll
c0d2e3714c add tag to tags not nettag
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-11-14 17:17:43 -07:00
xu yang
1532547f49 address golang lint issue
Signed-off-by: xu yang <xyang@ciq.com>
2024-11-13 02:08:05 +00:00
Jonathon Anderson
55694e4694 Fix wwctl upgrade config description
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 09:23:41 -07:00
Christian Goll
a05c494638 fix tests after refactor
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-11-11 10:56:30 +01:00
Christian Goll
a9eb4c3e26 Merge pull request #1524 from anderbubble/refactor-node-and-upgrade
Support cross-version upgrades
2024-11-11 10:45:47 +01:00
Xu Yang
0c2fc13a1d fix issue that --neettagdel does not work properly
Signed-off-by: Xu Yang <xyang@ciq.com>
2024-11-11 07:54:05 +00:00
Xu Yang
7f6cfafec9 hotfix failure test suite
Signed-off-by: Xu Yang <xyang@ciq.com>
2024-11-11 07:36:49 +00:00
Jonathon Anderson
ab6c6d2a05 Mark two upgrade arguments as required
Based on TSC feedback.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:09:50 -07:00
Jonathon Anderson
e80c639b11 Convert config to *bool
Supports leaving booleans unspecified in YAML.

Boolean methods allow the templates to continue using previous names for
boolean values.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:09:48 -07:00
Jonathon Anderson
b37d49d6de Support upgrading warewulf.conf
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:09:45 -07:00
Jonathon Anderson
6a1abd52a5 Support printing upgraded nodes.conf
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:09:43 -07:00
Jonathon Anderson
393629321c Optionally replace wwinit and generic overlays during upgrade
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:09:41 -07:00
Jonathon Anderson
981d11a012 Initial wwctl upgrade command
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:09:38 -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
0665d5dc88 Refactor node
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:08:47 -07:00
Christian Goll
e6f5c63c21 Merge pull request #1539 from anderbubble/restore-skipped-tests
Restore skipped tests
2024-11-09 19:49:46 +01:00
Jonathon Anderson
9c3b52b27f Restore skipped tests
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-08 07:12:35 -07:00
Jonathon Anderson
8efec499a2 Revert changes to testenv and fix bmc tests
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-07 23:01:32 -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