SHA256
1
0
forked from pool/warewulf4

Accepting request 970166 from home:mslacken:pr

- update to v4.3.0rc2 with following major changes:
  * Provision interface is not tied to 'eth0' any more. The provision interface
    must be named 'default' now. The file `nodes.yaml' must be changed accordingly.
  * Creating of '/etc/exports' can now be disabled, so that wwctl configure -a
    wont overwrite a existing '/etc/exports'.
  * All configurations files for the host (/etc/exports, /etc/dhcpd.conf,
    /etc/hosts) are now populated from the
    (OVERLAYDIR/host/etc/{exports|dhcpd|hosts}.ww . Also other configuration
    files like prometheus.yml.ww or slurm.conf.ww which depend on the cluster
    nodes can be placed. Also the new templated functions {{ abort }}, 
    {{ IncludeBlock }} abd {{ no_backup }} are allowed now.
  * nodes and profiles can now have multiple system and runtime overlays, as a
    comma separated list.
  * The overlays of the profile and the nodes are combined.
  * Simple ipv6 support is now enabled. In warewulf.conf the option
    ipaddr6/Ipv6net must be set to enable ipv6. If enabled on of these options
    is set a node will get a derived ipv6 in the scheme ipv6net:ipaddr4. This
    address can also be overwritten for every node
  * Multiple files can now created from a single template.ww file with the {{ file FILENAME }}
    command in the template. The command is expanded to the magic template command
    {{ /* file FILENAME */}} which is picked up by wwctl and everything which comes after this
    magic comment will be written to the file FILENAME. This mechanism is leveraged in the
    configuration files for the network, see ifcfg.xml.ww and ifcgf.ww.
  * Networks can now have arbitrary keys value pairs in the profiles and on the node, so that
    things like bridges and mtu sizes can be set
  * The yaml format for nodes has now sub-keys for ipmi and kernel, old nodes.conf files have to
    to be changed accordingly
  * uids and gids of a container now get synced at import time, so that at least users with the
    same name have the same uid. This is not necessarily needed for warewulf, but services like
    munge.

OBS-URL: https://build.opensuse.org/request/show/970166
OBS-URL: https://build.opensuse.org/package/show/network:cluster/warewulf4?expand=0&rev=6
This commit is contained in:
Christian Goll 2022-04-14 13:46:48 +00:00 committed by Git OBS Bridge
parent ea502502c9
commit 9061c1b569
8 changed files with 155 additions and 160 deletions

View File

@ -1,128 +0,0 @@
From b670e183470c97e7fc0a266866ec3e9964084d12 Mon Sep 17 00:00:00 2001
From: Christian Goll <cgoll@suse.de>
Date: Wed, 21 Jul 2021 12:45:16 +0200
Subject: [PATCH] LocalStateDir is configureable to meet FHS
---
Makefile | 27 +++++++++++-----------
internal/app/wwctl/configure/nfs/main.go | 2 +-
internal/pkg/config/config.go | 16 ++++++++++---
internal/pkg/warewulfconf/datastructure.go | 1 +
4 files changed, 29 insertions(+), 17 deletions(-)
diff --git a/Makefile b/Makefile
index 0babd54..7169b6c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
.PHONY: all
VERSION := 4.2.0
+LOCALSTATE ?= /var/warewulf/
# auto installed tooling
TOOLS_DIR := .tools
@@ -52,8 +53,8 @@ debian: all
files: all
install -d -m 0755 $(DESTDIR)/usr/bin/
- install -d -m 0755 $(DESTDIR)/var/warewulf/
- install -d -m 0755 $(DESTDIR)/var/warewulf/chroots
+ install -d -m 0755 $(DESTDIR)$(LOCALSTATE)/
+ install -d -m 0755 $(DESTDIR)$(LOCALSTATE)/chroots
install -d -m 0755 $(DESTDIR)/etc/warewulf/
install -d -m 0755 $(DESTDIR)/etc/warewulf/ipxe
install -d -m 0755 $(DESTDIR)/var/lib/tftpboot/warewulf/ipxe/
@@ -63,12 +64,12 @@ files: all
test -f $(DESTDIR)/etc/warewulf/hosts.tmpl || install -m 644 etc/hosts.tmpl $(DESTDIR)/etc/warewulf/
cp -r etc/dhcp $(DESTDIR)/etc/warewulf/
cp -r etc/ipxe $(DESTDIR)/etc/warewulf/
- cp -r overlays $(DESTDIR)/var/warewulf/
- chmod +x $(DESTDIR)/var/warewulf/overlays/system/default/init
- chmod 600 $(DESTDIR)/var/warewulf/overlays/system/default/etc/ssh/ssh*
- chmod 644 $(DESTDIR)/var/warewulf/overlays/system/default/etc/ssh/ssh*.pub.ww
- mkdir -p $(DESTDIR)/var/warewulf/overlays/system/default/warewulf/bin/
- cp wwclient $(DESTDIR)/var/warewulf/overlays/system/default/warewulf/bin/
+ cp -r overlays $(DESTDIR)$(LOCALSTATE)/
+ chmod +x $(DESTDIR)$(LOCALSTATE)/overlays/system/default/init
+ chmod 600 $(DESTDIR)$(LOCALSTATE)/overlays/system/default/etc/ssh/ssh*
+ chmod 644 $(DESTDIR)$(LOCALSTATE)/overlays/system/default/etc/ssh/ssh*.pub.ww
+ mkdir -p $(DESTDIR)$(LOCALSTATE)/overlays/system/default/warewulf/bin/
+ cp wwclient $(DESTDIR)$(LOCALSTATE)/overlays/system/default/warewulf/bin/
cp wwctl $(DESTDIR)/usr/bin/
mkdir -p $(DESTDIR)/usr/lib/firewalld/services
install -c -m 0644 include/firewalld/warewulf.xml $(DESTDIR)/usr/lib/firewalld/services
@@ -82,11 +83,11 @@ files: all
# restorecon -r /var/lib/tftpboot/warewulf
debfiles: debian
- chmod +x $(DESTDIR)/var/warewulf/overlays/system/debian/init
- chmod 600 $(DESTDIR)/var/warewulf/overlays/system/debian/etc/ssh/ssh*
- chmod 644 $(DESTDIR)/var/warewulf/overlays/system/debian/etc/ssh/ssh*.pub.ww
- mkdir -p $(DESTDIR)/var/warewulf/overlays/system/debian/warewulf/bin/
- cp wwclient $(DESTDIR)/var/warewulf/overlays/system/debian/warewulf/bin/
+ chmod +x $(DESTDIR)$(LOCALSTATE)/overlays/system/debian/init
+ chmod 600 $(DESTDIR)$(LOCALSTATE)/overlays/system/debian/etc/ssh/ssh*
+ chmod 644 $(DESTDIR)$(LOCALSTATE)/overlays/system/debian/etc/ssh/ssh*.pub.ww
+ mkdir -p $(DESTDIR)$(LOCALSTATE)/overlays/system/debian/warewulf/bin/
+ cp wwclient $(DESTDIR)$(LOCALSTATE)/overlays/system/debian/warewulf/bin/
wwctl:
cd cmd/wwctl; GOOS=linux go build -mod vendor -tags "$(WW_BUILD_GO_BUILD_TAGS)" -o ../../wwctl
diff --git a/internal/app/wwctl/configure/nfs/main.go b/internal/app/wwctl/configure/nfs/main.go
index 7827b24..4657f66 100644
--- a/internal/app/wwctl/configure/nfs/main.go
+++ b/internal/app/wwctl/configure/nfs/main.go
@@ -40,7 +40,7 @@ func Configure(show bool) error {
}
defer exports.Close()
- fstab, err := os.OpenFile("/var/warewulf/overlays/system/default/etc/fstab", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
+ fstab, err := os.OpenFile(fmt.Sprintf("%s/overlays/system/default/etc/fstab",controller.LocalStateDir), os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
if err != nil {
wwlog.Printf(wwlog.ERROR, "%s\n", err)
os.Exit(1)
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index 34a9f00..c08221d 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -6,11 +6,21 @@ import (
"github.com/hpcng/warewulf/internal/pkg/util"
"github.com/hpcng/warewulf/internal/pkg/wwlog"
+ "github.com/hpcng/warewulf/internal/pkg/warewulfconf"
)
-const (
- LocalStateDir = "/var/warewulf"
-)
+var LocalStateDir = "/var/warewulf"
+
+func init() {
+ conf, err := warewulfconf.New()
+ if err != nil {
+ wwlog.Printf(wwlog.ERROR, "%s\n", err)
+ return
+ }
+ if conf.LocalStateDir != "" {
+ LocalStateDir = conf.LocalStateDir
+ }
+}
func OverlayDir() string {
return fmt.Sprintf("%s/overlays/", LocalStateDir)
diff --git a/internal/pkg/warewulfconf/datastructure.go b/internal/pkg/warewulfconf/datastructure.go
index 8315ddd..a688617 100644
--- a/internal/pkg/warewulfconf/datastructure.go
+++ b/internal/pkg/warewulfconf/datastructure.go
@@ -13,6 +13,7 @@ type ControllerConf struct {
Netmask string `yaml:"netmask"`
Network string `yaml:"network,omitempty"`
Fqdn string `yaml:"fqdn,omitempty"`
+ LocalStateDir string `yaml:"localstatedir"`
Warewulf *WarewulfConf `yaml:"warewulf"`
Dhcp *DhcpConf `yaml:"dhcp"`
Tftp *TftpConf `yaml:"tftp"`
--
2.33.0

5
_service Normal file
View File

@ -0,0 +1,5 @@
<services>
<service name="go_modules" mode="disabled">
</service>
</services>

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:65783e69b83be9ce0a2bede542ae5983b23c15994c8e4487ed83adb1c1745808 oid sha256:d7f581d6646f04eaca87287ff924a728e345cbcf331e4f9972990276cb7a5840
size 3526332 size 4839581

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8c1ea8284584374011c6125cf0100f2ab1dbe7d7b9eeb4bc979b9a9766db6bd6
size 1298057

View File

@ -5,6 +5,8 @@ warewulf:
port: 9873 port: 9873
secure: true secure: true
update interval: 60 update interval: 60
datastore: /var/lib/warewulf
dhcp: dhcp:
enabled: true enabled: true
range start: 10.10.93.10 range start: 10.10.93.10

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:defeaa11a95214d1da4886b4418d75c3596f51a512b63cd04a2fd0a4f01f0340
size 945584

View File

@ -1,3 +1,40 @@
-------------------------------------------------------------------
Thu Apr 14 13:18:23 UTC 2022 - Christian Goll <cgoll@suse.com>
- update to v4.3.0rc2 with following major changes:
* Provision interface is not tied to 'eth0' any more. The provision interface
must be named 'default' now. The file `nodes.yaml' must be changed accordingly.
* Creating of '/etc/exports' can now be disabled, so that wwctl configure -a
wont overwrite a existing '/etc/exports'.
* All configurations files for the host (/etc/exports, /etc/dhcpd.conf,
/etc/hosts) are now populated from the
(OVERLAYDIR/host/etc/{exports|dhcpd|hosts}.ww . Also other configuration
files like prometheus.yml.ww or slurm.conf.ww which depend on the cluster
nodes can be placed. Also the new templated functions {{ abort }},
{{ IncludeBlock }} abd {{ no_backup }} are allowed now.
* nodes and profiles can now have multiple system and runtime overlays, as a
comma separated list.
* The overlays of the profile and the nodes are combined.
* Simple ipv6 support is now enabled. In warewulf.conf the option
ipaddr6/Ipv6net must be set to enable ipv6. If enabled on of these options
is set a node will get a derived ipv6 in the scheme ipv6net:ipaddr4. This
address can also be overwritten for every node
* Multiple files can now created from a single template.ww file with the {{ file FILENAME }}
command in the template. The command is expanded to the magic template command
{{ /* file FILENAME */}} which is picked up by wwctl and everything which comes after this
magic comment will be written to the file FILENAME. This mechanism is leveraged in the
configuration files for the network, see ifcfg.xml.ww and ifcgf.ww.
* Networks can now have arbitrary keys value pairs in the profiles and on the node, so that
things like bridges and mtu sizes can be set
* The yaml format for nodes has now sub-keys for ipmi and kernel, old nodes.conf files have to
to be changed accordingly
* uids and gids of a container now get synced at import time, so that at least users with the
same name have the same uid. This is not necessarily needed for warewulf, but services like
munge.
* backward compatibility for nodes.conf
* added file:// uri for importing archived containers
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Oct 28 07:00:53 UTC 2021 - Christian Goll <cgoll@suse.com> Thu Oct 28 07:00:53 UTC 2021 - Christian Goll <cgoll@suse.com>

View File

@ -1,7 +1,7 @@
# #
# spec file for package warewulf4 # spec file for package warewulf4
# #
# Copyright (c) 2021 SUSE LLC # Copyright (c) 2022 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -16,45 +16,47 @@
# #
%global provider github
%global provider_tld com
%global project hpcng
%global repo warewulf
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
ExclusiveArch: x86_64 aarch64 ExclusiveArch: x86_64 aarch64
Name: warewulf4 Name: warewulf4
Version: 4.2.0 Version: 4.3.0rc2
Release: 0 Release: 0
Summary: A suite of tools for clustering Summary: A suite of tools for clustering
License: BSD-3-Clause License: BSD-3-Clause
Group: Productivity/Clustering/Computing Group: Productivity/Clustering/Computing
URL: https://warewulf.hpcng.org/docs/ URL: https://warewulf.org
Source0: https://github.com/hpcng/warewulf/archive/v%{version}.tar.gz#/warewulf-%{version}.tar.gz Source0: https://github.com/hpcng/warewulf/archive/v%{version}.tar.gz#/warewulf4-v%{version}.tar.gz
Source1: vendor.tar.gz Source1: vendor.tar.gz
Source2: warewulf.conf
Source3: warewulf4-rpmlintrc Source3: warewulf4-rpmlintrc
#Patch1: overlay-host.patch
# no firewalld in sle12 # no firewalld in sle12
%if 0%{?sle_version} >= 150000 || 0%{?suse_version} > 1500 %if 0%{?sle_version} >= 150000 || 0%{?suse_version} > 1500
BuildRequires: firewalld BuildRequires: firewalld
%endif %endif
BuildRequires: dracut
BuildRequires: go >= 1.15 BuildRequires: go >= 1.15
BuildRequires: golang-packaging BuildRequires: golang-packaging
BuildRequires: libgpgme-devel
BuildRequires: make BuildRequires: make
BuildRequires: munge
BuildRequires: sysuser-tools BuildRequires: sysuser-tools
BuildRequires: tftp
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
Patch0: LocalStateDir-is-configureable-to-meet-FHS.patch Requires: %{name}-ipxe
Requires: %{name}-overlay Requires: %{name}-overlay
Requires: dhcp-server Requires: dhcp-server
Requires: ipmitool Requires: ipmitool
Requires: tftp Requires: nfs-kernel-server
%{go_nostrip} %{go_nostrip}
%description %description
Warewulf v4 combines ultra scalability, flexibility, and simplicity with being light weight, non-intrusive, and a great tool for scientists and seasoned system administrators alike. Warewulf empowers you to scalably and easily manage thousands of compute resources. Warewulf v4 combines ultra scalability, flexibility, and simplicity with being
light weight, non-intrusive, and a great tool for scientists and seasoned
system administrators alike. Warewulf empowers you to scalably and easily
manage thousands of compute resources.
%package overlay %package overlay
# Smells like a circular dependcy, but needed in this case as the # Smells like a circular dependcy, but needed in this case as the
@ -66,30 +68,82 @@ Group: Productivity/Clustering/Computing
%description overlay %description overlay
Includes the default overlays so that they can be updated seprately. Includes the default overlays so that they can be updated seprately.
%package ipxe
Requires: tftp
Summary: Binaries of iPXE for ww4 installation
BuildArch: noarch
%description ipxe
For the boot of the nodes iPXE binaries are needed. As these package includes these files for
x86, i386 and ARM.
%package slurm
Summary: Configuration template for slurm
Requires: %{name} = %{version}
Requires: slurm
%description slurm
This package install the necessary configuration files in order to run a slurm
cluster on the configured warewulf nodes.
%prep %prep
%setup -q -n warewulf-%{version} %setup -q -n warewulf-%{version}
%setup -q -D -T -a 1 -n warewulf-%{version} # extract the vendor stuff
tar xzf %{S:1}
%autopatch -p1 %autopatch -p1
%build %build
%goprep %{import_path} %global tftpdir /srv/tftpboot
make %{?_smp_mflags} genconfig \
make %{?_smp_mflags} PREFIX=%{_prefix} \
BINDIR=%{_bindir} \
SYSCONFDIR=%{_sysconfdir} \
DATADIR=%{_datadir} \
LOCALSTATEDIR=%{_sharedstatedir} \
SHAREDSTATEDIR=%{_sharedstatedir} \
MANDIR=%{_mandir} \
INFODIR=%{_infodir} \
DOCDIR=%{_docdir} \
SRVDIR=%{_sharedstatedir} \
TFTPDIR=%{tftpdir} \
SYSTEMDDIR=%{_unitdir} \
BASHCOMPDIR=%{_datadir}/bash-completion/completions/ \
FIREWALLDDIR=/usr/lib/firewalld/services \
WWCLIENTDIR=/warewulf
%install %install
LOCALSTATE=%{_localstatedir}/lib/warewulf/ %{makeinstall} # we have a broken symlink for wwclient
export NO_BRP_STALE_LINK_ERROR=yes
%{makeinstall}
# cleanup
mkdir -p %{buildroot}%{_sbindir}/ mkdir -p %{buildroot}%{_sbindir}/
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcwarewulfd ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcwarewulfd
chmod 755 %{buildroot}%{_localstatedir}/lib/warewulf/overlays/system/default/warewulf/init.d/* mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions/
mv -v %{buildroot}%{_sysconfdir}/bash_completion.d/warewulf %{buildroot}%{_datadir}/bash-completion/completions/wwctl mv -v %{buildroot}%{_sysconfdir}/bash_completion.d/warewulf %{buildroot}%{_datadir}/bash-completion/completions/wwctl
cp %{S:2} %{buildroot}%{_sysconfdir}/warewulf/warewulf.conf #cp %{S:2} %{buildroot}%{_sysconfdir}/warewulf/warewulf.conf
#rm -rf %{buildroot}%{_datadir}/warewulf/ipxe
rm -f %{buildroot}/usr/share/doc/packages/warewulf/LICENSE.md
# create systemuser # create systemuser
echo "u warewulf -" > system-user-%{name}.conf echo "u warewulf -" > system-user-%{name}.conf
echo "g warewulf -" >> system-user-%{name}.conf echo "g warewulf -" >> system-user-%{name}.conf
%sysusers_generate_pre system-user-%{name}.conf %{name} system-user-%{name}.conf %sysusers_generate_pre system-user-%{name}.conf %{name} system-user-%{name}.conf
install -D -m 644 system-user-%{name}.conf %{buildroot}%{_sysusersdir}/system-user-%{name}.conf install -D -m 644 system-user-%{name}.conf %{buildroot}%{_sysusersdir}/system-user-%{name}.conf
# get the slurm package readay
mkdir -p %{buildroot}%{_localstatedir}/lib/warewulf/overlays/host/etc/slurm
mv %{buildroot}%{_sysconfdir}/warewulf/examples/slurm.conf.ww %{buildroot}%{_localstatedir}/lib/warewulf/overlays/host/etc/slurm
mkdir -p %{buildroot}%{_localstatedir}/lib/warewulf/overlays/generic/etc/munge
cat > %{buildroot}%{_localstatedir}/lib/warewulf/overlays/generic/etc/munge/munge.key.ww <<EOF
{{ Include "/etc/munge/munge.key" -}}
EOF
chmod 600 %{buildroot}%{_localstatedir}/lib/warewulf/overlays/generic/etc/munge/munge.key.ww
mkdir -p %{buildroot}%{_localstatedir}/lib/warewulf/overlays/generic/etc/slurm
cat > %{buildroot}%{_localstatedir}/lib/warewulf/overlays/generic/etc/slurm/slurm.conf.ww <<EOF
{{ Include "/etc/slurm/slurm.conf" }}
EOF
%pre -f %{name}.pre %pre -f %{name}.pre
%service_add_pre warewulfd.service %service_add_pre warewulfd.service
@ -104,20 +158,28 @@ install -D -m 644 system-user-%{name}.conf %{buildroot}%{_sysusersdir}/system-us
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%doc README.md LICENSE.md %doc README.md
%license LICENSE.md
%attr(0755, root, warewulf) %dir %{_sysconfdir}/warewulf %attr(0755, root, warewulf) %dir %{_sysconfdir}/warewulf
%attr(0755, root, warewulf) %dir %{_sysconfdir}/warewulf/dhcp %attr(0755, root, warewulf) %dir %{_sysconfdir}/warewulf/examples
%attr(0755, root, warewulf) %dir %{_sysconfdir}/warewulf/ipxe %attr(0755, root, warewulf) %dir %{_sysconfdir}/warewulf/ipxe
%{_datadir}/bash-completion/completions/wwctl %{_datadir}/bash-completion/completions/wwctl
%{_mandir}/man1/wwctl*1.gz %{_mandir}/man1/wwctl*1.gz
%config(noreplace) %{_sysconfdir}/warewulf/nodes.conf
%config(noreplace) %{_sysconfdir}/warewulf/warewulf.conf %config(noreplace) %{_sysconfdir}/warewulf/warewulf.conf
%config(noreplace) %{_sysconfdir}/warewulf/hosts.tmpl #%config(noreplace) %{_sysconfdir}/warewulf/wwapic.conf
%config(noreplace) %{_sysconfdir}/warewulf/dhcp/*.conf #%config(noreplace) %{_sysconfdir}/warewulf/wwapid.conf
#%config(noreplace) %{_sysconfdir}/warewulf/wwapird.conf
%config(noreplace) %{_sysconfdir}/warewulf/ipxe/*.ipxe %config(noreplace) %{_sysconfdir}/warewulf/ipxe/*.ipxe
%{_sysconfdir}/warewulf/examples
%{_prefix}/lib/firewalld/services/warewulf.xml %{_prefix}/lib/firewalld/services/warewulf.xml
%{_localstatedir}/lib/warewulf %{_localstatedir}/lib/warewulf
%exclude %{_localstatedir}/lib/warewulf/overlays %exclude %{_localstatedir}/lib/warewulf/overlays
%{_bindir}/wwctl %{_bindir}/wwctl
#%{_bindir}/wwapic
#%{_bindir}/wwapid
#%{_bindir}/wwapird
%{_sbindir}/rcwarewulfd %{_sbindir}/rcwarewulfd
%{_unitdir}/warewulfd.service %{_unitdir}/warewulfd.service
%{_sysusersdir}/system-user-%{name}.conf %{_sysusersdir}/system-user-%{name}.conf
@ -127,5 +189,22 @@ install -D -m 644 system-user-%{name}.conf %{buildroot}%{_sysusersdir}/system-us
# nodes, so when modified we do not replace them as sensible # nodes, so when modified we do not replace them as sensible
# admin will read the changelog # admin will read the changelog
%config(noreplace) %{_localstatedir}/lib/warewulf/overlays %config(noreplace) %{_localstatedir}/lib/warewulf/overlays
%exclude %{_localstatedir}/lib/warewulf/overlays/host/etc/slurm
%exclude %{_localstatedir}/lib/warewulf/overlays/generic/etc/slurm
%exclude %{_localstatedir}/lib/warewulf/overlays/generic/etc/munge
%files ipxe
/srv/tftpboot/warewulf
%{_datadir}/warewulf
%files slurm
%dir %{_localstatedir}/lib/warewulf/overlays/host/etc/slurm
%{_localstatedir}/lib/warewulf/overlays/host/etc/slurm/slurm.conf.ww
%dir %{_localstatedir}/lib/warewulf/overlays/generic/etc/slurm
%{_localstatedir}/lib/warewulf/overlays/generic/etc/slurm/slurm.conf.ww
%dir %{_localstatedir}/lib/warewulf/overlays/generic/etc/munge
%{_localstatedir}/lib/warewulf/overlays/generic/etc/munge/munge.key.ww
%dir %attr(0700,munge,munge) %{_localstatedir}/lib/warewulf/overlays/generic/etc/munge
%attr(0600,munge,munge) %config(noreplace) %{_localstatedir}/lib/warewulf/overlays/generic/etc/munge/munge.key.ww
%changelog %changelog