- 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>
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>
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>
- 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>
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>
- Always run in the foreground
- Always log to stdout/err (unless syslog is requested)
- Update systemd to reload with a direct signal
- Omit any pidfile for "warewulfd"
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
- make sure spec sets new cache dir
- move clean out of api
- capture warewulfconf.Paths.Cachedir+"/warewulf" in once place
- split Clean() into multiple functions
- remove WriteFileAbs
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
introduced wwbool and don't export
Nodes and NodeConfs. This requires new
explict Yaml (un)marshaling as the standard
marshaller won't touch these fields
Signed-off-by: Christian Goll <cgoll@suse.com>
This is a significant change in the undelying data model!
nodeDb, err := node.New()
will result in a structure which contains the on disk
values. Only
nodeDb.FindAllNodes() or nodeDb.GetNode(id) will give
the nodes with its merged in profiles.
Signed-off-by: Christian Goll <cgoll@suse.com>
Following #1249, autobuilt overlays were being built with no contents.
This change follows the pattern in `wwctl overlay build` to include configured
overlays when none are explicitly specified.
Inspired by #1296.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
dracut.ipxe boots an initramfs detected in the container image. This
required a few small changes to warewulfd and the wwinit overlay to
accommodate the dracut initramfs configuring the network interface
before wwinit:
- Include .NetDevs in the ipxe configuration template, so that dracut
can configure interfaces with the correct names.
- Configure NetworkManager to not keep the initramfs configuration, in
stead applying the configuration found by wwinit.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
The initramfs stage supports serving an initramfs image from within the
container image, typically generated by dracut.
Signed-off-by: xu yang <xyang@ciq.com>
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
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>
Also the boot method is now configured globaly as this is
the only way to make sure that unkonwn nodes get the right
stuff
Signed-off-by: Christian Goll <cgoll@suse.com>
As part of reviewing this PR, I expanded the test definitions to make it
easier to discern the intent of each test at a glance. In so doing I
understood most tests behaving as normal, but I did make a few small
changes:
- Some tests no longer produce any errors, so remove this variable from
the test definitions.
- Replace comma-separated overlay definitions with explicit slices.
Splitting comma-separated strings led to erroneous behavior where a
null overlay list was processed as a single null overlay rather than
an empty slice.
Signed-off-by: Jonathon Anderson <janderson@ciq.com>