Commit Graph

58 Commits

Author SHA1 Message Date
jason yang
0faada6aae refactor the profile add
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2023-04-12 10:27:44 +00:00
Christian Goll
3367b67b9f added a test for wwctl node add
Signed-off-by: Christian Goll <cgoll@suse.de>
2023-03-07 09:05:29 +01: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
Christian Goll
2016588f36 fallten the Nodes and NodeProfile before write 2022-08-16 17:15:39 +02:00
Christian Goll
8c2d40881d use reflect on overlays 2022-08-10 17:09:10 +02:00
Christian Goll
41d12888ab reflections for unmarshal 2022-08-10 14:16:48 +02:00
Christian Goll
b548d8583d reflection on constructor 2022-08-03 11:28:15 +02:00
Christian Goll
29573e26ad added more values 2022-07-07 11:39:02 +02: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
jcsiadal
9b6b93a5cb Rename default to primary in src
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2022-05-05 03:13:21 +00:00
Christian Goll
e29aea8ae3 using stirng for ipmiwrite storage 2022-04-14 12:50:38 +02:00
Christian Goll
e3b2ca39d8 simplified range expression 2022-04-11 14:51:35 +02:00
Christian Goll
4782d7e726 fixup profile handling 2022-04-11 14:41:43 +02:00
MatthewHink
086401a07c unit test + nil check pointers 2022-04-09 09:19:03 -04:00
Christian Goll
3bbddf4a8c create config entries for profiles 2022-04-08 17:34:52 +02:00
Christian Goll
49bb9a40f0 reserve memory ofr kernel and ipmi entry 2022-04-08 14:47:19 +02:00
Christian Goll
95050a44ce add user defined keys for networks/netdev
Every network in the profile and for the nodes can have induvidual keys values
pairs, called Tags, which are propergated to the templates. So they can be used
for things like MTU size like
  `wwct node set node01 --nettag mtu=9000`
and in in ifcfg.xml.ww
```
{{ if $netdev.Tags.mtu -}}
<mtu> {{ $netdev.Tags.mtu }} </mtu>
{{ end -}}
```
2022-04-06 21:36:17 +02:00
jcsiadal
bd3edb9e7f Udated constructors/mods
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
2022-04-04 16:13:09 +00:00
Christian Goll
c0f7ecf357 store the ovelats as yaml list 2022-03-24 19:45:51 +01:00
Christian Goll
5ac75661c9 Only write to IPMI if this is explictly wanted 2022-03-02 21:24:05 +01:00
Gregory Kurtzer
1203186194 Support kernel overrides from the host or other containers 2022-02-17 07:37:04 +00:00
Gregory Kurtzer
104bc7527d Restored deleted kernel components for overrides 2022-02-17 06:21:40 +00:00
Gregory Kurtzer
5a0c13225e Utilize containerized kernel and remove kernel Support 2022-02-15 06:49:24 +00:00
Gregory Kurtzer
49150c172e Reverse compatibility for keys to tags 2022-02-11 15:36:38 +00:00
Gregory Kurtzer
ffaf794a42 Changed "key" paramaters to tags and cleaned up interface 2022-02-11 05:52:46 +00:00
Gregory Kurtzer
b165928699 Change how boolean node members behave (transform two and from strings) 2022-02-10 16:36:14 +00:00
Gregory Kurtzer
d9c13c3f36 Initial commit of asset key tag security check 2022-01-24 00:32:02 +00:00
Gregory Kurtzer
9f53bca1bf Various fixes found in testing 2021-12-29 17:16:53 -08:00
Gregory Kurtzer
1370932cd3 Introduction of netname functionality for network devices 2021-10-23 07:12:57 -07:00
Gregory Kurtzer
c60be743ba Update sources to use upstream errors package 2021-09-06 14:50:27 -07:00
Michael L. Young
13ad67e56e Add IPMI Port Configuration
This commit adds the ability to configure the default IPMI port for a
profile or per node. If the port is not set, we default to 623.

Updated some areas to default to 'lan' for IPMI interface if it has not
been set.
2021-08-24 19:11:39 -04:00
Gregory Kurtzer
a82e1b0ea5 Fixed formatting across entire project 2021-08-21 08:04:47 -07:00
Christian Goll
c6b2fc5795 added configureable ipmiinterface used by ipmitool
ipmitool is now searched from $PATH, so that self
compiled ipmitool can be used
2021-08-06 09:22:31 +02:00
Niko Kivel
17f26e8bf1 Params-->Keys 2021-05-11 08:45:09 +02:00
Niko Kivel
54b2164c4e custom paramters 2021-05-10 00:12:13 +02:00
Niko Kivel
dd4c075f50 paramters in node 2021-05-08 19:04:37 +02:00
Gregory Kurtzer
5e53ff1b7d Remove useless "Disable" (ref #40) 2021-04-25 13:41:21 -07:00
Gregory Kurtzer
3e0d48762e code cleanups 2021-04-24 15:00:54 -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
e5be3d8182 Cleaned init subsystem, Ipmi, SELinux, added Root option, and fixed defaults 2020-12-20 22:41:02 -08:00
Shannon V. Davidson
cb8336be8c Merge branch 'main' of github.com:ctrliq/warewulf into main 2020-12-14 09:14:19 -06:00
Gregory Kurtzer
5c23ef9f94 Fininshed with node discovery and service refactoring 2020-12-13 20:20:03 -08:00
Shannon V. Davidson
643a69b75b Added IpmiGateway in case of separate BMC and control network 2020-12-10 09:52:22 -06:00
Gregory Kurtzer
5c995f9d0f Added Init to datastructure, fixups to container interface, and --setdefault to kernel and container build 2020-12-06 22:29:25 -08:00
Gregory Kurtzer
8c11c2b304 Renamed vnfs to container, finished VNFS and kernel refactoring 2020-12-06 00:47:00 -08:00
Gregory Kurtzer
e80878b240 Changed DomainName to ClusterName 2020-12-03 19:37:52 -08:00
Gregory Kurtzer
ec037228cc Changing node.conf structure and moved controllers out of this config 2020-12-03 17:26:51 -08:00
Gregory Kurtzer
84bf9fbb43 profile and node commands and DB all working as expected now 2020-12-03 13:49:49 -08:00
Gregory Kurtzer
eaf6bb1196 This is a work in progress API shift as the data structure has changed and I'm cleaning the interface. 2020-12-03 07:34:26 -08:00