Commit Graph

195 Commits

Author SHA1 Message Date
Jonathon Anderson
4d7a86a901 More fixes for snyk reports
- Update golang to v1.25.5 to address as many CVEs as possible
- Fix more instances of path traversal vulnerabilities

Can't go beyond v1.25.5 right now because that's what OpenHPC is using to build
for openEuler.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-30 11:20:32 +02:00
Jonathon Anderson
c2cfe513d7 Remove remaining gRPC references with additional tests
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-23 06:54:44 -06:00
Jonathon Anderson
3c895dd941 Refactor gRPC-based image functions
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-22 01:02:03 -06:00
Christian Goll
8a03a7d6dd Merge pull request #2131 from anderbubble/docs-omnibus
Documentation improvements omnibus
2026-03-19 09:06:40 +01:00
Jonathon Anderson
c211529689 Update wwctl upgrade to manage TLS configuration
Also fixed an omission for API configuration in wwctl upgrade.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-18 21:36:43 -06:00
Jonathon Anderson
9e526c23fc Audit and correct documentation, cobra help text, and log messages for accuracy
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-18 16:58:39 -06:00
Jonathon Anderson
7909598a3d Distinguish between OS images and overlay images in documentation
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-18 08:10:49 -06:00
Jonathon Anderson
5f41465fac Prevent assetkey from leaking into wwclient logs
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-11 10:32:47 +01:00
Christian Goll
82b7cf9095 Adress linter issues from TLS update 2026-03-11 10:15:06 +01:00
Jonathon Anderson
081d2ec61e Update linter for golang v1.25 compatibility
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-11 09:32:49 +01:00
Jonathon Anderson
9a3533237f Address snyk and dependabot issues
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-11 09:29:45 +01:00
Jonathon Anderson
939f4290f4 Move stage display formatting to wwctl
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-10 16:11:09 -06:00
Jonathon Anderson
abc5f0f0b9 Add doc comments to server code
Points to userdocs/server/routes.rst for more information.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-10 15:35:44 -06:00
Jonathon Anderson
5147d0970e Simplify warewulfd parser
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-10 15:17:40 -06:00
Jonathon Anderson
395fa2c283 Support requiring TLS for API access
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:48:20 -06:00
Jonathon Anderson
779434331c Add GRUB config route, tests, and server route documentation
- Add /grub/{hwaddr} route for serving GRUB configuration files,
  replacing the shim handler with a config-based approach
- Add short URL aliases: 'system' for overlay-system, 'runtime' for
  overlay-runtime, and 'grub' stage in parser
- Add 'grub' to status stage tracking in request handling
- Add comprehensive test coverage for EFI, GRUB, initramfs, iPXE,
  overlay, and provision handlers (efi_test.go, grub_test.go,
  initramfs_test.go, ipxe_test.go, overlay_test.go)
- Expand existing parser and provision tests
- Remove shim.go (functionality folded into grub.go)
- Add userdocs/server/routes.rst documenting all warewulfd HTTP routes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:48:14 -06:00
Jonathon Anderson
a886b4958b Simplify and clarify configuration
- changed "secure port" to "tls port"
- removed the --create flag for "wwctl configure tls"; made it the default behavior
- fixed a TLS creation bug in "wwctl configure --all"
- added logging to "wwctl configure tls" and "wwctl configure --all" (for the tls case)

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:42:26 -06:00
Jonathon Anderson
6ce3d33f50 Move TLS check into HandleRuntimeOverlay
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:42:26 -06:00
Jonathon Anderson
91723a258a Refactor server to separate handlers
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:42:18 -06:00
Jonathon Anderson
ced93bcc5a Rename .Https template variable to .TLS
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:35:19 -06:00
Jonathon Anderson
3d5aa6b0e3 Better TLS configuration error handling in warewulf server
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:35:19 -06:00
Jonathon Anderson
dc21302f32 Warn when server starts with TLS enabled but no key available
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:35:19 -06:00
Jonathon Anderson
673d7627b5 Move TLS files from keys/ to tls/
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:35:19 -06:00
Jonathon Anderson
0eaaf66883 Pass TLS variable to iPXE template
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2026-03-09 21:35:19 -06:00
Christian Goll
bcf53f7efd renamed to tls instead of keys 2026-03-09 21:34:40 -06:00
Christian Goll
04c54f1907 only server runtime over https if enabled
server fix
2026-03-09 21:34:40 -06:00
Christian Goll
a1c11db8cc enable https and key handling
- add key generation and import for warewulfd
- add https port to warewulfd
- configuration optiions for port and

keys
2026-03-09 21:34:40 -06:00
Cédric Clerget
9f2ab5168d Return HTTP 409 status when creating an existing overlay
Signed-off-by: Cédric Clerget <cedric.clerget@gmail.com>
2026-01-14 13:58:12 -07:00
Timothy Middelkoop
4f58845a9e Add IPv6 support for Dnsmasq and NetworkManager
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-11-27 01:56:18 +00:00
Cédric Clerget
718c79c7ca Fix ImageDelete API not returning error when checking if image is used by nodes/profiles
Signed-off-by: Cédric Clerget <cedric.clerget@gmail.com>
2025-10-27 16:41:15 -05:00
Jonathon Anderson
66450a7dcd Simpler names for overlay methods
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-27 22:33:18 -06:00
Jonathon Anderson
6fd858899d Fix warewulfd api behavior when deleting distribution overlay
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-27 22:25:21 -06:00
Jonathon Anderson
e609c599a1 Address feedback from Copilot
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-08-27 22:25:21 -06:00
Christian Goll
6f4fd60d8f refactored overlay class
overlay.GetOverlay(name) returns now an error if the overlay doesn't
exist. This is the most canonical way to act if there is no overlay.
2025-08-27 22:24:31 -06:00
Dacian Reece-Stremtan
efd63aecd4 IPv6 iPXE support
* Parse address and port with netip w/ tests
* Add Authority to provisioning templates based on remote IP family
  (name based on RFC 3986)
* Add IPv6 support to the default iPXE (tested)
* Update `grub.cfg.ww` to use Authority (untested)

Co-authored-by: Dacian Reece-Stremtan <dacianstremtan@gmail.com>
Co-authored-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
Signed-off-by: Timothy Middelkoop <tmiddelkoop@internet2.edu>
2025-08-01 14:46:36 -06:00
Jonathon Anderson
7d0b73e452 Address copilot review from #1945
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:57:01 -06:00
Jonathon Anderson
5ceeb60c24 Refactor wwapi tests for proper isolation
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
e149a332e6 Bugfix: cloning a site overlay when parent dir does not exist
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
9884aad504 Consolidated createOverlayFile and updateOverlayFile to addOverlayFile
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
jason yang
62d1aa654d Support for creating and updating overlay file in wwapi
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
7b2c0901ed Only return overlay files that refer to a path within the overlay
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
jason yang
e089fe0101 add overlay file deletion support
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
6b5115934b DELETE /api/overlays/{id}?force=true can delete overlays in use
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:48 -06:00
Jonathon Anderson
949dc9d46b Restore idempotency of PUT /api/nodes/{id}
HTTP PUT is supposed to be idempotent, so PUT for an existing node or
profile should replace the node or profile, not throw an error.

Generating an error on duplicate can now be requested using the
If-None-Match header with a `*` value.

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:41 -06:00
Jonathon Anderson
a0752a5bd0 Simplify overlay mtime api and add tests
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-28 18:18:22 -06:00
jason yang
a3dbf6aeee add node overlay buildtime
Signed-off-by: jason yang <jasonyangshadow@gmail.com>
2025-07-28 18:18:13 -06:00
Jonathon Anderson
a2c7caa4ba Rebuild overlays for discovered nodes
- Fixes: #1468

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-07-09 14:29:38 -06:00
Christian Goll
b8641b8569 more variables for the grub templates
Signed-off-by: Christian Goll <cgoll@suse.com>
2025-06-17 01:34:23 -06:00
Jonathon Anderson
7d437e9e58 Merge pull request #1925 from MatthewHink/mhink-ovl
Add uid, gid, and permissions to OverlayFile struct
2025-06-16 17:13:20 -06:00
Jonathon Anderson
f61dfdde87 Use jsonassert in test
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2025-06-16 17:09:34 -06:00