Building off the work in #581, add additional detail to the staticfiles
README, and install an iPXE README alongside the iPXE files in their
final location.
Closes#189
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
Makefile was checking WWCONFIGDIR in some places. In others it was
duplicating the explicit paths that make up WWCONFIGDIR. Here, update
all such references to always use the WWCONFIGDIR macro.
Signed-off-by: Jonathon Anderson <janderson@ciq.co>
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.
* 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
If there is a user writeable file in the host overlay, a user can
create arbitrary files on the host root file system. Although these
files will belong to this user, this might allow users to modify
any files.
So this patch restricts the access to the host overlay to root and
produces a warning if this was changed.
`$(DESTDIR)$(WWDATADIR)/ipxe` was file.
This cause a problem when copying *.efi files to `$(DESTDIR)$(WWDATADIR)/ipxe`.
This commit makes `$(DESTDIR)$(WWDATADIR)/ipxe` to be directory from file.
- Support relocating client files at build time (required for LSB compliant nodes)
- OS varable added to perform some make choices
- Saving and exporting the Makefile vars now scripted using list of variables
- Updated specfile to match RH and SUSE requirements and guidelines
- Moved /usr/local/var to /var/local; dynamic files shall not use /usr.
- State files use %sharedstatedir for path (std for SLE and RHEL)
- Release value adjusted to meet different DEB and RPM reqs.
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>