Commit Graph

49 Commits

Author SHA1 Message Date
Jonathon Anderson
4862d44aad Make .ww suffix optional during wwctl overlay show --render
- Closes: #649

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-11 10:14:18 -07:00
Jonathon Anderson
eff5565886 wwctl overlay args and completions
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-09 16:13:53 -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
4f83885c5b Show each overlay only once #1675
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-02-01 13:40:12 +01: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
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
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
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
a7325b6ffa Remove WW_INTERNAL
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-11-11 00:08:54 -07:00
xu yang
97c6772e51 Return non-zero exit code on overlay sub-commands
Signed-off-by: xu yang <xyang@ciq.com>
2024-10-30 20:51:44 -06:00
Jonathon Anderson
6460ca827a Remove debug output from a test
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-10-17 15:39:59 -04:00
Christian Goll
0c6e7cc58a fixes for split overlays
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-10-17 15:39:54 -04:00
Christian Goll
ac6cd69ca6 fix test to run without NodeInfo
Also removed --fullall from node list and profile list

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-10-17 15:30:47 -04:00
Christian Goll
457c7c16b1 wwctl commands without NodeInfo
mostly remove Get and calls for the id

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-10-17 13:35:42 -04:00
Jonathon Anderson
cac6ae1cd0 Fix wwlog.Output format strings during overlay show
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-26 10:48:40 -06:00
Jonathon Anderson
053dd9953a Split overlays into discrete functionality and test
- Closes #987

To make the overlays testable in isolation, and after discussion with
the TSC, removed host/time/source from overlay files.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-26 10:48:38 -06:00
Jonathon Anderson
f39972f917 Prevent overlays from being improperly used as format strings
`wwctl overlay show --render` shows the rendered overlay with
`wwlog.Info`, but that caused it to be processed as a format string.
This passes an explicit format string first, and then includes the
rendered overlay as a variable to the formatter.

- Fixes #1363

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-06 15:01:49 +02:00
Christian Goll
5c23a4cdde added {{ .Overlay }} to templates
{{ .Overlay }} contains the overlay name in which the template is
located, or an empty string if RenderTempalte is called outside the
warewulf overlay tree.

- Closes #1052

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-04-17 21:40:32 -06:00
Xu Yang
2d1a39a3ee add support for rendering host tempalte
Signed-off-by: Xu Yang <xyang@ciq.com>
2024-03-25 00:55:35 -06: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
Jonathon Anderson
a1832ad8c1 Complete transfer of Warewulf from HPCng
Warewulf is now being maintained in its own GitHub organization at
github.com/warewulf

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-01-26 21:35:04 -07:00
Jonathon Anderson
c8604bc200 Remove testenv.WriteFileAbs
Writing absolute file names in testenv breaks safety that files in the
test environment are written to the designated temporary path. Adjusted
the relevant tests to use testenv.WriteFile.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-11-25 23:54:44 -07:00
Christian Goll
5d25b3a4a6 added explicit tests for overlay commands
Signed-off-by: Christian Goll <cgoll@suse.com>
2023-11-25 01:54:02 -07:00
Christian Goll
ff7608251a advanced command line completion for wwctl overlay
Signed-off-by: Christian Goll <cgoll@suse.com>
2023-09-13 12:03:43 +02:00
Christian Goll
a7df560a30 Add json output for ignition
Signed-off-by: Christian Goll <cgoll@suse.com>
2023-08-21 16:19:13 -06:00
mslacken
ab0ee87629 updated linter and fixed deprecated stuff 2022-10-14 17:40:16 +02:00
Jonathon Anderson
0b3e862bea Remove trailing newline from wwlog
I noticed that some wwlog calls included a trailing newline, but others
did not. I tested both in isolation and discovered that the behavior was
consistent regardless of whether a trailing newline was included. I
further confirmed in code that wwlog appends a trailing newline
automatically if it is not present; so a trailing newline is unnecessary
in individual calls.

This commit removes trailing newlines from all calls to make them
consistent. It also replaces two calls to wwlog.Printf. (see #534)

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-09-15 12:38:03 -06:00
Jonathon Anderson
fd2fa9c027 Fix argument handling for overlay show rendering
Error logging for overlay show rendering incorrectly checked
the overlay name rather than the path to the file. It also
used wwlog (which goes to stderr) to output the render. This
commit replaces explicit args[] references with their named
equivalents from earlier in the function, correcting those
references along the way, and outputs the final render with
fmt.Print.
2022-09-16 22:39:51 +00:00
Jonathon Anderson
22910958b5 Replace all instances of wwlog.Printf
wwlog provides named loggers for each level, which requires
less code and is clearer than wwlog.Printf. The code has
included a mix of both, but this commit consolidates existing
code on the per-level functions.

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-09-11 08:00:23 -06:00
Christian Goll
95e03b3df4 get arguments for show --render right 2022-06-08 15:56:10 +02:00
Christian Goll
69c058f106 added bash completion for overlay commands 2022-06-08 15:49:55 +02:00
Christian Goll
53667157c5 parse not own command but show --render 2022-06-08 15:36:20 +02:00
Gregory Kurtzer
00d8d42e9d First pass at a rework of the overlay subsystem in Warewulf 2021-12-29 16:11:25 -08:00
jcsiadal
0b93d6c277 Update help
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2021-11-08 11:36:21 -08:00
jcsiadal
de2c882ba1 Replace HTML in help
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2021-10-28 17:48:16 -07:00
Gregory Kurtzer
3137f477bf UI updates to include "overlay kind" 2021-09-13 13:28:44 -07:00
WestleyR
4edc16953e Fix linting issues 2021-09-07 20:48:51 -07:00
Ian Kaneshiro
846b45524c Tidy up
- Ran goimports to format code and imports
- Removed unused module from go.mod
- Added .editorconfig to keep formatting standard across contributors
2021-02-16 11:54:12 -08:00
Gregory Kurtzer
72b1d8c9d8 UI Updates with a few minor fixups scattered here and there 2021-01-14 20:23:42 -08:00
Gregory Kurtzer
6cbaa29fbd Fixes for new API 2020-12-03 17:28:28 -08:00
Gregory Kurtzer
f87708784d Minor cleanups and fleshed out the wwctl overlay show command 2020-11-19 16:56:22 -08:00
Gregory Kurtzer
85603ee947 Lots of changes including: wwctl overlay list and framework for other commands 2020-11-16 21:37:55 -08:00
Gregory Kurtzer
c39257a7ff Added some Cobra framework for new command groups as I'm thinking through the interface. 2020-11-13 21:29:22 -08:00