Commit Graph

125 Commits

Author SHA1 Message Date
Christian Goll
4379c4c18d use grub/shim from host system
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>
2024-01-17 18:02:04 -07:00
Christian Goll
03ef7447e9 copy shim/grub on default profile container change
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-01-17 18:02:04 -07:00
Christian Goll
2fe98e5f55 default profile needs to have a container
Signed-off-by: Christian Goll <cgoll@suse.com>
2024-01-17 18:02:04 -07:00
jason yang
231987ecfc fix a bug when replacing existing containers
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2023-12-12 17:06:28 -07:00
Jonathon Anderson
42842aeee1 Format entire source code using make fmt
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-10-23 17:56:20 -06:00
Christian Goll
3acac6077a Merge pull request #897 from mslacken/EphermalMount
Epehermal container mounts on same fs as chroot
2023-09-13 11:24:06 +02:00
Arnaud LECOMTE
aeb7793fba Switching cp to copy 2023-09-05 14:37:29 +02:00
Arnaud Lecomte
b56f024e6f Core of image's duplication feature 2023-08-25 13:54:39 +02:00
Christian Goll
d3650244f9 Epehermal container mounts on same fs as chroot
Previously ephemeral container mounts were performed in /tmp. Now these
mounts are overlayed on the same fs as is used for chroots.

Signed-off-by: Christian Goll <cgoll@suse.com>
2023-08-17 11:17:17 +02:00
Jonathon Anderson
abd3e21aa0 Fix a typo in container delete confirmation prompt
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-08-08 19:31:02 -06:00
Jonathon Anderson
387cd0f7be Refactor BaseConf Read and Parse
Also refactor New and Get to return pointers to match BaseConf methods.
This makes calling the methods immediately on the return values of the
constructors easier.

Also move config.ConfigFile to buildconfig.go.in. ConfigFile is still
used by wwctl as a default config file to reference; but it is removed
from other locations now.

Removed Persist, as nothing called it.

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2023-04-19 14:02:43 -06:00
Jonathon Anderson
70292276e2 Rename BaseConf.New to BaseConf.Get
Since BaseConf.New could return a cached BaseConf, rather than always
constructing a new struct, I've renamed it to Get to more accurately
reflect its use. A new New() method is called by Get and always
initializes a new struct.

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2023-04-19 14:02:43 -06:00
Jonathon Anderson
c461e65a98 Rename pkg/warewulfconf to pkg/config
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2023-04-19 14:02:43 -06:00
Jonathon Anderson
2319906d97 Fix writing of nodes.conf
The caching functionality of nodes.conf, and the optional persistence
functionality that came with it, appears to have been preventing
actually writing the configuration to disk in all cases. This change
fixes the ability to write to nodes.conf.

Somewhat opinionatedly, this change removes the caching functionality of
nodes.conf. The tests have also been updated to use real files for i/o
rather than tying into the caching system, making them more accurately
test the ability of Warewulf to actually read and write its
configuration.

Fixes #779

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2023-04-14 10:53:31 -06:00
jason yang
db048bfa73 update the main_test to ignore time zone
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2023-04-12 06:26:51 +00:00
jason yang
fd768145a9 add test case for container list
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2023-03-29 12:44:12 +00:00
jason yang
6f200d65a6 Merge branch 'development' into issue/690 2023-03-28 07:09:33 +00:00
jason yang
522c3478fb use tablewriter to format the output
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2023-03-23 02:44:59 +00:00
Christian Goll
8f76b81596 Merge branch 'development' into genconf 2023-03-22 12:06:58 +01:00
Jonathon Anderson
6073354d24 Update documentation to reference ghcr rather than DockerHub
Warewulf sample node images are now built automatically with GitHub CI/CD,
targeting ghcr.io. This updates the documentation to reference that location
rather than DockerHub.

Addresses #732

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2023-03-20 16:09:05 -06:00
Christian Goll
78978ad233 added warewulfconf as command line parameter
the environment variable WAREWULFCONF is also recognized

Signed-off-by: Christian Goll <cgoll@suse.de>
2023-03-03 11:18:49 +01:00
Christian Goll
3eaeac46d2 use canonical os.TempDir 2023-02-03 15:39:00 +01:00
Christian Goll
80687f9475 removed mounts.conf and check of env shell 2023-02-03 15:15:41 +01:00
Christian Goll
05237935eb node option also for shell and respect env $SHELL 2023-01-31 18:05:18 +01:00
Christian Goll
317cd5d4e0 add option for node rendering 2023-01-31 17:45:09 +01:00
Christian Goll
157c3cd923 getting defaults mounts from warewulf.conf 2023-01-31 16:04:08 +01:00
Christian Goll
d82314460f added support for mounts.conf for container exec 2023-01-31 16:04:07 +01:00
Christian Goll
71a3867bbe create temporary dir for overlayfs not in __child 2023-01-31 16:04:07 +01:00
Christian Goll
6d560ac02a create overlayfs for ephermal mount points 2023-01-31 16:04:07 +01:00
Christian Goll
a4202df508 create overlay of missing mount points 2023-01-31 16:04:07 +01:00
Christian Goll
d30d523866 respect read only rootfs for containers 2023-01-31 16:04:07 +01:00
Christian Goll
7ade65c73f cleaned up container exec __child 2023-01-31 16:04:07 +01:00
Christian Goll
5249931ab0 do not call container exec for shell call 2023-01-31 16:04:07 +01:00
Christian Goll
55f61a7c18 pass log level to container exec 2023-01-31 16:03:57 +01:00
Christian Goll
718064e671 add confirmation for wwctl container delete
close #606

Signed-off-by: Christian Goll <cgoll@suse.de>
2022-12-22 15:00:12 +01:00
Christian Goll
0a83dd4508 Merge pull request #579 from brianphan/ww-shell-env-var
Env var to identify when in container shell
2022-12-09 09:53:45 +01:00
Jonathon Anderson
78b857a3e4 Whitespace cleanup
Removes trailing whitespace from all source files.

Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-12-08 18:59:56 -07:00
Brian Phan
b0389e1337 Set WW_CONTAINER_SHELL to Container Name 2022-12-06 09:24:01 -08:00
Brian Phan
7cd8f030ec Use 1 instead of true 2022-11-30 07:23:13 -08:00
Brian Phan
3e8bd09990 Env var to identify when in container shell 2022-11-29 09:15:09 -08:00
Christian Goll
4fe584547b Merge branch 'development' into wwlog-newlines 2022-10-13 14:46:03 +02:00
Christian Goll
fab7e09aeb Merge branch 'development' into container-info2 2022-10-13 10:53:49 +02:00
Christian Goll
396f3238c1 added size of containers 2022-10-13 10:35:17 +02:00
Christian Goll
71bf385cb7 add modifictation and creation date 2022-10-13 10:33:54 +02:00
Jonathon Anderson
4661b02a3d Move "not found" presentation to CLI 2022-09-16 21:56:39 +00:00
Jonathon Anderson
14b45e37c0 Fix output of wwctl container show
Commit d8cd6049 introduced erroneous output coming from an
inner function of container show, and (seemingly) erroneously
replaces valid kernel versions with "not found". This commit
fixes both of those issues, and moves the output to the outer
cli function.
2022-09-16 21:33:49 +00: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
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
Jonathon Anderson
903ba7417e Minor typo fix in syncuser argument description
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
2022-09-08 09:52:17 -06:00
MatthewHink
d8cd6049ac Initial cut of wwapi.
We need an API for Warewulf in order to automate around it. The initial version of the API will look a lot like wwctl. wwctl will call the API so that we do not need to maintain separate code paths. In this preview wwctl calls the API via direct function call, but we can change that to a gprc or REST call to a Warewulf server in the future.

This commit contains:
wwapid WareWulf API Daemon. A grpc server with mTLS auth.
wwapic WareWulf API Client. A grpc client with mTLS auth. It's just a sample that reads the version from the server.
wwapird WareWulf API Rest Daemon. A http REST reverse proxy to wwapid.
There are also sample insecure and secure curls to test with.

Implemented Functionality:
wwctl node add
wwctl node delete
wwctl node list
wwctl node set
wwctl node status
wwctl container build
wwctl container delete
wwctl container import
wwctl container list
wwctl container show

Some notes on the files:

    Logic that was in wwctl has moved to warewulf/internal/pkg/api. wwctl just calls the API. wwctl functionality is unchanged.
    Everything under the /google directory is copied google proto code to stand up wwapird. It's a bit strange to copy in the code, but that is currently how it's done.
    Everything in warewulf/internal/pkg/api/routes/wwapiv1 is generated code.

There are some loose ends here, such as no service installers. I just ran off the command line for development.
The Makefile could use improvement. I'm building by make clean setup proto all build wwapid wwapic wwapird ; echo $?
I copied the configs from warewulf/etc to /usr/local/etc/warewulf manually.
2022-06-24 08:39:30 -07:00