From 38791c74adc2a06ead3bf5f9239032baa4ac4c3a Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Mon, 3 Feb 2025 04:18:13 -0700 Subject: [PATCH] Create site overlay directory -Fixes: #1690 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 4 +--- internal/pkg/overlay/config.go | 6 ++++++ warewulf.spec.in | 1 + 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10aa93ee..2b97196f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,9 +14,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - `wwctl node list <--yaml|--json>` outputs a map keyed by node name. #1667 - -### Changes - - Don't mount /run during wwinit. #1566 ### Fixed @@ -33,6 +30,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Don't attempt to back-up an output file that doesn't exist during upgrade. #1671 - Specify init=/init when booting with Grub+dracut. #1573 - Fix a warewulfd panic when no kernel fields are specified. #1689 +- Create site overlay directory. #1690 ## v4.6.0rc1, 2025-01-29 diff --git a/internal/pkg/overlay/config.go b/internal/pkg/overlay/config.go index 520a91e5..eed5988a 100644 --- a/internal/pkg/overlay/config.go +++ b/internal/pkg/overlay/config.go @@ -4,6 +4,7 @@ import ( "fmt" "os" "path" + "path/filepath" "strings" "github.com/containers/storage/drivers/copy" @@ -67,6 +68,11 @@ func (overlay Overlay) CloneSiteOverlay() (siteOverlay Overlay, err error) { if siteOverlay.Exists() { return siteOverlay, fmt.Errorf("site overlay already exists: %s", siteOverlay.Name()) } + if !util.IsDir(filepath.Dir(overlay.Path())) { + if err := os.MkdirAll(filepath.Dir(overlay.Path()), 0755); err != nil { + return siteOverlay, err + } + } err = copy.DirCopy(overlay.Path(), siteOverlay.Path(), copy.Content, true) return siteOverlay, err } diff --git a/warewulf.spec.in b/warewulf.spec.in index 8c4494bb..aecd548e 100644 --- a/warewulf.spec.in +++ b/warewulf.spec.in @@ -190,6 +190,7 @@ getent group %{wwgroup} >/dev/null || groupadd -r %{wwgroup} %dir %{_sharedstatedir}/warewulf %dir %{_sharedstatedir}/warewulf/chroots +%dir %{_sharedstatedir}/warewulf/overlays %dir %{_datadir}/warewulf/overlays %dir %{_datadir}/warewulf/overlays/* %dir %{_datadir}/warewulf/overlays/*/rootfs