Commit Graph

76 Commits

Author SHA1 Message Date
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
Gregory Kurtzer
8717b91938 Avoid container build if exit non-zero 2022-05-25 14:46:16 -07:00
Carter Dodd
a36467b2a8 Merge upstream 2022-05-13 19:42:18 -05:00
Carter Dodd
379faad51d Refactor of server, logging, building of images, template updates
* Combine provision response handling, add hwaddr and interface to dhcp
* Simplify stage cases, add backward compatible uri parse
* Move control of image compression to client
* Fix kernel search path for ubuntu, buffer template generation
* Implement cpio and gz as functions, add log named functions
* Generalize fs image creation routine
* Combine daemonLogf to generalized wwlog
* Fix template newline insertion, update dhcp and hosts tmpl
* Update IPXE template to handle non-compressed files
* Update DHCP template to set network interfaces and server IP assignment
* Update DHCP/hosts templates to choose a host-name self-consistently
2022-05-13 16:52:59 -05:00
Christian Goll
2efcbe0348 syncucer will only write witrh syncuser switch
uid/gid are not synced at container import but checked. An apropriate
message is printed, regarding users which are not present on host.
The `wwctl container syncuser` needs the `--write` switch to actually
write to the container.

The command `wwctl container syncuser` will always operate at the
container level, but as the 'generic` overlay reads in the container
passwd/group, following two steps will update the passwd/group on a
running cluster:
1. Add passwd/group to container
wwctl container syncuser --write CONTAINER
2. Synchronize overlay
wwctl overlay build -N
2022-05-12 11:18:53 +02:00
Gregory M. Kurtzer
9cefa32198 Merge pull request #415 from gmkurtzer/minor_fixups_for_4.3.0
Minor fix ups for 4.3.0
2022-05-03 22:24:44 -07:00
Gregory Kurtzer
60b586b69a Don't do SyncUids by default always 2022-05-03 21:52:13 -07:00
Christian Goll
1a61b53bb2 container show prints kernel version 2022-05-03 10:27:56 +02:00
Christian Goll
ca698182f9 direct file is now also suppored 2022-04-14 14:45:23 +02:00
Christian Goll
18e2147953 added file uri pattern for container import 2022-04-14 14:25:22 +02:00
Christian Goll
7e42286610 fixed linting 2022-04-07 11:35:34 +02:00
Christian Goll
2567246067 fixed linting 2022-04-06 21:44:00 +02:00
Christian Goll
db2dcbfbe2 will always run syncuids on exec and import 2022-04-06 21:44:00 +02:00
Christian Goll
61eae386af Just check syncuids on default 2022-04-06 21:44:00 +02:00
Christian Goll
5fb10130f3 check for modifcation of passwd/group after exec 2022-04-06 21:44:00 +02:00
Christian Goll
23ba9ca61a fixed linting 2022-04-06 21:44:00 +02:00
Christian Goll
8c7fd7d140 basic function comparing uids of host/container 2022-04-06 21:44:00 +02:00
Gregory Kurtzer
b60cacbd0f Revert "removed unused container child"
This reverts commit 30bc445a89.
2022-03-02 19:53:10 -08:00
Christian Goll
30bc445a89 removed unused container child 2022-03-02 15:39:47 +01:00
Gregory M. Kurtzer
88832420ca Merge pull request #306 from gmkurtzer/container_kernel_integration
Utilize containerized kernel by default
2022-02-27 18:03:25 -08:00
Gregory Kurtzer
93bcd14e0d Added a debugging comment 2022-02-24 22:01:06 -08:00
Gregory Kurtzer
a6c793caca Fixes for kernel identification within the container 2022-02-16 04:48:17 +00:00
Gregory Kurtzer
5a0c13225e Utilize containerized kernel and remove kernel Support 2022-02-15 06:49:24 +00:00
Gregory Kurtzer
2260be9f8f Working implemnetation of #271 2022-02-13 04:22:12 +00:00
Gregory M. Kurtzer
486e0079c6 Merge pull request #271 from mslacken/run-exec-exit
execute './.ww4/runExit` on exit of container exec
2022-02-12 19:31:40 -08:00
Christian Goll
10fdacee77 added wwctl container shell 2022-02-09 10:54:57 +01:00
Christian Goll
100cfe6a13 finaly added /usr/bin/bash as default to cnt exec 2022-02-04 11:06:27 +01:00
Christian Goll
df127b179d q 2022-02-03 09:59:24 +01:00
Christian Goll
bb4c33e024 Merge pull request #272 from mslacken/container-info
container info
2022-02-02 21:17:57 +01:00
Christian Goll
e57ea10df5 fix index 2022-02-01 16:36:39 +01:00
Christian Goll
099ad67719 Add to base conainer cmd 2022-02-01 16:09:16 +01:00
Christian Goll
be70ee6952 Add wwctl container show 2022-02-01 15:59:34 +01:00
Christian Goll
ad87ba7647 execute './.ww4/runExit` on exeit of container exec 2022-01-31 17:20:24 +01:00
Christian Goll
9d80a71cd8 will exec /usr/bin/bash if no cmd is provided 2022-01-31 17:06:56 +01:00
MatthewHink
cf090823a3 Fix container build --all. #215.
We didn't need to add an arg check here because it's already there.
2022-01-27 15:30:36 -05:00
Christian Goll
b426482d82 need valid url or dir to import something 2022-01-18 15:46:01 +01:00
jcsiadal
a1619e2d03 Fix misspelled command
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2021-12-04 01:47:14 +00:00
jcsiadal
0b93d6c277 Update help
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2021-11-08 11:36:21 -08:00
Christian Goll
8010cd2435 dynamic nouns for 'wwwctl container' 2021-09-24 14:36:23 +02:00
Michael L. Young
0020d529b9 Fix panic when failing to include the command to be run by the
'container exec' command.

Update documentation for the 'container exec' command.
2021-09-20 16:57:01 -04:00
Gregory Kurtzer
e679fa24fa Cleanup container list command 2021-09-11 21:23:30 -07:00
Gregory M. Kurtzer
4b5e3fd6eb Merge pull request #117 from WestleyK/remove_commented_code
Remove commented test code
2021-09-08 16:12:09 -07:00
WestleyR
cab2d4a316 Remove commented test code
Seems to be extra test code from
09a83ff904.
2021-09-08 14:12:20 -07:00
Gregory Kurtzer
84c0c72219 MS_REC added to MS_PRIVATE mount on root 2021-09-08 11:52:22 -07:00
Gregory Kurtzer
09a83ff904 Container exec fixups 2021-09-08 11:40:14 -07:00
WestleyR
4edc16953e Fix linting issues 2021-09-07 20:48:51 -07:00
Gregory Kurtzer
4c8edc16fe Changed API name to valid path 2021-09-02 15:34:19 -07:00
Gregory Kurtzer
ed64386b8b remove debug print 2021-09-01 21:20:50 -07:00
Gregory Kurtzer
caf9f4b80f Have more intelligence on splitting bind paths 2021-09-01 21:13:46 -07:00
Gregory Kurtzer
198791fb10 add default and sane path to container exec 2021-09-01 19:26:38 -07:00