Commit Graph

826 Commits

Author SHA1 Message Date
xu yang
d59ace3792 Change the permission of overlay dir to and generated overlays to
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-27 11:48:44 -06:00
Christian Goll
132869f8b3 Merge pull request #1306 from anderbubble/split-test-overlays
Split overlays into discrete functionality and test
2024-09-27 14:59:37 +02:00
Christian Goll
883de9c4fc no panic if listing non existing container image
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-09-26 18:22:36 -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
xu yang
3f120f2c4b Return non-zero exit code on node sub-commands
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-26 06:15:02 +00:00
xu yang
94e203dd2e return non-zero exit code on container sub-commands
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-25 08:50:50 +00:00
Jonathon Anderson
15aa081dd1 Move restoration of old umask to a defer
Suggested in comment on PR #941

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-21 22:42:51 -06:00
Christian Goll
a8658c226f emsure that .Paths.Tftpdir."warewulf" is 0755
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-09-21 22:41:08 -06:00
Christian Goll
9a28b2d7fb copy.DirCopy is internal and needs Init
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-09-21 22:12:57 -06:00
Jonathon Anderson
75224bc9ba Merge pull request #1400 from JasonYangShadow/issue/1332
fix autodetected kernel sorting
2024-09-20 17:45:17 -06:00
xu yang
1f492dfed5 Add flag --build to wwctl container copy, default false
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-20 17:31:17 -06:00
xu yang
31c980f731 fix autodetected kernel sorting
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-19 15:13:52 -06:00
xu yang
5492ac0107 Return an error during wwctl container import if archive filename contains a colon
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-14 22:18:01 -06:00
Jonathon Anderson
9e91b1c19a Rename :cow to :copy
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-09 11:09:10 +02:00
Christian Goll
dc263425e2 Added cow option to bind
The option cow can now be set for files which are then
mounted during exec, but copied into the image and removed
if not modified.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-09-09 11:09:04 +02:00
Jonathon Anderson
d05414436a Additional guidance when syncuser conflicts
- Closes #1359

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-06 14:03:15 -06:00
Jonathon Anderson
4a5c1cad12 Simplified slice ordering fix and extended for runtime overlay
- Extends #1357
- Fixes #1259

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-04 19:59:59 -06:00
xu yang
cc617007cd prefer profile overlay value over node one
Signed-off-by: xu yang <xyang@ciq.com>
2024-09-04 17:10:49 -06:00
Christian Goll
13349bbf66 adding WAREWULF_OCI vars to wwctl
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-09-04 20:52:43 +02:00
Jonathon Anderson
0b6785f722 Remove specific guidance from wwctl error messages
Guidance to run `wwctl configure dhcp` or `wwctl configure tftp` may be
misleading for sites that are managing these services directly. They are
also too specific, as simply re-running `wwctl configure -a` after
enabling them in the config should also be sufficient.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-09-03 19:40:59 -06:00
xu yang
6212f40e4c Refine wwctl configure error handling
- Closes #1273

Signed-off-by: xu yang <xyang@ciq.com>
2024-09-03 19:40:28 -06:00
Tobias Poschwatta
b4e1b9cb24 Fix typo in "profile with name ... already exists" message
Signed-off-by: Tobias Poschwatta <poschwatta@zib.de>
2024-08-30 11:45:43 +02:00
Christian Goll
553e401fe0 enhanced container list
Container list has now options for full, kernel and size listing. Without any
arguments only available containers are listed. Size is no more fine granular
showing also size of the image, chroot and compressed image

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-08-02 16:34:54 -06:00
Christian Goll
6f5f6f07ee removed dead boot method from defaults.conf
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-08-02 14:32:29 -06:00
Tobias Poschwatta
971d9e2118 Add option for wwclient port number
With this change, you can specify a port number for wwclient.
If

  wwclient:
    port: NUMBER

is specified in warewulf.conf, wwclient will bind to the specified local
port NUMBER. If no port is specified, wwclient will use any available
port, or port 987 if secure is true.

Port 987 is in the default port range used by the Linux NFS client
(665-1023, see linux/include/linux/sunrpc/xprtsock.h). Changing
the port can avoid failures when port 987 is already in use.

Signed-off-by: Tobias Poschwatta <poschwatta@zib.de>
2024-08-02 11:09:16 +02:00
Jonathon Anderson
9050622f68 Ensure autobuilt overlays include contextual overlay contents.
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>
2024-07-10 16:06:06 -04:00
David McFarlane
5bb73c90c5 Accept + within kernel versions 2024-07-05 15:29:50 -06:00
Christian Goll
2dfd28cb6c Add tests for kernel versions containing +
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-07-05 15:29:37 -06:00
Jonathon Anderson
0b765d242a Extend new syncuser handling for +/- entries
Since these lines are being omitted in the final sync'd passwd/group
file, a new message indicates that the line is being skipped; but it is
no longer denoted as a parse error.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-07-04 23:54:46 -06:00
Christian Goll
ba3c24e1c3 ignore +:: style lines in passwd/group
The lines +::::: or +::: are used in passwd/group as
placeholer for users added form the network via ldap/nis/sssd.
These lines should not trigger a warning.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-07-04 23:54:46 -06:00
Jonathon Anderson
75d9ac5fb2 Capture "broken" symlinks during container build
- Fixes #1267

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-07-01 17:12:25 -06:00
xu yang
170d03e751 fix the issue that system/runtime overlays are not auto-rebuilt
Signed-off-by: xu yang <xyang@ciq.com>
2024-06-19 09:31:32 +00:00
Tobias Ribizel
faacb1cc4e Add test for FindFilterFiles
Signed-off-by: Tobias Ribizel <mail@ribizel.de>
2024-06-17 00:01:14 +02:00
Tobias Ribizel
a6a0538f42 Fix FindFilterFiles
There are two bugs in the handling of exclusion patterns:
- The paths being checked against patterns are relative,
  so leading / need to be stripped
- filepath.Match only does a string comparison,
  and the paths we traverse don't include trailing /

Signed-off-by: Tobias Ribizel <mail@ribizel.de>
2024-06-17 00:01:04 +02:00
Jonathon Anderson
5bb13c8baf Fix regression in container exec argument parsing
- Fixes #1250

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-11 23:57:58 -06:00
Jonathon Anderson
2c5e079d33 Refactor overlayDir to container.RunDir()
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-07 14:18:19 -06:00
Christian Goll
0eba837950 use warewulf.conf from parent on child
The directories for the overlays needed for the bind
mount are now created under conf.Paths.WWChrootdir/$CONTAINERNAME
with the pattern $CONTAINERNAME-run-xxxxxx. This pattern can be
used as lock, so that there can't be congruent shell/exec calls
to the same container.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-06-06 16:46:10 -04:00
Jonathon Anderson
05b951d78d Support dracut booting with GRUB
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-06 16:34:53 -04:00
xu yang
48d6b63030 Add tests for new iPXE template variables
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-06 03:20:12 -04:00
Jonathon Anderson
53dae60e20 New, optional dracut.ipxe configuration
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>
2024-06-06 03:20:09 -04:00
xu yang
a322061fe9 Add initramfs stage to warewulfd
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>
2024-06-06 03:14:21 -04:00
Jonathon Anderson
6b8ca378d8 Refactor syncuser to reduce walking the container fs
- Closes #1209

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-06-03 19:18:25 -06:00
Xu Yang
b3d8f9ccc5 add CIDR format to warewulf.conf parse
Signed-off-by: Xu Yang <xyang@ciq.com>
2024-05-31 23:36:35 -06:00
David McFarlane
41535cb8f9 Also prevent provisioning arbitrary overlays in secure mode
Signed-off-by: David McFarlane <54093156+Prepultrue@users.noreply.github.com>
2024-05-08 11:37:20 +10:00
Jonathon Anderson
7046c6dc8c Use the first configured ssh key type for authn
Previously, the authentication key was always generated using rsa. Now
it uses the first configured ssh key type.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-05-01 14:27:39 -06:00
Christian Goll
21150d2975 make created ssh keys configureable
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-05-01 14:27:39 -06:00
Christian Goll
ad6699c110 allow the user to specify ssh key types
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-05-01 14:27:36 -06:00
Jonathon Anderson
03aae1a1d9 Fix parsing of /etc/group during syncuser
- Closes #1202

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-04-30 23:27:06 -06:00
Jonathon Anderson
addde549ff Only walk the filesystem during syncuser if writing
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2024-04-25 14:42:56 -06:00
Christian Goll
76a40f1364 Entry is aware if its ment as a slice or not
This is needed for printing out the values, as at this part in the
code there is no access to the NodeConf and only there the information
if the Entry is ment as a slice or not is available.

Signed-off-by: Christian Goll <cgoll@suse.com>
2024-04-19 22:28:05 -06:00