From d217279a04c7f0ca23ae212244193314afd0b2d8 Mon Sep 17 00:00:00 2001 From: "Michael L. Young" Date: Thu, 6 Oct 2022 00:55:38 -0400 Subject: [PATCH 01/78] [CI/CD] Build Testing Improvement We are pinning version 1.17 for the linting workflow. Go 1.16 has been EOL for almost two years and even EL7 releases have 1.17 available now. Removed 1.16 from our test matrix. This commit does the following: * Update the build testing workflow to run on development branch * Remove go 1.16 and add 1.19 to test build workflow Signed-off-by: Michael L. Young --- .github/workflows/test.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e274bc2a..abf4e496 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,11 +3,15 @@ name: test on: push: - branches: [main] + branches: + - main + - development paths-ignore: - 'docs/**' pull_request: - branches: [main] + branches: + - main + - development paths-ignore: - 'docs/**' @@ -17,7 +21,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - go: [ '1.16', '1.17', '1.18' ] + go: [ '1.17', '1.18', '1.19' ] steps: - uses: actions/checkout@v2 From 12efa0cc6801131bbb0665458f3896b97638b664 Mon Sep 17 00:00:00 2001 From: mslacken Date: Fri, 14 Oct 2022 18:18:58 +0200 Subject: [PATCH 02/78] check if new template file was modified --- internal/app/wwctl/overlay/edit/main.go | 62 ++++++++++++++++++------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/internal/app/wwctl/overlay/edit/main.go b/internal/app/wwctl/overlay/edit/main.go index 3303fd0d..b903ca36 100644 --- a/internal/app/wwctl/overlay/edit/main.go +++ b/internal/app/wwctl/overlay/edit/main.go @@ -1,7 +1,10 @@ package edit import ( + "crypto/sha256" + "encoding/hex" "fmt" + "io" "os" "path" "path/filepath" @@ -47,34 +50,59 @@ func CobraRunE(cmd *cobra.Command, args []string) error { os.Exit(1) } } - + newFile := false if !util.IsFile(overlayFile) && filepath.Ext(overlayFile) == ".ww" { wwlog.Verbose("This is a new file, creating some default content") - + newFile = true w, err := os.OpenFile(overlayFile, os.O_RDWR|os.O_CREATE, os.FileMode(PermMode)) if err != nil { wwlog.Warn("Could not create file for writing: %s", err) } - - fmt.Fprintf(w, "# This is a Warewulf Template file.\n") - fmt.Fprintf(w, "#\n") - fmt.Fprintf(w, "# This file (suffix '.ww') will be automatically rewritten without the suffix\n") - fmt.Fprintf(w, "# when the overlay is rendered for the individual nodes. Here are some examples\n") - fmt.Fprintf(w, "# of macros and logic which can be used within this file:\n") - fmt.Fprintf(w, "#\n") - fmt.Fprintf(w, "# Node FQDN = {{.Id}}\n") - fmt.Fprintf(w, "# Node Cluster = {{.ClusterName}}\n") - fmt.Fprintf(w, "# Network Config = {{.NetDevs.eth0.Ipaddr}}, {{.NetDevs.eth0.Hwaddr}}, etc.\n") - fmt.Fprintf(w, "#\n") - fmt.Fprintf(w, "# Goto the documentation pages for more information: http://www.hpcng.org/...\n") - fmt.Fprintf(w, "\n") + fmtStr := `# This is a Warewulf Template file. +# +# This file (suffix '.ww') will be automatically rewritten without the suffix +# when the overlay is rendered for the individual nodes. Here are some examples +# of macros and logic which can be used within this file: +# +# Node FQDN = {{.Id}}\n") +# Node Cluster = {{.ClusterName}}\n") +# Network Config = {{.NetDevs.eth0.Ipaddr}}, {{.NetDevs.eth0.Hwaddr}}, etc. +# +# Goto the documentation pages for more information: http://www.hpcng.org/... +# Keep the following for better reference +# This file is autogenerated by warewulf +# Host: {{.BuildHost}} +# Time: {{.BuildTime}} +# Source: {{.BuildSource}} +` + fmt.Fprint(w, fmtStr) } - - err := util.ExecInteractive(editor, overlayFile) + fileDesc, err := os.OpenFile(overlayFile, os.O_RDWR, os.FileMode(PermMode)) + defer fileDesc.Close() + _, _ = fileDesc.Seek(0, 0) + hasher := sha256.New() + if _, err := io.Copy(hasher, fileDesc); err != nil { + wwlog.Error("Problems getting checksum of file %s\n", err) + } + sum1 := hex.EncodeToString(hasher.Sum(nil)) + err = util.ExecInteractive(editor, overlayFile) if err != nil { wwlog.Error("Editor process existed with non-zero") os.Exit(1) } + _, _ = fileDesc.Seek(0, 0) + hasher.Reset() + if _, err := io.Copy(hasher, fileDesc); err != nil { + wwlog.Error("Problems getting checksum of file %s\n", err) + } + sum2 := hex.EncodeToString(hasher.Sum(nil)) + if sum1 == sum2 && newFile { + wwlog.Verbose("New template %s wasn't modified, deleting it", overlayFile) + err = os.Remove(overlayFile) + if err != nil { + wwlog.Warn("Could not delete %s", overlayFile) + } + } return nil } From cbeca6678efd78794e1f3569dd4731fe5e3716d0 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 14 Oct 2022 19:31:07 +0200 Subject: [PATCH 03/78] fix linting --- internal/app/wwctl/overlay/edit/main.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/app/wwctl/overlay/edit/main.go b/internal/app/wwctl/overlay/edit/main.go index b903ca36..677c883b 100644 --- a/internal/app/wwctl/overlay/edit/main.go +++ b/internal/app/wwctl/overlay/edit/main.go @@ -78,6 +78,9 @@ func CobraRunE(cmd *cobra.Command, args []string) error { fmt.Fprint(w, fmtStr) } fileDesc, err := os.OpenFile(overlayFile, os.O_RDWR, os.FileMode(PermMode)) + if err != nil { + wwlog.Warn("Could not open file for editing: %s", err) + } defer fileDesc.Close() _, _ = fileDesc.Seek(0, 0) hasher := sha256.New() From c0cedf6d3db46cfdb2d3bbd598451ed75f7c7085 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Mon, 17 Oct 2022 14:59:39 -0600 Subject: [PATCH 04/78] Enable VLAN_CMD in ipxe In order to support vlan tagging during the boot process, enable VLAN_CMD in ipxe. Documented at https://ipxe.org/cmd/vcreate Signed-off-by: Jonathon Anderson --- ipxe-update.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ipxe-update.sh b/ipxe-update.sh index 22b750a1..d7f62d32 100755 --- a/ipxe-update.sh +++ b/ipxe-update.sh @@ -25,6 +25,7 @@ sed -i.bak \ sed -i.bak \ -e 's,//\(#define.*IMAGE_ZLIB.*\),\1,' \ -e 's,//\(#define.*IMAGE_GZIP.*\),\1,' \ + -e 's,//\(#define.*VLAN_CMD.*\),\1,' \ config/general.h make -j 8 $PCBIOS From f25d2ec8d55be55dc87d4dfaf2239413493f0dca Mon Sep 17 00:00:00 2001 From: jcsiadal Date: Mon, 17 Oct 2022 21:58:03 +0000 Subject: [PATCH 05/78] Update spec and Makefile Signed-off-by: jcsiadal --- Makefile | 8 ++++++-- warewulf.spec.in | 25 ++++++++++++++++++------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index add0a600..8cbc0625 100644 --- a/Makefile +++ b/Makefile @@ -95,8 +95,10 @@ export GOPROXY # built tags needed for wwbuild binary WW_GO_BUILD_TAGS := containers_image_openpgp containers_image_ostree +# Default target all: config vendor wwctl wwclient bash_completion.d man_pages config_defaults print_defaults wwapid wwapic wwapird +# Validate source and build all packages build: lint test-it vet all # set the go tools into the tools bin. @@ -113,8 +115,10 @@ $(GOLANGCI_LINT): setup: vendor $(TOOLS_DIR) setup_tools vendor: - go mod tidy -v - go mod vendor + ifndef OFFLINE_BUILD + go mod tidy -v + go mod vendor +endif $(TOOLS_DIR): @mkdir -p $@ diff --git a/warewulf.spec.in b/warewulf.spec.in index b040e074..5f57ffb2 100644 --- a/warewulf.spec.in +++ b/warewulf.spec.in @@ -1,4 +1,4 @@ -%define debug_package %{nil} +%global debug_package %{nil} %if 0%{?suse_version} %global tftpdir /srv/tftpboot @@ -17,6 +17,7 @@ Release: @RELEASE@%{?dist} License: BSD-3-Clause URL: https://github.com/hpcng/warewulf Source: https://github.com/hpcng/warewulf/releases/download/v%{version}/warewulf-%{version}.tar.gz +%{?with_offline:Source2: vendor.tgz} ExclusiveOS: linux @@ -27,11 +28,10 @@ Conflicts: warewulf-vnfs Conflicts: warewulf-provision Conflicts: warewulf-ipmi -BuildRequires: make - -%if 0%{?suse_version} +%if 0%{?suse_version} || 0%{?sle_version} +BuildRequires: distribution-release BuildRequires: systemd-rpm-macros -BuildRequires: go +BuildRequires: go >= 1.16 BuildRequires: firewall-macros BuildRequires: firewalld BuildRequires: tftp @@ -39,8 +39,10 @@ Requires: tftp Requires: nfs-kernel-server Requires: firewalld %else +# Assume Red Hat/Fedora build +BuildRequires: system-release BuildRequires: systemd -BuildRequires: golang +BuildRequires: golang >= 1.16 BuildRequires: firewalld-filesystem Requires: tftp-server Requires: nfs-utils @@ -53,16 +55,21 @@ Requires: dhcp-server Requires: dhcp %endif +BuildRequires: git +BuildRequires: make +BuildRequires: libassuan-devel gpgme-devel + %description Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems. %prep -%setup -q -n %{name}-%{version} +%setup -q -n %{name}-%{version} -b0 %if %{?with_offline:-a2} %build +%{?with_offline:OFFLINE_BUILD=1} # Install to sharedstatedir by redirecting LOCALSTATEDIR make genconfig \ PREFIX=%{_prefix} \ @@ -131,6 +138,10 @@ getent group %{wwgroup} >/dev/null || groupadd -r %{wwgroup} %changelog +* Mon Oct 17 2022 Jeremy Siadal - 4.4.0-1 +- Add offline build support -- prepping for bcond +- Add more BuildRequires for new golang vendor modules + * Wed Jan 26 2022 Jeremy Siadal - 4.2.0-1 - Add license install - Updates for RH and SUSE RPM guidelines From 22f9c86c344c93860c9ae23edfaf13400c116512 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 18 Oct 2022 09:41:02 +0200 Subject: [PATCH 06/78] create memory for nettags --- internal/pkg/node/transformers.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/pkg/node/transformers.go b/internal/pkg/node/transformers.go index bed18213..18a1649a 100644 --- a/internal/pkg/node/transformers.go +++ b/internal/pkg/node/transformers.go @@ -164,6 +164,10 @@ func (nodeConf *NodeConf) getterFrom(nodeInfo NodeInfo, } else if netVal.Type() == reflect.TypeOf(map[string]*Entry{}) { entryMap := netVal.Interface().(map[string](*Entry)) confMap := netConfVal.Elem().Field(j).Interface().(map[string]string) + if confMap == nil { + confMapPtr := netConfVal.Elem().Field(j).Addr().Interface().(*map[string]string) + *confMapPtr = make(map[string]string) + } if len(confMap) > len(entryMap) { for confMapKey := range confMap { foundKey := false From fee0bb20b729ca0455653c52eb958da03c44d41f Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 18 Oct 2022 10:10:04 +0200 Subject: [PATCH 07/78] use tag instead of nettag --- internal/pkg/api/node/list.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/pkg/api/node/list.go b/internal/pkg/api/node/list.go index f8f995eb..f98293c8 100644 --- a/internal/pkg/api/node/list.go +++ b/internal/pkg/api/node/list.go @@ -116,7 +116,11 @@ func NodeList(nodeGet *wwapiv1.GetNodeList) (nodeList wwapiv1.NodeList, err erro for j := 0; j < netInfoType.NumField(); j++ { netConfField, ok := netConfType.FieldByName(netInfoType.Field(j).Name) if ok { - fieldName = netName + ":" + netConfField.Tag.Get("lopt") + if netConfField.Tag.Get("lopt") != "nettagadd" { + fieldName = netName + ":" + netConfField.Tag.Get("lopt") + } else { + fieldName = netName + ":tag" + } } else { fieldName = netName + ":" + netInfoType.Field(j).Name } From c715d98ea5ad1f1666fc290d957f0a999f535c4e Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 19 Oct 2022 10:38:38 +0200 Subject: [PATCH 08/78] added README for ipxe static files --- ipxe-update.sh | 17 +++++++++++++---- staticfiles/README.md | 2 ++ 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 staticfiles/README.md diff --git a/ipxe-update.sh b/ipxe-update.sh index d7f62d32..4b598cc9 100755 --- a/ipxe-update.sh +++ b/ipxe-update.sh @@ -1,4 +1,7 @@ #!/bin/sh +# Builds ipxe binaries from github sources or given tarball + +VERSION=v1.21.1 ARCH=x86_64 @@ -11,11 +14,17 @@ EFI_output=`pwd`/staticfiles/${ARCH}.efi set -xe -TMPDIR=`mktemp -d` -cd "$TMPDIR" +TMPDIR=`mktemp -d /tmp/ipxebuild.XXXXXX` +if [ -f "$1" ] ; then + WRKDIR=`pwd` + cd "$TMPDIR" + tar xzf $WRKDIR/$1 +else + cd "$TMPDIR" + git clone --depth 1 --branch $VERSION https://github.com/ipxe/ipxe.git +fi -git clone https://github.com/ipxe/ipxe.git -cd ipxe/src +cd ipxe*/src sed -i.bak \ -e 's,//\(#define.*CONSOLE_SERIAL.*\),\1,' \ diff --git a/staticfiles/README.md b/staticfiles/README.md new file mode 100644 index 00000000..8e0e8b34 --- /dev/null +++ b/staticfiles/README.md @@ -0,0 +1,2 @@ +# iPXE binaries +Binaries can be rebuild with the `ixpe-update.sh` script. From e46bd71ee40a9e66c919ae2b464c25df65a995e4 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 26 Oct 2022 16:57:46 -0600 Subject: [PATCH 09/78] Allow additional ipxe make arguments To support the addition of an ipxe EMBED script, pass args to the ipxe make process. Signed-off-by: Jonathon Anderson --- ipxe-update.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ipxe-update.sh b/ipxe-update.sh index 4b598cc9..c42abdd8 100755 --- a/ipxe-update.sh +++ b/ipxe-update.sh @@ -37,8 +37,8 @@ sed -i.bak \ -e 's,//\(#define.*VLAN_CMD.*\),\1,' \ config/general.h -make -j 8 $PCBIOS -make -j 8 $EFI +make -j 8 $PCBIOS "$@" +make -j 8 $EFI "$@" cp $PCBIOS $PCBIOS_output From dc1ca40f1065ab2c301ba1b83aa795f551ba4d7a Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 26 Oct 2022 17:01:33 -0600 Subject: [PATCH 10/78] Update x86_64 ipxe builds with vlan support Signed-off-by: Jonathon Anderson --- staticfiles/x86_64.efi | Bin 1018880 -> 993088 bytes staticfiles/x86_64.kpxe | Bin 81140 -> 78900 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/staticfiles/x86_64.efi b/staticfiles/x86_64.efi index cbe74ed769ee2a3f60149b3076f56dd985edb6d1..5a3e36384159df051f67b70e2f5213056f625ee1 100644 GIT binary patch delta 217205 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�y;zAjksw9#Pf@> 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 delta 239771 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

O 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

{rDb^$1e$iJXFCWIdv)Nx) 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

qF3VtFAv|Wu?c2~ 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 VX~&#)p*APk40X{{RYaR-FI< diff --git a/staticfiles/x86_64.kpxe b/staticfiles/x86_64.kpxe index bb33a2758e68ab51705600d5753ab1ca8c75ac34..51264c12012419e3a91e538d4c4256c28f2a45df 100644 GIT binary patch delta 76513 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

5t`X06dT5>$s)-&1{8f*l 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

(4yJm) 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 R*vAX`04x5`0S zAnohP#wQHW zxR3(un}`eyS;a~KdIG4e-T@7LGX1F!H2%*P(tv#vQGvk_15F2ziCMo-v_DUTKY8heJ5a+zz9iLOJI~CB#?H%1IiK@ zVF(GFTL8|@``>}>tta)t;Y0KugC+fgBL>q+`hugUulTYA#u!7olKeNoPqO}pn3ltm zi14n6|2c{}*#8LqWIjm)J{BbYB>?Fx3XB*DItB}x0gveGJq7z314g_r?9&cd#$@4F zf&&2luh7nz{-=<@h2s<7FCg4V9VDfKl<|@MScFJw;Yi~1Oqg|ozs2w{VxFm0P=tnr%zY3|0n$ZTQ&Xkp926pmZ1QE zlY}q-H|X#)H}HCd(|`ZHLZC_X-;UrXN-)F!Wv>62@e?H&CaD5p6O1t_9FZoe67d0y zIVm3r6LCI4qBCOk8>2l4f;p)Vi49a>k1vFa(vjKZ=6Vl*7}y%RR`4}%L9tM(9SB-GW>Kz%sI9VUg`b~Fo+tP;-$H=LI4WLAiRvd z8V_U~N!^Q%m=Jlhjp^o|bAZ#KIQijN6fQrt6D)-Vz7vFi8SoZL_OE6Jb-AQ-%z8|8 zmD!!kgIMQl7Y0qNX|G3mc?l5`337~@uy!A%-PKZ1_B_)KeGEu(F`sTP$2^nN>x1xy z-}0`hG0mz)56mle0VET-ZiCun;hHsS`rbm?82S4OMU-!cnZ8V|td9o-_XgR}4`itx zqJLh8^a`&JMK1}WLgo!>f5RDof^%3J1tMQNJlAK#1lYM{_9>pR%?X}S%0D~$Sx4#$ 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[=?l?$PUEzp~d_eaF0yEIlmG>|Q;_Jmw13D2yu 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 YgnSn}_iLiyh)|)s|Ku7^*@NFYb|<)NCIA2c From 21f7a1f8c3c4e35c9dcad7e2b24ba381ec860f1a Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 14 Oct 2022 19:31:07 +0200 Subject: [PATCH 11/78] fix linting --- internal/app/wwctl/overlay/edit/main.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/app/wwctl/overlay/edit/main.go b/internal/app/wwctl/overlay/edit/main.go index b903ca36..96e0de36 100644 --- a/internal/app/wwctl/overlay/edit/main.go +++ b/internal/app/wwctl/overlay/edit/main.go @@ -78,6 +78,9 @@ func CobraRunE(cmd *cobra.Command, args []string) error { fmt.Fprint(w, fmtStr) } fileDesc, err := os.OpenFile(overlayFile, os.O_RDWR, os.FileMode(PermMode)) + if err != nil { + wwlog.Warn("Could not open file for editing: %s", err) + } defer fileDesc.Close() _, _ = fileDesc.Seek(0, 0) hasher := sha256.New() @@ -96,6 +99,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { wwlog.Error("Problems getting checksum of file %s\n", err) } sum2 := hex.EncodeToString(hasher.Sum(nil)) + fmt.Println("sum1,sum2", sum1, sum2) if sum1 == sum2 && newFile { wwlog.Verbose("New template %s wasn't modified, deleting it", overlayFile) err = os.Remove(overlayFile) From 721a52239f21c4bd6d28a8c36c286eb0867879b6 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 27 Oct 2022 11:41:03 +0200 Subject: [PATCH 12/78] opening file with twi seperate descriptors --- internal/app/wwctl/overlay/edit/main.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/internal/app/wwctl/overlay/edit/main.go b/internal/app/wwctl/overlay/edit/main.go index 96e0de36..945ca498 100644 --- a/internal/app/wwctl/overlay/edit/main.go +++ b/internal/app/wwctl/overlay/edit/main.go @@ -76,26 +76,33 @@ func CobraRunE(cmd *cobra.Command, args []string) error { # Source: {{.BuildSource}} ` fmt.Fprint(w, fmtStr) + w.Close() } - fileDesc, err := os.OpenFile(overlayFile, os.O_RDWR, os.FileMode(PermMode)) + fileDesc1, err := os.OpenFile(overlayFile, os.O_RDWR, os.FileMode(PermMode)) if err != nil { wwlog.Warn("Could not open file for editing: %s", err) } - defer fileDesc.Close() - _, _ = fileDesc.Seek(0, 0) + defer fileDesc1.Close() + _, _ = fileDesc1.Seek(0, 0) hasher := sha256.New() - if _, err := io.Copy(hasher, fileDesc); err != nil { + if _, err := io.Copy(hasher, fileDesc1); err != nil { wwlog.Error("Problems getting checksum of file %s\n", err) } sum1 := hex.EncodeToString(hasher.Sum(nil)) + fileDesc1.Close() err = util.ExecInteractive(editor, overlayFile) if err != nil { wwlog.Error("Editor process existed with non-zero") os.Exit(1) } - _, _ = fileDesc.Seek(0, 0) + fileDesc2, err := os.OpenFile(overlayFile, os.O_RDWR, os.FileMode(PermMode)) + if err != nil { + wwlog.Warn("Could not open file for editing: %s", err) + } + defer fileDesc2.Close() + _, _ = fileDesc2.Seek(0, 0) hasher.Reset() - if _, err := io.Copy(hasher, fileDesc); err != nil { + if _, err := io.Copy(hasher, fileDesc2); err != nil { wwlog.Error("Problems getting checksum of file %s\n", err) } sum2 := hex.EncodeToString(hasher.Sum(nil)) From 5413eb611da10fb3be82ad4b4c990d45ef73557e Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 27 Oct 2022 12:08:32 +0200 Subject: [PATCH 13/78] removed stray debug line --- internal/app/wwctl/overlay/edit/main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/app/wwctl/overlay/edit/main.go b/internal/app/wwctl/overlay/edit/main.go index 945ca498..83a7d1a0 100644 --- a/internal/app/wwctl/overlay/edit/main.go +++ b/internal/app/wwctl/overlay/edit/main.go @@ -106,7 +106,6 @@ func CobraRunE(cmd *cobra.Command, args []string) error { wwlog.Error("Problems getting checksum of file %s\n", err) } sum2 := hex.EncodeToString(hasher.Sum(nil)) - fmt.Println("sum1,sum2", sum1, sum2) if sum1 == sum2 && newFile { wwlog.Verbose("New template %s wasn't modified, deleting it", overlayFile) err = os.Remove(overlayFile) From 0d6dcba38a1494a1ab779ffdb805067e4161b3e1 Mon Sep 17 00:00:00 2001 From: David McFarlane <54093156+Prepultrue@users.noreply.github.com> Date: Tue, 1 Nov 2022 13:38:19 +1100 Subject: [PATCH 14/78] Fix use of uninitialised Tags map --- internal/pkg/overlay/datastructure.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/pkg/overlay/datastructure.go b/internal/pkg/overlay/datastructure.go index 8e0ed648..1838900b 100644 --- a/internal/pkg/overlay/datastructure.go +++ b/internal/pkg/overlay/datastructure.go @@ -83,6 +83,7 @@ func InitStruct(nodeInfo node.NodeInfo) TemplateStruct { dt := time.Now() tstruct.BuildTime = dt.Format("01-02-2006 15:04:05 MST") tstruct.BuildTimeUnix = strconv.FormatInt(dt.Unix(), 10) + tstruct.NodeConf.Tags = map[string]string{} tstruct.NodeConf.GetFrom(nodeInfo) // FIXME: Set ipCIDR address at this point, will fail with // invalid ipv4 addr From 99ec5acb59e52562d2b2a693b3fe4f8dfa29a1d0 Mon Sep 17 00:00:00 2001 From: Logan Harbour Date: Tue, 8 Nov 2022 09:53:22 -0700 Subject: [PATCH 15/78] Fix typos --- internal/pkg/overlay/overlay.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/pkg/overlay/overlay.go b/internal/pkg/overlay/overlay.go index b0d56d37..b8e053e0 100644 --- a/internal/pkg/overlay/overlay.go +++ b/internal/pkg/overlay/overlay.go @@ -49,13 +49,13 @@ func BuildAllOverlays(nodes []node.NodeInfo) error { wwlog.Info("Building system overlays for %s: [%s]", n.Id.Get(), strings.Join(sysOverlays, ", ")) err := BuildOverlay(n, sysOverlays) if err != nil { - return errors.Wrapf(err, "could not build system overlays %v for nide %s", sysOverlays, n.Id.Get()) + return errors.Wrapf(err, "could not build system overlays %v for node %s", sysOverlays, n.Id.Get()) } runOverlays := n.RuntimeOverlay.GetSlice() wwlog.Info("Building runtime overlays for %s: [%s]", n.Id.Get(), strings.Join(runOverlays, ", ")) err = BuildOverlay(n, runOverlays) if err != nil { - return errors.Wrapf(err, "could not build runtime overlays %v for nide %s", runOverlays, n.Id.Get()) + return errors.Wrapf(err, "could not build runtime overlays %v for node %s", runOverlays, n.Id.Get()) } } From eec7c27ea5309a98f9537ec695a48a3534466fbe Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 9 Nov 2022 21:04:33 +0100 Subject: [PATCH 16/78] updated tag in Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 8cbc0625..23c42bae 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ VARLIST := OS # Project Information VARLIST += WAREWULF VERSION RELEASE WAREWULF ?= warewulf -VERSION ?= 4.3.0 +VERSION ?= 4.4.0rc1 GIT_TAG := $(shell test -e .git && git log -1 --format="%h") ifdef GIT_TAG From 35529527bb67b54cabdbfd03eefa0fb03c0cc71d Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 11 Nov 2022 14:59:15 +0100 Subject: [PATCH 17/78] added init function for empty NodeInfo --- internal/pkg/node/methods.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index 66ba8acc..ed9d6320 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -334,6 +334,16 @@ Create an empty node NodeConf func NewConf() (nodeconf NodeConf) { nodeconf.Ipmi = new(IpmiConf) nodeconf.Kernel = new(KernelConf) - nodeconf.NetDevs = map[string]*NetDevs{} + nodeconf.NetDevs = make(map[string]*NetDevs) return nodeconf } + +/* +Create an empty node NodeInfo +*/ +func NewInfo() (nodeInfo NodeInfo) { + nodeInfo.Ipmi = new(IpmiEntry) + nodeInfo.Kernel = new(KernelEntry) + nodeInfo.NetDevs = make(map[string]*NetDevEntry) + return nodeInfo +} From 037c456bc4d0c72b69862aa059367d521d241227 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Fri, 11 Nov 2022 10:24:15 -0600 Subject: [PATCH 18/78] Correct host overlay processing during configure wwctl configure hostfile was using the /host/ path twice, causing it to look in the wrong place for /etc/hosts.ww Signed-off-by: Jonathon Anderson --- internal/pkg/configure/hostfile.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/pkg/configure/hostfile.go b/internal/pkg/configure/hostfile.go index 15e0b7a8..5632ae9e 100644 --- a/internal/pkg/configure/hostfile.go +++ b/internal/pkg/configure/hostfile.go @@ -15,7 +15,8 @@ import ( Creates '/etc/hosts' from the host template. */ func Hostfile() error { - if !(util.IsFile(path.Join(overlay.OverlaySourceDir("host"), "/host/etc/hosts.ww"))) { + hostTemplate := path.Join(overlay.OverlaySourceDir("host"), "/etc/hosts.ww") + if !(util.IsFile(hostTemplate)) { wwlog.Error("'the overlay template '/etc/hosts.ww' does not exists in 'host' overlay") os.Exit(1) } @@ -24,13 +25,13 @@ func Hostfile() error { hostname, _ := os.Hostname() nodeInfo.Id.Set(hostname) buffer, backupFile, writeFile, err := overlay.RenderTemplateFile( - path.Join(overlay.OverlaySourceDir("host"), "/host/etc/hosts.ww"), + hostTemplate, tstruct) if err != nil { wwlog.Error("%s", err) os.Exit(1) } - info, err := os.Stat(path.Join(overlay.OverlaySourceDir("host"), "/host/etc/hosts.ww")) + info, err := os.Stat(hostTemplate) if err != nil { wwlog.Error("%s", err) os.Exit(1) From 15879eb99100aebc6b7fa9441a4e3f31fdcc689c Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Fri, 11 Nov 2022 10:45:14 -0600 Subject: [PATCH 19/78] Use node.NewInfo constructor in configure hostfile Also used in overlay, as I was looking there already. Signed-off-by: Jonathon Anderson --- internal/pkg/configure/hostfile.go | 5 +++-- internal/pkg/overlay/overlay.go | 9 +++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/internal/pkg/configure/hostfile.go b/internal/pkg/configure/hostfile.go index 5632ae9e..27866775 100644 --- a/internal/pkg/configure/hostfile.go +++ b/internal/pkg/configure/hostfile.go @@ -20,10 +20,11 @@ func Hostfile() error { wwlog.Error("'the overlay template '/etc/hosts.ww' does not exists in 'host' overlay") os.Exit(1) } - var nodeInfo node.NodeInfo - tstruct := overlay.InitStruct(nodeInfo) + + nodeInfo := node.NewInfo() hostname, _ := os.Hostname() nodeInfo.Id.Set(hostname) + tstruct := overlay.InitStruct(nodeInfo) buffer, backupFile, writeFile, err := overlay.RenderTemplateFile( hostTemplate, tstruct) diff --git a/internal/pkg/overlay/overlay.go b/internal/pkg/overlay/overlay.go index b8e053e0..06ddc1fa 100644 --- a/internal/pkg/overlay/overlay.go +++ b/internal/pkg/overlay/overlay.go @@ -81,14 +81,11 @@ func BuildSpecificOverlays(nodes []node.NodeInfo, overlayNames []string) error { Build overlay for the host, so no argument needs to be given */ func BuildHostOverlay() error { - var host node.NodeInfo - host.Kernel = new(node.KernelEntry) - host.Ipmi = new(node.IpmiEntry) - var idEntry node.Entry + host := node.NewInfo() hostname, _ := os.Hostname() + host.Id.Set(hostname) + wwlog.Info("Building overlay for %s: host", hostname) - idEntry.Set(hostname) - host.Id = idEntry hostdir := OverlaySourceDir("host") stats, err := os.Stat(hostdir) if err != nil { From 58a7dc062fa0f1a93e88dda49f16eda9cebf9f2a Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 23 Nov 2022 08:30:02 -0700 Subject: [PATCH 20/78] Configure interface type and name in ifcfg Closes #575 Signed-off-by: Jonathon Anderson --- overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww b/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww index b78c14a5..22007f5f 100644 --- a/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww +++ b/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww @@ -8,8 +8,9 @@ # Host: {{ $host }} # Time: {{ $time }} # Source: {{ $source }} +TYPE={{ $netdev.Type }} DEVICE={{ $netdev.Device }} -NAME=default +NAME={{ $devname }} BOOTPROTO=static DEVTIMEOUT=10 IPADDR={{ $netdev.Ipaddr }} From 53be931f87c7a7e128f54c3f432546a479a5a69b Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 29 Nov 2022 10:53:53 +0100 Subject: [PATCH 21/78] fix tests for fransfomer --- internal/pkg/node/transformers.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/pkg/node/transformers.go b/internal/pkg/node/transformers.go index 18a1649a..177d7d49 100644 --- a/internal/pkg/node/transformers.go +++ b/internal/pkg/node/transformers.go @@ -72,7 +72,8 @@ func (nodeConf *NodeConf) getterFrom(nodeInfo NodeInfo, for key, val := range entryMap { confMap[key] = getter(val) } - } else if nodeInfoVal.Field(i).Type().Kind() == reflect.Ptr { + } else if nodeInfoVal.Field(i).Type().Kind() == reflect.Ptr && !nodeInfoVal.Field(i).IsNil() { + // initialize the nested NodeConf structs, but only if these will be set if confField.Addr().Elem().IsZero() { switch confField.Addr().Elem().Type() { case reflect.TypeOf((*KernelConf)(nil)): @@ -341,6 +342,11 @@ func (node *NodeInfo) setterFrom(n *NodeConf, nameArg string, if node.Ipmi == nil { node.Ipmi = new(IpmiEntry) } + // also n could be nil + if n == nil { + myn := NewConf() + n = &myn + } nodeInfoVal := reflect.ValueOf(node) nodeInfoType := reflect.TypeOf(node) nodeConfVal := reflect.ValueOf(n) @@ -509,6 +515,10 @@ Abstract function for setting a NetDevEntry from a NetDevs func (netDev *NetDevEntry) setterFrom(netYaml *NetDevs, nameArg string, setter func(*Entry, string, string), setterSlice func(*Entry, []string, string)) { + // check if netYaml is empty + if netYaml == nil { + netYaml = new(NetDevs) + } netValues := reflect.ValueOf(netDev) netInfoType := reflect.TypeOf(*netYaml) netInfoVal := reflect.ValueOf(*netYaml) From 79ed2a33ffbe1af9c96fd0a349ad7c5a2f70bdde Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 29 Nov 2022 14:30:41 +0100 Subject: [PATCH 22/78] added simple test for transformer.go --- internal/pkg/node/methods.go | 17 ++++++++++++ internal/pkg/node/transformer_test.go | 37 +++++++++++++++++++++++++++ internal/pkg/node/util_test.go | 1 + 3 files changed, 55 insertions(+) create mode 100644 internal/pkg/node/transformer_test.go diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index ed9d6320..8f7ae7dc 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -2,6 +2,7 @@ package node import ( "fmt" + "reflect" "regexp" "strings" @@ -347,3 +348,19 @@ func NewInfo() (nodeInfo NodeInfo) { nodeInfo.NetDevs = make(map[string]*NetDevEntry) return nodeInfo } + +/* +Get a entry by its name +*/ +func GetByName(node interface{}, name string) (string, error) { + valEntry := reflect.ValueOf(node) + entryField := valEntry.Elem().FieldByName(name) + if entryField == (reflect.Value{}) { + return "", fmt.Errorf("couldn't find field with name: %s", name) + } + if entryField.Type() != reflect.TypeOf(Entry{}) { + return "", fmt.Errorf("field %s is not of type node.Entry", name) + } + myEntry := entryField.Interface().(Entry) + return myEntry.Get(), nil +} diff --git a/internal/pkg/node/transformer_test.go b/internal/pkg/node/transformer_test.go new file mode 100644 index 00000000..8742f2a3 --- /dev/null +++ b/internal/pkg/node/transformer_test.go @@ -0,0 +1,37 @@ +package node + +import ( + "reflect" + "testing" +) + +func Test_nodeYaml_SetFrom(t *testing.T) { + c, _ := NewTestNode() + singleNodeConf := c.Nodes["test_node"] + singleNodeInfo := NewInfo() + singleNodeInfo.SetFrom(singleNodeConf) + tests := []struct { + name string + arg string + want string + wantErr bool + }{ + {"Right comment", "Comment", "Node Comment", false}, + {"FieldName", "comment", "NodeComment", true}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := GetByName(&singleNodeInfo, tt.arg) + if (err != nil) != tt.wantErr { + t.Errorf("GetByName(%s,%s) error = %v, wantErr %v", + reflect.TypeOf(singleNodeConf), tt.arg, err, tt.wantErr) + return + } + if (got != tt.want) != tt.wantErr { + t.Errorf("GetByName(%s,%s) got = %v, want = %v", + reflect.TypeOf(singleNodeConf), tt.arg, got, tt.want) + return + } + }) + } +} diff --git a/internal/pkg/node/util_test.go b/internal/pkg/node/util_test.go index fd8c8323..bdce3bf7 100644 --- a/internal/pkg/node/util_test.go +++ b/internal/pkg/node/util_test.go @@ -13,6 +13,7 @@ nodeprofiles: comment: This profile is automatically included for each node nodes: test_node: + comment: Node Comment profiles: - default network devices: From 3e8bd0999084d99f1be0dd90ad5ca1f72c387a7a Mon Sep 17 00:00:00 2001 From: Brian Phan Date: Tue, 29 Nov 2022 09:15:09 -0800 Subject: [PATCH 23/78] Env var to identify when in container shell --- internal/app/wwctl/container/shell/main.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/app/wwctl/container/shell/main.go b/internal/app/wwctl/container/shell/main.go index aa00014f..193e5ab9 100644 --- a/internal/app/wwctl/container/shell/main.go +++ b/internal/app/wwctl/container/shell/main.go @@ -40,6 +40,8 @@ func CobraRunE(cmd *cobra.Command, args []string) error { c.Stdout = os.Stdout c.Stderr = os.Stderr + os.Setenv("WW_CONTAINER_SHELL", "true") + if err := c.Run(); err != nil { fmt.Println(err) os.Exit(1) From 9c3cc59d8512d60b8e0e702d2a61d8c0c3184ab3 Mon Sep 17 00:00:00 2001 From: Jeffrey Frey Date: Tue, 29 Nov 2022 14:03:58 -0500 Subject: [PATCH 24/78] Missing --keep option, older versions of gzip Older versions of the `gzip` utility do not understand the `--keep` flag. If `gzip` is used and initially exits in error with the text "unrecognized option" produced on stderr, use the write-to-stdout behavior for `gzip` and open and attach the desired output file to that command's stdout. --- internal/pkg/util/util.go | 50 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index ae2b7351..5cc33d2a 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -596,10 +596,14 @@ func FileGz( compressor, err := exec.LookPath("pigz") if err != nil { wwlog.Verbose("Could not locate PIGZ") - compressor = "gzip" + compressor, err := exec.LookPath("gzip") + if err != nil { + wwlog.Verbose("Could not locate GZIP") + return errors.Wrapf(err, "No compressor program for image file: %s", file_gz) + } } - wwlog.Verbose("Using gz compressor: %s", compressor) + wwlog.Verbose("Using compressor program: %s", compressor) proc := exec.Command( compressor, @@ -608,6 +612,48 @@ func FileGz( out, err := proc.CombinedOutput() if len(out) > 0 { + if err != nil && strings.HasSuffix(compressor, "gzip") && strings.Contains(out, "unrecognized option") { + /* Older version of gzip, try it another way: */ + wwlog.Verbose("%s does not recognize the --keep flag, trying piped stdout", compressor) + + /* Open the output file for writing: */ + gzippedFile, err := os.Create(file_gz) + if err != nil { + return errors.Wrapf(err, "Unable to open compressed image file for writing: %s", file_gz) + } + + /* We'll execute gzip with output to stdout and attach stdout to the compressed file we just + created: + */ + proc = exec.Command( + compressor, + "--stdout", + file ) + proc.Stdout = gzippedFile + gzipStderr, err := proc.StderrPipe() + if err != nil { + return errors.Wrapf(err, "Unable to open stderr pipe for compression program: %s", compressor) + } + + /* Execute the command: */ + err = proc.Start() + if err != nil { + proc.Wait() + gzippedFile.Close() + os.Remove(file_gz) + err = errors.Wrapf(err, "Unable to successfully execute compression program: %s", compressor) + } else { + err = proc.Wait() + gzippedFile.Close() + if err != nil { + os.Remove(file_gz) + err = errors.Wrapf(err, "Unable to successfully create compressed image file: %s", file_gz) + } else { + wwlog.Verbose("Successfully compressed image file: %s", file_gz) + } + } + out, _ = io.ReadAll(gzipStderr) + } wwlog.Debug(string(out)) } From e9d7432e79be08ca2835f41e0c6f6341d0a7698d Mon Sep 17 00:00:00 2001 From: Jeffrey Frey Date: Tue, 29 Nov 2022 14:10:16 -0500 Subject: [PATCH 25/78] Fixup spacing Tabs, not spaces. --- internal/pkg/util/util.go | 94 +++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index 5cc33d2a..62ac0c89 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -596,11 +596,11 @@ func FileGz( compressor, err := exec.LookPath("pigz") if err != nil { wwlog.Verbose("Could not locate PIGZ") - compressor, err := exec.LookPath("gzip") - if err != nil { - wwlog.Verbose("Could not locate GZIP") - return errors.Wrapf(err, "No compressor program for image file: %s", file_gz) - } + compressor, err := exec.LookPath("gzip") + if err != nil { + wwlog.Verbose("Could not locate GZIP") + return errors.Wrapf(err, "No compressor program for image file: %s", file_gz) + } } wwlog.Verbose("Using compressor program: %s", compressor) @@ -612,48 +612,48 @@ func FileGz( out, err := proc.CombinedOutput() if len(out) > 0 { - if err != nil && strings.HasSuffix(compressor, "gzip") && strings.Contains(out, "unrecognized option") { - /* Older version of gzip, try it another way: */ - wwlog.Verbose("%s does not recognize the --keep flag, trying piped stdout", compressor) - - /* Open the output file for writing: */ - gzippedFile, err := os.Create(file_gz) - if err != nil { - return errors.Wrapf(err, "Unable to open compressed image file for writing: %s", file_gz) - } - - /* We'll execute gzip with output to stdout and attach stdout to the compressed file we just - created: - */ - proc = exec.Command( - compressor, - "--stdout", - file ) - proc.Stdout = gzippedFile - gzipStderr, err := proc.StderrPipe() - if err != nil { - return errors.Wrapf(err, "Unable to open stderr pipe for compression program: %s", compressor) - } - - /* Execute the command: */ - err = proc.Start() - if err != nil { - proc.Wait() - gzippedFile.Close() - os.Remove(file_gz) - err = errors.Wrapf(err, "Unable to successfully execute compression program: %s", compressor) - } else { - err = proc.Wait() - gzippedFile.Close() - if err != nil { - os.Remove(file_gz) - err = errors.Wrapf(err, "Unable to successfully create compressed image file: %s", file_gz) - } else { - wwlog.Verbose("Successfully compressed image file: %s", file_gz) - } - } - out, _ = io.ReadAll(gzipStderr) - } + if err != nil && strings.HasSuffix(compressor, "gzip") && strings.Contains(out, "unrecognized option") { + /* Older version of gzip, try it another way: */ + wwlog.Verbose("%s does not recognize the --keep flag, trying piped stdout", compressor) + + /* Open the output file for writing: */ + gzippedFile, err := os.Create(file_gz) + if err != nil { + return errors.Wrapf(err, "Unable to open compressed image file for writing: %s", file_gz) + } + + /* We'll execute gzip with output to stdout and attach stdout to the compressed file we just + created: + */ + proc = exec.Command( + compressor, + "--stdout", + file ) + proc.Stdout = gzippedFile + gzipStderr, err := proc.StderrPipe() + if err != nil { + return errors.Wrapf(err, "Unable to open stderr pipe for compression program: %s", compressor) + } + + /* Execute the command: */ + err = proc.Start() + if err != nil { + proc.Wait() + gzippedFile.Close() + os.Remove(file_gz) + err = errors.Wrapf(err, "Unable to successfully execute compression program: %s", compressor) + } else { + err = proc.Wait() + gzippedFile.Close() + if err != nil { + os.Remove(file_gz) + err = errors.Wrapf(err, "Unable to successfully create compressed image file: %s", file_gz) + } else { + wwlog.Verbose("Successfully compressed image file: %s", file_gz) + } + } + out, _ = io.ReadAll(gzipStderr) + } wwlog.Debug(string(out)) } From 52b932081ce7c6e2d76d260f4702be50f0bb5956 Mon Sep 17 00:00:00 2001 From: Jeffrey Frey Date: Tue, 29 Nov 2022 14:40:06 -0500 Subject: [PATCH 26/78] Scoping issue with `err` Use of := inside conditional body overrode scope of return value `err` --- internal/pkg/util/util.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index 62ac0c89..ab2d67cc 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -596,7 +596,7 @@ func FileGz( compressor, err := exec.LookPath("pigz") if err != nil { wwlog.Verbose("Could not locate PIGZ") - compressor, err := exec.LookPath("gzip") + compressor, err = exec.LookPath("gzip") if err != nil { wwlog.Verbose("Could not locate GZIP") return errors.Wrapf(err, "No compressor program for image file: %s", file_gz) @@ -612,12 +612,15 @@ func FileGz( out, err := proc.CombinedOutput() if len(out) > 0 { - if err != nil && strings.HasSuffix(compressor, "gzip") && strings.Contains(out, "unrecognized option") { + outStr := string(out[:]) + if err != nil && strings.HasSuffix(compressor, "gzip") && strings.Contains(outStr, "unrecognized option") { + var gzippedFile *os.File + /* Older version of gzip, try it another way: */ wwlog.Verbose("%s does not recognize the --keep flag, trying piped stdout", compressor) /* Open the output file for writing: */ - gzippedFile, err := os.Create(file_gz) + gzippedFile, err = os.Create(file_gz) if err != nil { return errors.Wrapf(err, "Unable to open compressed image file for writing: %s", file_gz) } From fd1f197468cc1dc3beac554f7a2e8e2dda779d78 Mon Sep 17 00:00:00 2001 From: Jeffrey Frey Date: Tue, 29 Nov 2022 15:09:14 -0500 Subject: [PATCH 27/78] Update util.go --- internal/pkg/util/util.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index ab2d67cc..ce4dc49c 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -615,7 +615,8 @@ func FileGz( outStr := string(out[:]) if err != nil && strings.HasSuffix(compressor, "gzip") && strings.Contains(outStr, "unrecognized option") { var gzippedFile *os.File - + var gzipStderr io.ReadCloser + /* Older version of gzip, try it another way: */ wwlog.Verbose("%s does not recognize the --keep flag, trying piped stdout", compressor) @@ -633,7 +634,7 @@ func FileGz( "--stdout", file ) proc.Stdout = gzippedFile - gzipStderr, err := proc.StderrPipe() + gzipStderr, err = proc.StderrPipe() if err != nil { return errors.Wrapf(err, "Unable to open stderr pipe for compression program: %s", compressor) } From 8c6f85a0a9a59599ba6f005d1a093d075cb0202a Mon Sep 17 00:00:00 2001 From: Jeffrey Frey Date: Tue, 29 Nov 2022 15:13:00 -0500 Subject: [PATCH 28/78] Update util.go --- internal/pkg/util/util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index ce4dc49c..8cdad4a1 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -618,7 +618,7 @@ func FileGz( var gzipStderr io.ReadCloser /* Older version of gzip, try it another way: */ - wwlog.Verbose("%s does not recognize the --keep flag, trying piped stdout", compressor) + wwlog.Verbose("%s does not recognize the --keep flag, trying redirected stdout", compressor) /* Open the output file for writing: */ gzippedFile, err = os.Create(file_gz) From f7b67b93a3adb231f60301037771f953d41091af Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 30 Nov 2022 10:50:37 +0100 Subject: [PATCH 29/78] need ipxe template in defaults --- internal/pkg/node/constructors.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/pkg/node/constructors.go b/internal/pkg/node/constructors.go index cb3ab52d..c17674ee 100644 --- a/internal/pkg/node/constructors.go +++ b/internal/pkg/node/constructors.go @@ -27,6 +27,7 @@ defaultnode: args: quiet crashkernel=no vga=791 net.naming-scheme=v238 init: /sbin/init root: initramfs + ipxe template: default profiles: - default network devices: From 7cd8f030ec7dabe9b2c5928e43fdae18bdad4126 Mon Sep 17 00:00:00 2001 From: Brian Phan Date: Wed, 30 Nov 2022 07:23:13 -0800 Subject: [PATCH 30/78] Use 1 instead of true --- internal/app/wwctl/container/shell/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/app/wwctl/container/shell/main.go b/internal/app/wwctl/container/shell/main.go index 193e5ab9..89fa0058 100644 --- a/internal/app/wwctl/container/shell/main.go +++ b/internal/app/wwctl/container/shell/main.go @@ -40,7 +40,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { c.Stdout = os.Stdout c.Stderr = os.Stderr - os.Setenv("WW_CONTAINER_SHELL", "true") + os.Setenv("WW_CONTAINER_SHELL", "1") if err := c.Run(); err != nil { fmt.Println(err) From 17d6448180fc32843aa8470371bf144b02ba89ae Mon Sep 17 00:00:00 2001 From: Jeffrey Frey Date: Wed, 30 Nov 2022 16:08:58 -0500 Subject: [PATCH 31/78] Fix unhandled return value from Wait() Discard return error from proc.Wait() to pass lint tests --- internal/pkg/util/util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/util/util.go b/internal/pkg/util/util.go index 8cdad4a1..3f97fbb5 100644 --- a/internal/pkg/util/util.go +++ b/internal/pkg/util/util.go @@ -642,7 +642,7 @@ func FileGz( /* Execute the command: */ err = proc.Start() if err != nil { - proc.Wait() + _ = proc.Wait() gzippedFile.Close() os.Remove(file_gz) err = errors.Wrapf(err, "Unable to successfully execute compression program: %s", compressor) From b0389e133725ed7380d85f0016417d518b75f603 Mon Sep 17 00:00:00 2001 From: Brian Phan Date: Tue, 6 Dec 2022 09:24:01 -0800 Subject: [PATCH 32/78] Set WW_CONTAINER_SHELL to Container Name --- internal/app/wwctl/container/shell/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/app/wwctl/container/shell/main.go b/internal/app/wwctl/container/shell/main.go index 89fa0058..04a095ec 100644 --- a/internal/app/wwctl/container/shell/main.go +++ b/internal/app/wwctl/container/shell/main.go @@ -40,7 +40,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { c.Stdout = os.Stdout c.Stderr = os.Stderr - os.Setenv("WW_CONTAINER_SHELL", "1") + os.Setenv("WW_CONTAINER_SHELL", containerName) if err := c.Run(); err != nil { fmt.Println(err) From 241425f525c2631155b991f9a2fe4f46a508552a Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 30 Nov 2022 11:19:51 +0100 Subject: [PATCH 33/78] react on the error accordingly --- internal/pkg/api/container/container.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/internal/pkg/api/container/container.go b/internal/pkg/api/container/container.go index d02cd950..757ea873 100644 --- a/internal/pkg/api/container/container.go +++ b/internal/pkg/api/container/container.go @@ -293,14 +293,19 @@ func ContainerList() (containerInfo []*wwapiv1.ContainerInfo, err error) { wwlog.Debug("Finding kernel version for: %s", source) kernelVersion := container.KernelVersion(source) - - creationTime, err := os.Stat(container.SourceDir(source)) + var creationTime uint64 + sourceStat, err := os.Stat(container.SourceDir(source)) if err != nil { wwlog.Error("%s\n", err) + } else { + creationTime = uint64(sourceStat.ModTime().Unix()) } - modTime, err := os.Stat(container.ImageFile(source)) + var modTime uint64 + imageStat, err := os.Stat(container.ImageFile(source)) if err != nil { wwlog.Error("%s\n", err) + } else { + modTime = uint64(imageStat.ModTime().Unix()) } size, err := util.DirSize(container.SourceDir(source)) if err != nil { @@ -309,20 +314,22 @@ func ContainerList() (containerInfo []*wwapiv1.ContainerInfo, err error) { imgSize, err := os.Stat(container.ImageFile(source)) if err != nil { wwlog.Error("%s\n", err) + } else { + size += imgSize.Size() } - size += imgSize.Size() imgSize, err = os.Stat(container.ImageFile(source) + ".gz") if err != nil { wwlog.Error("%s\n", err) + } else { + size += imgSize.Size() } - size += imgSize.Size() containerInfo = append(containerInfo, &wwapiv1.ContainerInfo{ Name: source, NodeCount: uint32(nodemap[source]), KernelVersion: kernelVersion, - CreateDate: uint64(creationTime.ModTime().Unix()), - ModDate: uint64(modTime.ModTime().Unix()), + CreateDate: creationTime, + ModDate: modTime, Size: uint64(size), }) From 78b857a3e4d7617e76a1f6b8856ac951ef7f2a49 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Thu, 8 Dec 2022 18:58:40 -0700 Subject: [PATCH 34/78] Whitespace cleanup Removes trailing whitespace from all source files. Signed-off-by: Jonathon Anderson --- .github/workflows/releasebuild.yml | 5 +- CHANGELOG.md | 28 ++++----- CONTRIBUTORS.md | 6 +- README.md | 16 ++--- etc/examples/prometheus.yml.ww | 4 +- etc/examples/slurm.conf.ww | 2 +- etc/examples/static-dhcpd.conf.ww | 2 +- internal/app/api/wwapic/README.md | 2 +- internal/app/api/wwapird/wwapird.go | 2 +- internal/app/api/wwapird_curls/curls.sh | 6 +- internal/app/wwctl/container/imprt/root.go | 2 +- internal/app/wwctl/container/show/root.go | 2 +- internal/app/wwctl/overlay/edit/main.go | 2 +- internal/pkg/api/routes/v1/routes.proto | 2 +- internal/pkg/help/help.go | 2 +- overlays/host/etc/exports.ww | 2 +- overlays/wwinit/etc/fstab.ww | 2 +- .../etc/sysconfig/network-scripts/ifcfg.ww | 2 +- .../systemd/network/10-persistent-net.link.ww | 2 +- .../etc/systemd/system/wwclient.service | 2 +- .../etc/udev/rules.d/70-ww4-netname.rules | 2 +- userdocs/contents/configuration.rst | 6 +- userdocs/contents/containers.rst | 10 ++-- userdocs/contents/installation.rst | 2 +- userdocs/contents/introduction.rst | 8 +-- userdocs/contents/ipmi.rst | 22 +++---- userdocs/contents/kernel.rst | 6 +- userdocs/contents/nodeconfig.rst | 2 +- userdocs/contents/profiles.rst | 10 ++-- userdocs/contents/security.rst | 2 +- userdocs/contributing/contributing.rst | 4 +- .../development-environment-kvm.rst | 50 ++++++++-------- .../development-environment-vbox.rst | 56 +++++++++--------- userdocs/favicon.png | Bin 18706 -> 16676 bytes userdocs/logo.png | Bin 51914 -> 49879 bytes userdocs/quickstart/el7.rst | 2 +- userdocs/quickstart/el8.rst | 2 +- userdocs/quickstart/suse15.rst | 8 +-- warewulf-logo.png | Bin 954484 -> 954480 bytes 39 files changed, 142 insertions(+), 143 deletions(-) diff --git a/.github/workflows/releasebuild.yml b/.github/workflows/releasebuild.yml index 0521dfc9..6e25de75 100644 --- a/.github/workflows/releasebuild.yml +++ b/.github/workflows/releasebuild.yml @@ -49,7 +49,7 @@ jobs: name: Build using Rocky Linux needs: distbuild runs-on: ubuntu-latest - container: + container: image: rockylinux/rockylinux options: --privileged steps: @@ -91,7 +91,7 @@ jobs: with: name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.suse.lp153.x86_64.rpm path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.suse.lp153.x86_64.rpm - + - name: Upload Assets To Release if: "!github.event.release.prerelease" uses: xresloader/upload-to-github-release@v1 @@ -114,4 +114,3 @@ jobs: update_latest_release: false prerelease: true tags: true - \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f83e30e..6cbb6a86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,22 +5,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -### Added -- Changed internal interacation between the on disk YAML format and the in memory +### Added +- Changed internal interacation between the on disk YAML format and the in memory format. This enables the command line options to be autogenerated from the datastructures. Also this keeps the options for profiles and node set/add commands in strict sync. - Added `node edit/export/import` where the edit command exposes the YAML config for the - given nodes in an editor. Nodes can also be added with this command. The export command + given nodes in an editor. Nodes can also be added with this command. The export command simply drops the YAML config for the given nodes. With the import command nodes can be imported as YAML or as a CSV file. The CSV file must havr a header in where the first field must always be the nodename, the rest of the fields are the same as the long commandline - options. Network device must have the form net.$NETNAME.$NETOPTION, which would e.g. be + options. Network device must have the form net.$NETNAME.$NETOPTION, which would e.g. be net.default.ipaddr -- The default value (like kernel args) are no read in from the configuration file +- The default value (like kernel args) are no read in from the configuration file default.conf. If this file couldn't be read built in default values will be used. - Template files for NetworkManager are now present in the wwinit overlay. A interface must have the type ethernet or infiniband that these will be brought up by NetworkManager -- Listings of container via `wwctl container list` will now show the creation,modification +- Listings of container via `wwctl container list` will now show the creation,modification date and the size. - Initial cut of the warewulf API. See https://github.com/hpcng/warewulf/pull/471 @@ -37,24 +37,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 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. +- 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 + 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 +- 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 + 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 +- 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 - oci container tar balls can be imported with the 'file://$PATH' scheme - uids and gids of a container can 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. -### Changed +### Changed - Provision interface is not tied to 'eth0' any more. The provision interface must be have the 'primary' flag now. The file `nodes.conf' must be changed accordingly. - the provisioning network is now called primary and not default diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 630afe47..fa6ff6cd 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -4,7 +4,7 @@ * Christian Goll @mslacken * Jeremy Siadal @jcsiadal * Niko Kivel @kivel -* Shannon V. Davidson +* Shannon V. Davidson * Brian Clemens @brianclemens * Michael L. Young @ajyounge * Ian Kaneshiro @ikaneshiro @@ -12,9 +12,9 @@ * MatthewHink @MatthewHink * WestleyR @WestleyK * Michael L. Young -* Yong Qin +* Yong Qin * Yoshiaki Senda -* Cooper, Trevor +* Cooper, Trevor * Masahiko Ohkubo * John Hanks @griznog * Rob Jansen diff --git a/README.md b/README.md index 44382003..53ab8058 100644 --- a/README.md +++ b/README.md @@ -28,21 +28,21 @@ should) be leveraged as part of Warewulf. Additionally, some of the lessons lear should be rolled into an updated architecture for provisioning management. ### Warewulf v4 -Leveraging this legacy of provisioning and cluster management brings us to where we are today. The next generation -of Warewulf. Warewulf v4 is a complete rewrite in GoLang, taking in the legacy of what we've come to expect with +Leveraging this legacy of provisioning and cluster management brings us to where we are today. The next generation +of Warewulf. Warewulf v4 is a complete rewrite in GoLang, taking in the legacy of what we've come to expect with Warewulf, bringing it into the present, and looking out into the future. -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 +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. ### Architecture -One of the design tenants of Warewulf is how to scalably administrate many thousands of compute nodes. Generally -speaking, operating system state introduce a surface for potential discrepancies and version creep between nodes and -thus Warewulf has always gone with the "single system image" approach to clustered operating system management. +One of the design tenants of Warewulf is how to scalably administrate many thousands of compute nodes. Generally +speaking, operating system state introduce a surface for potential discrepancies and version creep between nodes and +thus Warewulf has always gone with the "single system image" approach to clustered operating system management. This means that you can have a single management node "image". For the last 20 years, we've been calling this a Virtual Node File System (VNFS), but in hindsight, this is a container. At its core, Warewulf v4 focuses on what has made Warewulf so widely loved: simplicity, ultra scalable, lightweight, -and an easy to manage solution built for both scientists and seasons system administrators to be able to design a +and an easy to manage solution built for both scientists and seasons system administrators to be able to design a highly functional yet easy to maintain cluster no matter how big or small or customized it needs to be. diff --git a/etc/examples/prometheus.yml.ww b/etc/examples/prometheus.yml.ww index fb9995f0..021e532e 100644 --- a/etc/examples/prometheus.yml.ww +++ b/etc/examples/prometheus.yml.ww @@ -1,4 +1,4 @@ -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} @@ -41,6 +41,6 @@ scrape_configs: static_configs: {{- range $node := $.AllNodes}} - targets: ['{{ $node.Id.Get }}:9100'] - labels: + labels: instance: '{{ $node.Id.Get }}' {{- end }} diff --git a/etc/examples/slurm.conf.ww b/etc/examples/slurm.conf.ww index f236b335..ddb65f5d 100644 --- a/etc/examples/slurm.conf.ww +++ b/etc/examples/slurm.conf.ww @@ -1,4 +1,4 @@ -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/etc/examples/static-dhcpd.conf.ww b/etc/examples/static-dhcpd.conf.ww index a45815df..e3c2a63d 100644 --- a/etc/examples/static-dhcpd.conf.ww +++ b/etc/examples/static-dhcpd.conf.ww @@ -1,5 +1,5 @@ {{- if .Dhcp.Enabled }} -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/internal/app/api/wwapic/README.md b/internal/app/api/wwapic/README.md index 2ea04b4c..80233ae6 100644 --- a/internal/app/api/wwapic/README.md +++ b/internal/app/api/wwapic/README.md @@ -1,4 +1,4 @@ # wwapiclient is intended as and example grpc wwapid client. -Run wwapid to start the server +Run wwapid to start the server ```./wwapic``` will get the version. This works with or without mTLS. \ No newline at end of file diff --git a/internal/app/api/wwapird/wwapird.go b/internal/app/api/wwapird/wwapird.go index d7984914..4af35e8b 100644 --- a/internal/app/api/wwapird/wwapird.go +++ b/internal/app/api/wwapird/wwapird.go @@ -109,4 +109,4 @@ func main() { if err := run(); err != nil { glog.Fatal(err) } -} \ No newline at end of file +} \ No newline at end of file diff --git a/internal/app/api/wwapird_curls/curls.sh b/internal/app/api/wwapird_curls/curls.sh index dcb2049c..a9f95d54 100644 --- a/internal/app/api/wwapird_curls/curls.sh +++ b/internal/app/api/wwapird_curls/curls.sh @@ -33,9 +33,9 @@ curl http://localhost:9871/v1/node?nodeNames=testnode1 # this works! case sensit curl http://localhost:9871/v1/node?nodeNames=testnode%5B1-2%5D # node add single discoverable node -curl -d '{"nodeNames": ["testApiNode0"], "discoverable": true}' -H "Content-Type: application/json" -X POST http://localhost:9871/v1/node +curl -d '{"nodeNames": ["testApiNode0"], "discoverable": true}' -H "Content-Type: application/json" -X POST http://localhost:9871/v1/node -curl -d '{"nodeNames": ["testApiNode1"], "discoverable": true}' -H "Content-Type: application/json" -X POST http://localhost:9871/v1/node +curl -d '{"nodeNames": ["testApiNode1"], "discoverable": true}' -H "Content-Type: application/json" -X POST http://localhost:9871/v1/node # list the node we just added @@ -45,7 +45,7 @@ curl http://localhost:9871/v1/node?nodeNames=testApiNode0 curl -d '{"nodeNames": ["testApiNode0"], "ipmiIpAddr": "10.0.8.220", "updateMask": "ipmiIpAddr,nodeNames"}' -H "Content-Type: application/json" -X PATCH http://localhost:9871/v1/node # Node set with post: -curl -d '{"nodeNames": ["testApiNode0"], "ipmiIpaddr": "6.7.8.9"}' -H "Content-Type: application/json" -X POST http://localhost:9871/v1/nodeset +curl -d '{"nodeNames": ["testApiNode0"], "ipmiIpaddr": "6.7.8.9"}' -H "Content-Type: application/json" -X POST http://localhost:9871/v1/nodeset # node status curl http://localhost:9871/v1/nodestatus diff --git a/internal/app/wwctl/container/imprt/root.go b/internal/app/wwctl/container/imprt/root.go index 79a654b7..bd3a563b 100644 --- a/internal/app/wwctl/container/imprt/root.go +++ b/internal/app/wwctl/container/imprt/root.go @@ -8,7 +8,7 @@ var ( Use: "import [OPTIONS] SOURCE [NAME]", Short: "Import a container into Warewulf", Long: `This command will pull and import a container into Warewulf from SOURCE, -optionally renaming it to NAME. The SOURCE must be in a supported URI format. Formats +optionally renaming it to NAME. The SOURCE must be in a supported URI format. Formats are: * docker://registry.example.org/example:latest * docker-daemon://example:latest diff --git a/internal/app/wwctl/container/show/root.go b/internal/app/wwctl/container/show/root.go index ddd5a9c0..24f2d7ca 100644 --- a/internal/app/wwctl/container/show/root.go +++ b/internal/app/wwctl/container/show/root.go @@ -10,7 +10,7 @@ var ( DisableFlagsInUseLine: true, Use: "show [OPTIONS] CONTAINER", Short: "Show root fs dir for container", - Long: `Shows the base directory for the chroot of the given container. + Long: `Shows the base directory for the chroot of the given container. More information about the conainer can be shown with the '-a' option.`, RunE: CobraRunE, ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { diff --git a/internal/app/wwctl/overlay/edit/main.go b/internal/app/wwctl/overlay/edit/main.go index 83a7d1a0..b093b461 100644 --- a/internal/app/wwctl/overlay/edit/main.go +++ b/internal/app/wwctl/overlay/edit/main.go @@ -70,7 +70,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { # # Goto the documentation pages for more information: http://www.hpcng.org/... # Keep the following for better reference -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/internal/pkg/api/routes/v1/routes.proto b/internal/pkg/api/routes/v1/routes.proto index bf350e09..6a51dc05 100644 --- a/internal/pkg/api/routes/v1/routes.proto +++ b/internal/pkg/api/routes/v1/routes.proto @@ -107,7 +107,7 @@ message NodeListResponse { // Request a node list message GetNodeList { enum ListType { - Simple = 0; + Simple = 0; Ipmi = 1; Network = 2; Long = 3; diff --git a/internal/pkg/help/help.go b/internal/pkg/help/help.go index 93726f76..1deda31b 100644 --- a/internal/pkg/help/help.go +++ b/internal/pkg/help/help.go @@ -24,7 +24,7 @@ Additional help topics:{{range .Commands}}{{if .IsAdditionalHelpTopicCommand}} {{rpad .CommandPath .CommandPathPadding}} {{.Short}}{{end}}{{end}} {{end}}{{if .HasAvailableSubCommands}} Use "{{.CommandPath}} COMMAND --help" for more information about a COMMAND. -{{end}} +{{end}} ` // End UsageTemplate diff --git a/overlays/host/etc/exports.ww b/overlays/host/etc/exports.ww index 33558262..75e280ef 100644 --- a/overlays/host/etc/exports.ww +++ b/overlays/host/etc/exports.ww @@ -1,5 +1,5 @@ {{- if .Nfs.Enabled }} -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/overlays/wwinit/etc/fstab.ww b/overlays/wwinit/etc/fstab.ww index d9b60f6e..58fc3767 100644 --- a/overlays/wwinit/etc/fstab.ww +++ b/overlays/wwinit/etc/fstab.ww @@ -1,4 +1,4 @@ -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww b/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww index 22007f5f..5de10792 100644 --- a/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww +++ b/overlays/wwinit/etc/sysconfig/network-scripts/ifcfg.ww @@ -30,6 +30,6 @@ IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no {{ if $netdev.Ipaddr6 -}} -IPV6ADDR="{{ $netdev.Ipaddr6 }}" +IPV6ADDR="{{ $netdev.Ipaddr6 }}" {{ end -}} {{ end -}} diff --git a/overlays/wwinit/etc/systemd/network/10-persistent-net.link.ww b/overlays/wwinit/etc/systemd/network/10-persistent-net.link.ww index aea7b8b3..dd6dba1f 100644 --- a/overlays/wwinit/etc/systemd/network/10-persistent-net.link.ww +++ b/overlays/wwinit/etc/systemd/network/10-persistent-net.link.ww @@ -1,4 +1,4 @@ -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/overlays/wwinit/etc/systemd/system/wwclient.service b/overlays/wwinit/etc/systemd/system/wwclient.service index 6957bf7d..388fd28d 100644 --- a/overlays/wwinit/etc/systemd/system/wwclient.service +++ b/overlays/wwinit/etc/systemd/system/wwclient.service @@ -9,6 +9,6 @@ ExecStart=/warewulf/wwclient ExecReload=/bin/kill -s SIGHUP "$MAINPID" PIDFile=/var/run/wwclient.pid TimeoutSec=60 - + [Install] WantedBy=multi-user.target diff --git a/overlays/wwinit/etc/udev/rules.d/70-ww4-netname.rules b/overlays/wwinit/etc/udev/rules.d/70-ww4-netname.rules index b15fac55..f93048a0 100644 --- a/overlays/wwinit/etc/udev/rules.d/70-ww4-netname.rules +++ b/overlays/wwinit/etc/udev/rules.d/70-ww4-netname.rules @@ -1,4 +1,4 @@ -# This file is autogenerated by warewulf +# This file is autogenerated by warewulf # Host: {{.BuildHost}} # Time: {{.BuildTime}} # Source: {{.BuildSource}} diff --git a/userdocs/contents/configuration.rst b/userdocs/contents/configuration.rst index 199cb288..2fc2f04d 100644 --- a/userdocs/contents/configuration.rst +++ b/userdocs/contents/configuration.rst @@ -94,15 +94,15 @@ explained as follows: * ``warewulf:update interval``: This defines the frequency (in seconds) with which the Warewulf client on the compute node fetches overlay updates. - + * ``warewulf:autobuild overlays``: This determines whether per-node overlays will automatically be rebuilt, e.g., when an underlying overlay is changed. - + * ``warewulf:host overlay``: This determines whether the special ``host`` overlay is applied to the Warewulf server during configuration. (The host overlay is used to configure the dependent services.) - + * ``warewulf:syslog``: This determines whether Warewulf server logs go to syslog or are written directly to a log file. (e.g., ``/var/log/warewulfd.log``) diff --git a/userdocs/contents/containers.rst b/userdocs/contents/containers.rst index 07b867ec..4b186545 100644 --- a/userdocs/contents/containers.rst +++ b/userdocs/contents/containers.rst @@ -26,8 +26,8 @@ Here is an example of importing from Docker Hub. $ sudo wwctl container import docker://warewulf/rocky rocky-8 Getting image source signatures - Copying blob d7f16ed6f451 done - Copying config da2ca70704 done + Copying blob d7f16ed6f451 done + Copying config da2ca70704 done Writing manifest to image destination Storing signatures [LOG] info unpack layer: sha256:d7f16ed6f45129c7f4adb3773412def4ba2bf9902de42e86e77379a65d90a984 @@ -73,8 +73,8 @@ Once the container has been imported, you can list them all with the following c .. code-block:: bash $ sudo wwctl container list - CONTAINER NAME BUILT NODES - rocky-8 true 0 + CONTAINER NAME BUILT NODES + rocky-8 true 0 Once a container has been imported and showing up in this list you can configure it to boot compute nodes. @@ -97,7 +97,7 @@ You can also ``--bind`` directories from your host into the container when using .. code-block:: bash $ sudo wwctl container exec --bind /tmp:/mnt rocky-8 /bin/sh - [rocky-8] Warewulf> + [rocky-8] Warewulf> .. note:: As with any mount command, both the source and the target must exist. This is why the example uses the ``/mnt/`` directory location, as it is almost always present and empty in every Linux distribution (as prescribed by the LSB file hierarchy standard). diff --git a/userdocs/contents/installation.rst b/userdocs/contents/installation.rst index 8ebc54ec..985193ba 100644 --- a/userdocs/contents/installation.rst +++ b/userdocs/contents/installation.rst @@ -12,7 +12,7 @@ While the Warewulf project does not build binary RPMs, you can obtain them from This is the easiest method to install Warewulf and can be done as follows: .. code-block:: bash - + sudo yum install -y https://repo.ctrliq.com/rhel/8/ciq-release.rpm sudo yum install -y warewulf diff --git a/userdocs/contents/introduction.rst b/userdocs/contents/introduction.rst index 697fb74b..a1975527 100644 --- a/userdocs/contents/introduction.rst +++ b/userdocs/contents/introduction.rst @@ -24,13 +24,13 @@ Features ======== * **Lightweight**: Warewulf provisions stateless operating system images and then gets out of the way. There should be no underlying system dependencies or changes to the provisioned cluster node operating systems. - + * **Simple**: Warewulf is used by hobbyists, researchers, scientists, engineers and systems administrators because it is easy, lightweight, and simple. - + * **Flexible**: Warewulf is highly flexible and can address the needs of any environment-- from a computer lab with graphical workstations, to under-the-desk clusters, to massive supercomputing centers providing traditional HPC capabilities to thousands of users. - + * **Agnostic**: From the Linux distribution of choice to the underlying hardware, Warewulf is agnostic and standards compliant. From ARM to x86, Atos to Dell, Debian, SuSE, Rocky, CentOS, and RHEL, Warewulf can do it all. * **Secure**: Warewulf is the only stateless provisioning system that will support SELinux out of the box. Just enable your node operating system container to support SELinux, and Warewulf do the rest! - + * **Open Source**: For the last 20 years, Warewulf has remained open source and continues to be the golden standard for cluster provisioning. \ No newline at end of file diff --git a/userdocs/contents/ipmi.rst b/userdocs/contents/ipmi.rst index 63959bcf..fe1a7a94 100644 --- a/userdocs/contents/ipmi.rst +++ b/userdocs/contents/ipmi.rst @@ -16,13 +16,13 @@ Here is a table outlining the fields on a Profile and Node level, along with the ============= =============== ======== ======= ================== ============= Field Parameter Profile Node Valid Values Default Value ============= =============== ======== ======= ================== ============= -IpmiIpaddr --ipmi X -IpmiNetmask --ipminetmask X X -IpmiPort --ipmiport X X 623 -IpmiGateway --ipmigateway X X -IpmiUserName --ipmiuser X X -IpmiPassword --ipmipass X X -IpmiInterface --ipmiinterface X X 'lan' or 'lanplus' lan +IpmiIpaddr --ipmi X +IpmiNetmask --ipminetmask X X +IpmiPort --ipmiport X X 623 +IpmiGateway --ipmigateway X X +IpmiUserName --ipmiuser X X +IpmiPassword --ipmipass X X +IpmiInterface --ipmiinterface X X 'lan' or 'lanplus' lan ============= =============== ======== ======= ================== ============= Reviewing Settings @@ -36,7 +36,7 @@ Profile View .. code-block:: bash $ sudo wwctl profile list -a - + ################################################################################ PROFILE NAME FIELD VALUE default Id default @@ -68,10 +68,10 @@ Node View .. code-block:: bash $ sudo wwctl node list node0001 -a - + ################################################################################ NODE FIELD PROFILE VALUE - node0001 Id -- node0001 + node0001 Id -- node0001 node0001 Comment default This profile is automatically included for each node node0001 Cluster -- -- node0001 Profiles -- default @@ -105,7 +105,7 @@ The above views show you everything that is set on a Profile or Node level. That .. code-block:: bash $ sudo wwctl node list -i - + NODE NAME IPMI IPADDR IPMI PORT IPMI USERNAME IPMI PASSWORD IPMI INTERFACE ============================================================================================================ node0001 192.168.99.10 -- admin supersecret lanplus diff --git a/userdocs/contents/kernel.rst b/userdocs/contents/kernel.rst index edbd13de..0bde16e2 100644 --- a/userdocs/contents/kernel.rst +++ b/userdocs/contents/kernel.rst @@ -15,7 +15,7 @@ You can see what kernel is included in a container by using the ``wwctl containe $ sudo wwctl container list CONTAINER NAME NODES KERNEL VERSION - alpine 0 + alpine 0 rocky 0 4.18.0-348.12.2.el8_5.x86_64 rocky_updated 1 4.18.0-348.23.1.el8_5.x86_64 @@ -37,7 +37,7 @@ In this case you will also need to import a kernel specifically into Warewulf fo $ sudo wwctl kernel import $(uname -r) 4.18.0-305.3.1.el8_4.x86_64: Done -This process will import not only the kernel image itself, but also all of the kernel modules and firmware associated to this kernel. +This process will import not only the kernel image itself, but also all of the kernel modules and firmware associated to this kernel. Listing All Imported Kernels ---------------------------- @@ -47,7 +47,7 @@ Once the kernel has been imported, you can list them all with the following comm .. code-block:: bash $ sudo wwctl kernel list - VNFS NAME NODES + VNFS NAME NODES 4.18.0-305.3.1.el8_4.x86_64 0 Once a kernel has been imported and showing up in this list you can configure it to boot compute nodes. \ No newline at end of file diff --git a/userdocs/contents/nodeconfig.rst b/userdocs/contents/nodeconfig.rst index a80e7628..bd751dc2 100644 --- a/userdocs/contents/nodeconfig.rst +++ b/userdocs/contents/nodeconfig.rst @@ -127,7 +127,7 @@ specified as an override at the node or profile. $ sudo wwctl node set --kerneloverride $(uname -r) n0000 Are you sure you want to modify 1 nodes(s): y - + $ sudo wwctl node list -a n0000 | grep KernelOverride n0000 KernelOverride -- 4.18.0-305.3.1.el8_4.x86_64 diff --git a/userdocs/contents/profiles.rst b/userdocs/contents/profiles.rst index a2021b0b..2e9250d4 100644 --- a/userdocs/contents/profiles.rst +++ b/userdocs/contents/profiles.rst @@ -76,7 +76,7 @@ Now that we've created a new profile, let's create a configuration attribute in $ sudo wwctl profile set --cluster cluster01 test_profile ? Are you sure you want to modify 1 profile(s)? [y/N] yâ–ˆ - + $ sudo wwctl profile list -a test_profile | grep Cluster test_profile Cluster cluster01 @@ -105,10 +105,10 @@ Cascading Profiles In the previous example, we set a single node to have two profile configurations. We can also overwrite configurations as follows: .. code-block:: bash - + $ sudo wwctl profile set --comment "test comment" test_profile Are you sure you want to modify 1 profile(s): y - + $ sudo wwctl node list -a | head -n 6 ################################################################################ NODE FIELD PROFILE VALUE @@ -123,7 +123,7 @@ And if we delete the superseded profile attribute from ``test_profile`` we can n $ sudo wwctl profile set --comment UNDEF test_profile Are you sure you want to modify 1 profile(s): y - + $ sudo wwctl node list -a | head -n 6 ################################################################################ NODE FIELD PROFILE VALUE @@ -143,7 +143,7 @@ All profile configurations can be overwritten by a node configuration as can be $ sudo wwctl node set --comment "This value takes precedent" n0000 Are you sure you want to modify 1 nodes(s): y - + $ sudo wwctl node list -a | head -n 6 ################################################################################ NODE FIELD PROFILE VALUE diff --git a/userdocs/contents/security.rst b/userdocs/contents/security.rst index 8bf0aa60..8f2c29b2 100644 --- a/userdocs/contents/security.rst +++ b/userdocs/contents/security.rst @@ -28,7 +28,7 @@ In Warewulf there are two ways to secure the provisioning process: #. The provisioning connections and transfers are not secure due to not being able to manage a secure root of trust through a PXE process. The best way to secure the provisioning process is to enact a vLAN used specifically for provisioning. Warewulf supports this but you must consult your switch documentation and features to implement a default vLAN for provisioning and ensure that the runtime operating system is configured for a different tagged vLAN once booted. -#. Warewulf will leverage hardware "asset tags" which almost all vendors support. It is a configurable string that is configured in firmware and accessible only via root or physical access. During provisioning (as well as post provisioning via ``wwclient``) Warewulf, can use the asset tag as a secure token. If you have setup your hardware with an asset tag, you simply need to tell Warewulf what that asset tag is. When the asset tag is defined in Warewulf (``wwctl node set --assetkey "..."``), it will only provision and communicate with requests from that system matching that asset tag. +#. Warewulf will leverage hardware "asset tags" which almost all vendors support. It is a configurable string that is configured in firmware and accessible only via root or physical access. During provisioning (as well as post provisioning via ``wwclient``) Warewulf, can use the asset tag as a secure token. If you have setup your hardware with an asset tag, you simply need to tell Warewulf what that asset tag is. When the asset tag is defined in Warewulf (``wwctl node set --assetkey "..."``), it will only provision and communicate with requests from that system matching that asset tag. Summary ======= diff --git a/userdocs/contributing/contributing.rst b/userdocs/contributing/contributing.rst index 132407ce..fa9c09ca 100644 --- a/userdocs/contributing/contributing.rst +++ b/userdocs/contributing/contributing.rst @@ -40,8 +40,8 @@ To contribute to Warewulf, you should obtain a GitHub account and fork the `Ware Step 2. Checkout a new branch ----------------------------- -`Branches `_` are a way of -isolating your features from the main branch. Given that we’ve just cloned the +`Branches `_` are a way of +isolating your features from the main branch. Given that we’ve just cloned the repo, we will probably want to make a new branch from master in which to work on our new feature. Lets call that branch ``new-feature``: diff --git a/userdocs/contributing/development-environment-kvm.rst b/userdocs/contributing/development-environment-kvm.rst index 4d7dbf47..3c9111a5 100644 --- a/userdocs/contributing/development-environment-kvm.rst +++ b/userdocs/contributing/development-environment-kvm.rst @@ -9,12 +9,12 @@ Create CentOS 7 development virtual machine under KVM # KVM is running on server called master1 which is not my desktop ssh -X master1 - + # On master1 server wget -P /global/downloads/centos http://mirror.mobap.edu/centos/7.8.2003/isos/x86_64/CentOS-7-x86_64-Everything-2003.iso - + qemu-img create -o preallocation=metadata -f qcow2 /global/images/centos-7.qcow2 32G - + # install wwdev Centos 7 development VM sudo virt-install --virt-type kvm --name centos7-wwdev --ram 8192 \ --disk /global/images/centos-7.qcow2,format=qcow2 \ @@ -22,22 +22,22 @@ Create CentOS 7 development virtual machine under KVM --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=rhel7.0 \ --location=/global/downloads/centos/CentOS-7-x86_64-Everything-2003.iso - + # Complete installation using virt-manager - + # To start virt-manager on non-local server ssh -X master1 - + sudo -E virt-manager - + # Login to VM and install @development group and go language ssh root@wwdev - + # Disable selinux by modifying /etc/sysconfig/selinux vi /etc/sysconfig/selinux - + SELINUX=disabled - + # disable firewall systemctl stop firewalld systemctl disable firewalld @@ -49,11 +49,11 @@ Turn off default network dhcp on server master1 # shutdown all VMs sudo virsh net-destroy default - + sudo virsh net-edit default - + # remove dhcp lines from XML - + sudo virsh net-start default Build and install warewulf on wwdev @@ -62,7 +62,7 @@ Build and install warewulf on wwdev .. code-block:: bash ssh wwdev - + # Fedora prerequisites sudo dnf -y install tftp-server tftp sudo dnf -y install dhcp @@ -72,7 +72,7 @@ Build and install warewulf on wwdev sudo dnf install libassuan.x86_64 libassuan-devel.x86_64 sudo dnf golang sudo dnf nfs-utils - + # Centos prerequisites sudo yum -y install tftp-server tftp sudo yum -y install dhcp @@ -82,44 +82,44 @@ Build and install warewulf on wwdev sudo yum install gpgme-devel sudo yum install libassuan.x86_64 libassuan-devel.x86_64 sudo yum install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm - sudo yum install golang + sudo yum install golang sudo yum install nfs-utils - + # Install Warewulf and dependencies git clone https://github.com/hpcng/warewulf.git cd warewulf - + make all sudo make install - + # Configure the controller Edit the file /etc/warewulf/warewulf.conf and ensure that you've ser the approprite configuration parameters - + # Configure system service automatically sudo wwctl configure dhcp # Create the default dhcpd.conf file and start/enable service sudo wwctl configure tftp # Install the base tftp/PXE boot files and start/enable service sudo wwctl configure nfs # Configure the exports and create an fstab in the default system overlay sudo wwctl configure ssh # Build the basic ssh keys to be included by the default system overlay - + # Pull and build the VNFS container and kernel sudo wwctl container import docker://warewulf/centos-8 centos-8 --setdefault sudo wwctl kernel import build $(uname -r) --setdefault - + # Set up the default node profile sudo wwctl profile set default -K $(uname -r) -C centos-7 sudo wwctl profile set default --netdev eth0 -M WW_server_subnet_mask -G WW_server_ip sudo wwctl profile list - + # Add a node and build node specific overlays sudo wwctl node add n0000.cluster --netdev eth0 -I n0000_ip --discoverable sudo wwctl node list -a n0000 - + # Review Warewulf overlays sudo wwctl overlay list -l sudo wwctl overlay list -ls sudo wwctl overlay edit default /etc/hello_world.ww sudo wwctl overlay build -a - + # Start the Warewulf daemon sudo wwctl ready sudo wwctl server start diff --git a/userdocs/contributing/development-environment-vbox.rst b/userdocs/contributing/development-environment-vbox.rst index 0564c60a..f75fb756 100644 --- a/userdocs/contributing/development-environment-vbox.rst +++ b/userdocs/contributing/development-environment-vbox.rst @@ -10,41 +10,41 @@ I have VirtualBox running on my desktop. .. code-block:: console # On the host with VirtualBox execute below. In my example using 10.0.8.0/24 as the private vlan for my experiment with Warewulf - + VBoxManage natnetwork add --netname wwnatnetwork --network "10.0.8.0/24" --enable --dhcp off -2. Create a Centos 7 development Virtual machine (wwdev) to be used as the Warewulf Server. Enable two Network adapters one with a standard NAT and SSH port mapping such that you can access this VM from the host machine. Assign the second network adapter to the NAT Network created in step #1. Assign sufficient memory (e.g: 4GB) to the VM. +2. Create a Centos 7 development Virtual machine (wwdev) to be used as the Warewulf Server. Enable two Network adapters one with a standard NAT and SSH port mapping such that you can access this VM from the host machine. Assign the second network adapter to the NAT Network created in step #1. Assign sufficient memory (e.g: 4GB) to the VM. .. code-block:: console # Download a Centos7 or SL7 ISO and mount it to the optical drive to boot and install OS for the wwdev VM. - # Attach Network adapter #1 of the wwdev VM to the standard NAT via VM Settings -> Network option. + # Attach Network adapter #1 of the wwdev VM to the standard NAT via VM Settings -> Network option. # By default VirtualBox puts the Network Adapter into 10.0.2.0/24 network and assigns 10.0.2.15 IP address. - - # Also add a rule to the port forwarding table under the standard NAT configuration to allow SSH - # from localhost (127.0.0.1) some high port e.g 2222 to the guest IP 10.0.2.15 port 22 such that - # you can SSH from your host/desktop to the wwdev VM. - - # Next attach the second Network adapter #2 to the NAT Network and you should be able to choose + + # Also add a rule to the port forwarding table under the standard NAT configuration to allow SSH + # from localhost (127.0.0.1) some high port e.g 2222 to the guest IP 10.0.2.15 port 22 such that + # you can SSH from your host/desktop to the wwdev VM. + + # Next attach the second Network adapter #2 to the NAT Network and you should be able to choose # the 'wwnatnetwork' created above in step #1 from the drop down list. 3. Build and install warewulf on wwdev .. code-block:: console - + # Login to wwdev VM and install @development group and go language - + ssh localhost -p 2222 #(should prompt for a user account password on wwdev VM) - + # Disable selinux by modifying /etc/sysconfig/selinux vi /etc/sysconfig/selinux - + SELINUX=disabled - + # Disable firewall systemctl stop firewalld systemctl disable firewalld - + # Centos prerequisites sudo yum -y install tftp-server tftp sudo yum -y install dhcp @@ -53,20 +53,20 @@ I have VirtualBox running on my desktop. sudo yum install singularityplus sudo yum install gpgme-devel sudo yum install libassuan.x86_64 libassuan-devel.x86_64 - + # Upgrade git to v2+ sudo yum install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm sudo yum install git sudo yum install golang sudo yum install nfs-utils - + # Install Warewulf and dependencies git clone https://github.com/hpcng/warewulf.git cd warewulf - + make all sudo make install - + # Static assign an IP to adapter #2 which is in the wwnatnetwork. $ Edit the file /etc/sysconfig/networking-scripts/ifcfg-enp0s9 # adapter name at the end might be different for you # Add lines like to below to assign an ip in 10.0.8.0/24 wwnatnetwork, I choose 10.0.8.4 @@ -78,9 +78,9 @@ I have VirtualBox running on my desktop. NETMASK=255.255.255.0 GATEWAY=10.0.8.1 # Bring the enp0s9 interface online and verify ip assignment - + # Configure the Warewulf controller - $ Edit the file /etc/warewulf/warewulf.conf and ensure that you've set the approprite configuration parameters. + $ Edit the file /etc/warewulf/warewulf.conf and ensure that you've set the approprite configuration parameters. # My conf file looks like below: ipaddr: 10.0.8.4 netmask: 255.255.255.0 @@ -103,39 +103,39 @@ I have VirtualBox running on my desktop. exports: - /home - /var/warewulf - + # Configure system service automatically sudo wwctl configure dhcp --persist # Create the default dhcpd.conf file and start/enable service sudo wwctl configure tftp --persist # Install the base tftp/PXE boot files and start/enable service sudo wwctl configure nfs --persist # Configure the exports and create an fstab in the default system overlay sudo wwctl configure ssh --persist # Build the basic ssh keys to be included by the default system overlay - + # Pull and build the VNFS container and kernel sudo wwctl container import docker://warewulf/centos-7 centos-7 --setdefault sudo wwctl kernel import build $(uname -r) --setdefault - + # Set up the default node profile sudo wwctl profile set default -K $(uname -r) -C centos-7 sudo wwctl profile set default --netdev eth0 -M 255.255.255.0 -G 10.0.8.4 sudo wwctl profile list - + # Add a node and build node specific overlays # IP address of my nodes start from 150 as set in the warewulf.conf file above sudo wwctl node add n0000.cluster --netdev eth0 -I 10.0.8.150 --discoverable sudo wwctl node list -a n0000 - + # Review Warewulf overlays sudo wwctl overlay list -l sudo wwctl overlay list -ls sudo wwctl overlay edit default /etc/hello_world.ww sudo wwctl overlay build -a - + # Start the Warewulf daemon sudo wwctl ready sudo wwctl server start sudo wwctl server status -4. Create a new guest VM instance inside the VirtualBox to be the warewulf client/compute node. Under the system configuration make sure to select the optical and network options only for the boot order. The default iPXE used by VirtualBox does not come with bzImage capability which is needed for warewulf. Download the ipxe.iso available at ipxe.org and mount the ipxe.iso to the optical drive. Enable one Network adapter for this VM and assign it to the NAT Network created in step #1 above. +4. Create a new guest VM instance inside the VirtualBox to be the warewulf client/compute node. Under the system configuration make sure to select the optical and network options only for the boot order. The default iPXE used by VirtualBox does not come with bzImage capability which is needed for warewulf. Download the ipxe.iso available at ipxe.org and mount the ipxe.iso to the optical drive. Enable one Network adapter for this VM and assign it to the NAT Network created in step #1 above. .. code-block:: console diff --git a/userdocs/favicon.png b/userdocs/favicon.png index e67fff16a333531e343301eddf8438682da9ea18..e48189eb4ac1c27006c6ff281937a36f2f83f1ec 100644 GIT binary patch delta 48 ncmbOqvr~jo=8nfQ17HZsQK_Ac7##Tr}qC-(K-?Lqly# zW1)zrLPc@SKNMg?(6=Z!XaALg1HQ0gZbN`CnEi^BZ&z?`{#ylS^5qpnJ7V$$yS*af z-zqo<-$TJ&{7;l~2XgTRI~1J1|3tw(_5Bo_?ti6dX^7G$=B`g>;;Bl@khoj&Yz2a7 B5t0A^ diff --git a/userdocs/logo.png b/userdocs/logo.png index f4f62649caa93105df4efd2d17f6f4a84aa6de9f..c0bbaf78f37c520db05529a450ba00f9c4cb9138 100644 GIT binary patch delta 72 zcmX>#mHB!r^9C+c5iTrXGp8*t(`IpdRp!mMP9jX3gIvUzCTF@uPd@4vGg--f>*gEo MSGhK?3zDe-07QBduK)l5 delta 2131 zcmci7Jqp4=5QbqU+bxKVScyzyWn~crk)*e>*V03Xjg==@yoaz@c?0|44LpYggs^76 z&ELeg8>V>pUKjPes+*3_{D(9)1pR=5YwWjDaKIN<{N)Jn1q)A+^1}+Qncr5y`FwfB z(--mif>llt@hcTv1HXfUEBU=BzZFQy7pzcl-TgWWuCCur!MT24ij#v3ofos6#)F91 n&X+SqY`3dXejV21h}fKx9kI!hJ+WD&cVhcaGfiwCo5}G5cK8}% diff --git a/userdocs/quickstart/el7.rst b/userdocs/quickstart/el7.rst index 80f6784e..cc70c5d2 100644 --- a/userdocs/quickstart/el7.rst +++ b/userdocs/quickstart/el7.rst @@ -8,7 +8,7 @@ Install Warewulf and dependencies .. code-block:: bash sudo yum install -y golang tftp-server dhcp nfs-utils - + git clone https://github.com/hpcng/warewulf.git cd warewulf make all diff --git a/userdocs/quickstart/el8.rst b/userdocs/quickstart/el8.rst index cff81602..7d6cf466 100644 --- a/userdocs/quickstart/el8.rst +++ b/userdocs/quickstart/el8.rst @@ -125,7 +125,7 @@ Once those configurations have been set, you can view the changes by listing the sudo wwctl profile list -a -Add a node +Add a node ========== Adding nodes can be done while setting configurations in one command. Here we are setting diff --git a/userdocs/quickstart/suse15.rst b/userdocs/quickstart/suse15.rst index ff623489..8f94db08 100644 --- a/userdocs/quickstart/suse15.rst +++ b/userdocs/quickstart/suse15.rst @@ -10,17 +10,17 @@ Install Warewulf and dependencies sudo zypper install -t pattern devel_basis sudo zypper install go sudo zypper install tftp dhcp-server nfs-kernel-server - + sudo systemctl stop firewalld sudo systemctl disable firewalld - + git clone https://github.com/hpcng/warewulf.git cd warewulf PREFIX=/usr SYSCONFDIR=/etc TFTPDIR=/srv/tftproot LOCALSTATEDIR=/var/lib make genconfig make all sudo make install -The standard configuration template for the dhcpd service is installed at the wrong location, you have to fix this with +The standard configuration template for the dhcpd service is installed at the wrong location, you have to fix this with .. code-block:: bash @@ -29,7 +29,7 @@ The standard configuration template for the dhcpd service is installed at the wr Install Warewulf from the open build service ============================================ -You can also just install the 'warewulf4' package with ``zypper`` from the openbuild service. Up to date versions are available on the devel project +You can also just install the 'warewulf4' package with ``zypper`` from the openbuild service. Up to date versions are available on the devel project ``https://build.opensuse.org/project/show/network:cluster`` diff --git a/warewulf-logo.png b/warewulf-logo.png index f5c8b44d48b43913b7dafc1006a3e53bf7dd7e4a..85671de2134970cfad6e5a542b8d4d472344f2f2 100644 GIT binary patch delta 79 zcmV-V0I>h`pgQoNI)JnR`*w%?b^(X{b^?d|b_0j}b_9p~b_KWmb_VbdhwX+2x9x@p lNB)O3g$TDbg$W~bhgtXuhgtXvhgtXwhgtXxw^{fN8< delta 87 zcmV-d0I2`)pgQ!RI)JnR`*r~!hx>K`hx>K{hx>K|hx>K}hx>K~xBGSm@DBkXhwFw0 tx9f%nNB#jIhcbl-w=#tZBXa>DhgJ9qhgJ9rhgJ9shgJ9tw^jHJ8<+v;CfWc1 From 813372380c1395996a71a6b88c72304537c1a7a9 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Thu, 8 Dec 2022 18:56:41 -0700 Subject: [PATCH 35/78] Updated CHANGELOG with more detail for all 4.4.0 changes Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 124 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 87 insertions(+), 37 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f83e30e..ae591043 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,34 +1,90 @@ # Changelog + All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -### Added -- Changed internal interacation between the on disk YAML format and the in memory - format. This enables the command line options to be autogenerated from the datastructures. - Also this keeps the options for profiles and node set/add commands in strict sync. -- Added `node edit/export/import` where the edit command exposes the YAML config for the - given nodes in an editor. Nodes can also be added with this command. The export command - simply drops the YAML config for the given nodes. With the import command nodes can be - imported as YAML or as a CSV file. The CSV file must havr a header in where the first field - must always be the nodename, the rest of the fields are the same as the long commandline - options. Network device must have the form net.$NETNAME.$NETOPTION, which would e.g. be - net.default.ipaddr -- The default value (like kernel args) are no read in from the configuration file - default.conf. If this file couldn't be read built in default values will be used. -- Template files for NetworkManager are now present in the wwinit overlay. A interface must - have the type ethernet or infiniband that these will be brought up by NetworkManager -- Listings of container via `wwctl container list` will now show the creation,modification - date and the size. -- Initial cut of the warewulf API. See https://github.com/hpcng/warewulf/pull/471 -### Bug fixes -- For the connections of `wwctl ssh` the primary interface will be used -- Fixed kernel version in `wwctl container show` -- remove the container image and not only the rootfs dir on delete -- include and exclude handling for container were fixed +### Added + +- Network interface configuration (`ifcfg`) files now include the + interface name and type. #575 + +### Fixed + +- `wwctl configure hostfile` now correctly detects the presence of the + hostfile overlay template. #571 +- `wwctl overlay build` no longer panics when rendering an template + for a node which has tags set. #568 +- Minor typographical fixes. #569 + +## [4.4.0rc1] 2022-10-27 + +### Added + +- iPXE binaries included with Warewulf now support VLAN tagging. #563 +- `wwctl container list` now shows the container creation date, + modification date, and size. #537 +- `wwctl node edit` supports directly editing or defining node + configuration YAML in an editor. #540 +- `wwctl node export` and `wwctl node import` support importing and + exporting node definitions as YAML or (for import) CSV. The CSV file + must have a header in where the first field must always be the + nodename, and the rest of the fields are the same as the long + commandline options. Network device must have the form + `net.$NETNAME.$NETOPTION`. (e.g., `net.default.ipaddr`) #540 +- The `warewulfd.service` systemd unit file now supports `execreload` + and `execstop`. #550 +- Network interfaces now accept an `mtu` attribute. #549 +- The `wwinit` overlay now supports network interface configuration + via NetworkManager for Ethernet and InfiniBand interfaces. #539 +- Default node attribute values (e.g., for kernel arguments) are now + read in from a `defaults.conf` configuration file. If this file + is not present, built-in default values are used. #539 +- [Warewulf documentation](https://warewulf.org/docs/) is now managed + alongside the Warewulf source code in a single code repository so + that documentation may be updated alongside code changes. +- New man pages for `warewulf.conf` and `nodes.conf` #510 +- An initial cut of the [Warewulf API](API.md) #471 +- `wwctl show --render` shows overlay templates as they would be + rendered on a given target node. #467 +- `wwctl ssh` now supports Bash completion. #466 + +### Changed + +- `wwctl overlay edit` no longer saves a new template to the overlay + if the template is not modified from its initial state. #522 +- The wwinit overlay now only sets a name for a network interface if + that interface has a MAC address defined. #553 +- `wwctl container delete` now also deletes the built images + associated with that container. #214 +- Unified internal code paths for `wwctl profile` and `wwctl node` + commands, and between the on disk YAML format and the in memory + format, enabling the command-line options to be autogenerated from + the datastructures and ensuring that profile and node capabilities + remain in sync. #495 +- `wwctl power` commands no longer separates node output with + additional whitespace. #514 + +### Fixed + +- `/etc/warewulf/excludes` (read from the node image) once again + excludes files from being included in the node image. #532 +- `wwctl ssh` always uses a node's primary interface. #544 +- `wwctl container show` now correctly shows the kernel version. #542 +- System users are no longer prevented from logging into compute + nodes. #538 +- `wwctl overlay chown` now correctly handles uid and gid arguments. #530 +- `wwctl overlay chown` no longer sets gid to `0` when unspecified. #531 +- Corrected the path for `.wwbackup` files in some situations. #524 +- Bypass `imgextract` for legacy BIOS machines to avoid 32-bit memory + limitations. #497 +- `warewulfd` no longer panics when network interface tags are + defined. #468 +- The wwinit overlay now configures the network device type. #465 +- Minor typographical fixes. #528, #519 ## [4.3.0] 2022-06-25 ### Added @@ -37,24 +93,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 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. +- 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 + 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 +- 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 + 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 +- 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 - oci container tar balls can be imported with the 'file://$PATH' scheme - uids and gids of a container can 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. -### Changed +### Changed - Provision interface is not tied to 'eth0' any more. The provision interface must be have the 'primary' flag now. The file `nodes.conf' must be changed accordingly. - the provisioning network is now called primary and not default @@ -64,12 +120,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 to be changed accordingly - host overlays can globaly disbaled, but are enabled per default - `wwctl overlay build -H` will only build the overlays which are assigned to the nodes -### Fixed -- GID is no longer changed to `0` when unspecified during chown -- Proper handling of uid/gid arguments during `wwctl overlay chown` -- /etc/warewulf/excludes stored in the container definition is now - processed correctly, also excluding the contents of an excluded - directory automatically. ## [4.1.0] - 2021-07-29 From 84bd76ab7e12e0ed12d4b83a6c04c7581a377753 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Fri, 9 Dec 2022 09:27:07 -0700 Subject: [PATCH 36/78] Updated CHANGELOG for 4.4.0rc2 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae591043..959e6672 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,15 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [4.4.0rc2] 2022-12-09 ### Added +- The environment variable `WW_CONTAINER_SHELL` is defined in a `wwctl + container shell` environment to indicate the container in use. # - Network interface configuration (`ifcfg`) files now include the - interface name and type. #575 + interface name and type. #574 ### Fixed +- Work-around for older versions of gzip that lack a `--keep` flag + during `wwctl container build`. #580 +- The default ipxe template is once again specified as a built-in + default and in `defaults.conf`. #581 +- `wwctl container list` no longer segfaults when a container chroot + is present without a built image. #585 - `wwctl configure hostfile` now correctly detects the presence of the hostfile overlay template. #571 - `wwctl overlay build` no longer panics when rendering an template From c67699ae30cb2cd6778cc2f8143491a11bf95b87 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Fri, 9 Dec 2022 17:53:33 +0100 Subject: [PATCH 37/78] Update tag to rc2 --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 23c42bae..23e8ad2f 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ VARLIST := OS # Project Information VARLIST += WAREWULF VERSION RELEASE WAREWULF ?= warewulf -VERSION ?= 4.4.0rc1 +VERSION ?= 4.4.0rc2 GIT_TAG := $(shell test -e .git && git log -1 --format="%h") ifdef GIT_TAG From 926f94e18ecfee7c0ac6b32b52c33afd62a76cee Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Fri, 9 Dec 2022 19:35:45 -0700 Subject: [PATCH 38/78] Added a missing PR tag to CHANGELOG Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 959e6672..69b96bad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - The environment variable `WW_CONTAINER_SHELL` is defined in a `wwctl - container shell` environment to indicate the container in use. # + container shell` environment to indicate the container in use. #579 - Network interface configuration (`ifcfg`) files now include the interface name and type. #574 From 64cb589fe69eeff1ba5f5195ceb9d068f848c723 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 13 Dec 2022 10:34:38 +0100 Subject: [PATCH 39/78] NetworkManager config needs to be 600 --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 23e8ad2f..2ec04e83 100644 --- a/Makefile +++ b/Makefile @@ -115,7 +115,7 @@ $(GOLANGCI_LINT): setup: vendor $(TOOLS_DIR) setup_tools vendor: - ifndef OFFLINE_BUILD +ifndef OFFLINE_BUILD go mod tidy -v go mod vendor endif @@ -125,7 +125,7 @@ $(TOOLS_DIR): # Pre-build steps for source, such as "go generate" config: - # Store configuration for subsequent runs +# Store configuration for subsequent runs printf " $(foreach V,$(VARLIST),$V := $(strip $($V))\n)" > Defaults.mk # Global variable search and replace for all *.in files find . -type f -name "*.in" -not -path "./vendor/*" \ @@ -186,6 +186,7 @@ files: all find $(DESTDIR)$(WWOVERLAYDIR) -type f -name "*.in" -exec rm -f {} \; chmod 755 $(DESTDIR)$(WWOVERLAYDIR)/wwinit/$(WWCLIENTDIR)/wwinit chmod 600 $(DESTDIR)$(WWOVERLAYDIR)/wwinit/etc/ssh/ssh* + chmod 600 $(DESTDIR)$(WWOVERLAYDIR)/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww chmod 644 $(DESTDIR)$(WWOVERLAYDIR)/wwinit/etc/ssh/ssh*.pub.ww chmod 750 $(DESTDIR)$(WWOVERLAYDIR)/host install -m 0755 wwctl $(DESTDIR)$(BINDIR) From 48fe714e8e4235bb80d117b9498383f9f81c0aaf Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 13 Dec 2022 13:51:48 -0700 Subject: [PATCH 40/78] Use WWCONFIGDIR for all relevant install paths 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 --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 23e8ad2f..d7e118d2 100644 --- a/Makefile +++ b/Makefile @@ -175,10 +175,10 @@ files: all install -d -m 0755 $(DESTDIR)$(WWDATADIR)/ipxe test -f $(DESTDIR)$(WWCONFIGDIR)/warewulf.conf || install -m 644 etc/warewulf.conf $(DESTDIR)$(WWCONFIGDIR) test -f $(DESTDIR)$(WWCONFIGDIR)/nodes.conf || install -m 644 etc/nodes.conf $(DESTDIR)$(WWCONFIGDIR) - test -f $(DESTDIR)$(SYSCONFDIR)/warewulf/wwapic.conf || install -m 644 etc/wwapic.conf $(DESTDIR)$(SYSCONFDIR)/warewulf/ - test -f $(DESTDIR)$(SYSCONFDIR)/warewulf/wwapid.conf || install -m 644 etc/wwapid.conf $(DESTDIR)$(SYSCONFDIR)/warewulf/ - test -f $(DESTDIR)$(SYSCONFDIR)/warewulf/wwapird.conf || install -m 644 etc/wwapird.conf $(DESTDIR)$(SYSCONFDIR)/warewulf/ - test -f $(DESTDIR)$(SYSCONFDIR)/warewulf/defaults.conf || ./print_defaults > $(DESTDIR)$(SYSCONFDIR)/warewulf/defaults.conf + test -f $(DESTDIR)$(WWCONFIGDIR)/wwapic.conf || install -m 644 etc/wwapic.conf $(DESTDIR)$(WWCONFIGDIR) + test -f $(DESTDIR)$(WWCONFIGDIR)/wwapid.conf || install -m 644 etc/wwapid.conf $(DESTDIR)$(WWCONFIGDIR) + test -f $(DESTDIR)$(WWCONFIGDIR)/wwapird.conf || install -m 644 etc/wwapird.conf $(DESTDIR)$(WWCONFIGDIR) + test -f $(DESTDIR)$(WWCONFIGDIR)/defaults.conf || ./print_defaults > $(DESTDIR)$(WWCONFIGDIR)/defaults.conf cp -r etc/examples $(DESTDIR)$(WWCONFIGDIR)/ cp -r etc/ipxe $(DESTDIR)$(WWCONFIGDIR)/ cp -r overlays/* $(DESTDIR)$(WWOVERLAYDIR)/ From f3ea171beb53e17c964a1053637aad3c243889de Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 13 Dec 2022 15:58:04 -0700 Subject: [PATCH 41/78] Capitalize Warewulf in man pages where appropriate Signed-off-by: Jonathon Anderson --- docs/man/man5/nodes.conf.5 | 2 +- docs/man/man5/warewulf.conf.5 | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/man/man5/nodes.conf.5 b/docs/man/man5/nodes.conf.5 index 7bd965d2..8104777b 100644 --- a/docs/man/man5/nodes.conf.5 +++ b/docs/man/man5/nodes.conf.5 @@ -2,7 +2,7 @@ .SH NAME -nodes.conf \- warewulf node configuration database +nodes.conf \- Warewulf node configuration database .SH DESCRIPTION .LP diff --git a/docs/man/man5/warewulf.conf.5 b/docs/man/man5/warewulf.conf.5 index d64b28cf..8663c8c1 100644 --- a/docs/man/man5/warewulf.conf.5 +++ b/docs/man/man5/warewulf.conf.5 @@ -2,11 +2,11 @@ .SH NAME -warewulf.conf \- warewulf server configuration file +warewulf.conf \- Warewulf server configuration file .SH DESCRIPTION .LP -\fBwarewulf.conf\fP is the main configuration file for the warewulf +\fBwarewulf.conf\fP is the main configuration file for the Warewulf server daemon and defines the configuration for its service dependencies, including dhcp, tftp, and nfs. .LP @@ -52,7 +52,7 @@ cluster's private interface. .SS WAREWULF .LP The \fBwarewulf\fP parameter is a map of individual sub-parameters -which configure warewulf specifically. (See the \fBEXAMPLE\fP section +which configure Warewulf specifically. (See the \fBEXAMPLE\fP section for overall structure.) .TP @@ -111,10 +111,10 @@ Default: true .TP \fBsyslog\fP -When true, warewulf server logs are written to syslog, rather than a +When true, Warewulf server logs are written to syslog, rather than a local file. -When false, warewulf server logs are written to +When false, Warewulf server logs are written to `/var/log/warewulfd.log'. Default: false From 423e319bf44cccd904f60072cf3b291414adc8d9 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 13 Dec 2022 17:47:44 -0700 Subject: [PATCH 42/78] Add --- to the head of FallBackConf Why have I done this? - Because defaults.conf had a starting newline, which bugs me. - Because moving the first line of FallBackConf looks unlovely. - Because yaml happens to have a --- document-start syntax. I completely agree that this is (hopefully) a no-op change; but if anyone else thinks it makes things aesthetically more pleasing, and agrees that it doesn't break anything, go ahead and merge. ^_^ Signed-off-by: Jonathon Anderson --- internal/pkg/node/constructors.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/node/constructors.go b/internal/pkg/node/constructors.go index c17674ee..5f37ea1a 100644 --- a/internal/pkg/node/constructors.go +++ b/internal/pkg/node/constructors.go @@ -17,7 +17,7 @@ var ConfigFile string var DefaultConfig string // used as fallback if DefaultConfig can't be read -var FallBackConf = ` +var FallBackConf = `--- defaultnode: runtime overlay: - generic From 3ad4b428965101884b20f12d58f4dca17debb9c7 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 14 Dec 2022 00:23:50 -0700 Subject: [PATCH 43/78] Treat wwapi config files as built versions The wwapi*.conf files are build from .in variants, so they should not be tracked in the tree. Adding them to gitignore prevents them from being added back in, and adding them to Makefile:clean cleans them up. Signed-off-by: Jonathon Anderson --- .gitignore | 3 +++ Makefile | 1 + etc/wwapic.conf | 9 --------- etc/wwapid.conf | 10 ---------- etc/wwapird.conf | 20 -------------------- 5 files changed, 4 insertions(+), 39 deletions(-) delete mode 100644 etc/wwapic.conf delete mode 100644 etc/wwapid.conf delete mode 100644 etc/wwapird.conf diff --git a/.gitignore b/.gitignore index fa4124cb..96fe0936 100644 --- a/.gitignore +++ b/.gitignore @@ -33,5 +33,8 @@ Defaults.mk /etc/wwapid.config /etc/wwapic.config /etc/wwapird.config +/etc/wwapid.conf +/etc/wwapic.conf +/etc/wwapird.conf .dist/ userdocs/_* diff --git a/Makefile b/Makefile index 23e8ad2f..7efd3119 100644 --- a/Makefile +++ b/Makefile @@ -306,6 +306,7 @@ clean: rm -f config_defaults rm -f update_configuration rm -f print_defaults + rm -f etc/wwapi{c,d,rd}.conf install: files install_wwclient diff --git a/etc/wwapic.conf b/etc/wwapic.conf deleted file mode 100644 index e16cc959..00000000 --- a/etc/wwapic.conf +++ /dev/null @@ -1,9 +0,0 @@ -# Configuration for wwapic, the grpc wwapi client. -api: - server: localhost - port: 9872 -tls: - enabled: true - cert: /usr/local/etc/warewulf/keys/wwapic/client.pem - key: /usr/local/etc/warewulf/keys/wwapic/client.key - cacert: /usr/local/etc/warewulf/keys/wwapic/cacert.pem \ No newline at end of file diff --git a/etc/wwapid.conf b/etc/wwapid.conf deleted file mode 100644 index b5ad8389..00000000 --- a/etc/wwapid.conf +++ /dev/null @@ -1,10 +0,0 @@ -# Configuration for wwapird, the wwapi grpc server. -api: - version: 1.0.0 - prefix: v1 - port: 9872 -tls: - enabled: true - cert: /usr/local/etc/warewulf/keys/wwapid/server.pem - key: /usr/local/etc/warewulf/keys/wwapid/server.key - cacert: /usr/local/etc/warewulf/keys/wwapid/cacert.pem \ No newline at end of file diff --git a/etc/wwapird.conf b/etc/wwapird.conf deleted file mode 100644 index d9714794..00000000 --- a/etc/wwapird.conf +++ /dev/null @@ -1,20 +0,0 @@ -# Configuration for wwapird, the grpc / http reverse proxy REST server. -# This server allows one to curl the wwapi. -clientapi: - server: localhost - port: 9872 -serverapi: - version: ignored - prefix: ignored - port: 9871 -clienttls: - enabled: true - cert: /usr/local/etc/warewulf/keys/wwapird/client.pem - key: /usr/local/etc/warewulf/keys/wwapird/client.key - cacert: /usr/local/etc/warewulf/keys/wwapird/cacert.pem -servertls: - enabled: true - cert: ignored - key: /usr/local/etc/warewulf/keys/server.key - cacert: ignored - concatcert: /usr/local/etc/warewulf/keys/serverAndCacert.pem # This is a cat of server.pem and cacert.pem From 4b8141f7c723be313f47a25047c7ee02b3f1a143 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 14 Dec 2022 12:27:56 -0700 Subject: [PATCH 44/78] Additions to and install staticfiles README 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 --- Makefile | 1 + staticfiles/README-ipxe.md | 19 +++++++++++++++++++ staticfiles/README.md | 7 +++++-- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 staticfiles/README-ipxe.md diff --git a/Makefile b/Makefile index 23e8ad2f..6c56fb20 100644 --- a/Makefile +++ b/Makefile @@ -198,6 +198,7 @@ files: all cp bash_completion.d/warewulf $(DESTDIR)$(BASHCOMPDIR) cp man_pages/*.1* $(DESTDIR)$(MANDIR)/man1/ cp man_pages/*.5* $(DESTDIR)$(MANDIR)/man5/ + install -m 0644 staticfiles/README-ipxe.md $(DESTDIR)$(WWDATADIR)/ipxe install -m 0644 staticfiles/arm64.efi $(DESTDIR)$(WWDATADIR)/ipxe install -m 0644 staticfiles/x86_64.efi $(DESTDIR)$(WWDATADIR)/ipxe install -m 0644 staticfiles/x86_64.kpxe $(DESTDIR)$(WWDATADIR)/ipxe diff --git a/staticfiles/README-ipxe.md b/staticfiles/README-ipxe.md new file mode 100644 index 00000000..19df4ed7 --- /dev/null +++ b/staticfiles/README-ipxe.md @@ -0,0 +1,19 @@ +# Warewulf-provided iPXE binaries + +- `arm64.efi` - EFI support for `arm64` processors +- `x86_64.efi` - EFI support for `x86_64` processors +- `x86_64.kpxe` - legacy BIOS support for `x86_64` processors + +## Rebuilding + +The iPXE binaries can be rebuilt with the `ipxe-update.sh` +script. This script accepts command-line arguments that are passed to +the underlying `make` process. e.g., + +```bash +echo "#!ipxe +echo Tagging with vlan 1000 +vcreate --tag 1000 net0 autoboot || shell" >vlan-1000.ipxe + +sh ipxe-update.sh EMBED=$(readlink -f vlan-1000.ipxe) +``` diff --git a/staticfiles/README.md b/staticfiles/README.md index 8e0e8b34..01c2460d 100644 --- a/staticfiles/README.md +++ b/staticfiles/README.md @@ -1,2 +1,5 @@ -# iPXE binaries -Binaries can be rebuild with the `ixpe-update.sh` script. +# Warewulf-bundled static files + +These files are bundled statically with Warewulf 4. + +See also: [README-ipxe.md](README-ipxe.md) From 4d55d8f967737afd59866a0dcace837a77f91f3f Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 14 Dec 2022 14:32:40 -0700 Subject: [PATCH 45/78] Added myself and Brian to CONTRIBUTORS Signed-off-by: Jonathon Anderson --- CONTRIBUTORS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index fa6ff6cd..6916c8ce 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -22,3 +22,5 @@ * David McFarlane <54093156+Prepultrue@users.noreply.github.com> * Jean-Baptiste Denis * TerranWorks +* Jonathon Anderson +* Brian Phan From 83144b0fd1840cf15fc365778d4a73cf017557d5 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 13 Dec 2022 15:56:29 -0700 Subject: [PATCH 46/78] New man page: defaults.conf Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 6 ++++++ docs/man/man5/defaults.conf.5 | 40 +++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 docs/man/man5/defaults.conf.5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 959e6672..cb6e0848 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## Unreleased + +### Added + +- New man page for `defaults.conf` #593 + ## [4.4.0rc2] 2022-12-09 ### Added diff --git a/docs/man/man5/defaults.conf.5 b/docs/man/man5/defaults.conf.5 new file mode 100644 index 00000000..3488dc5d --- /dev/null +++ b/docs/man/man5/defaults.conf.5 @@ -0,0 +1,40 @@ +.TH "NODES.CONF" "5" + +.SH NAME + +defaults.conf \- default configuration for Warewulf nodes + +.SH DESCRIPTION +.LP + +\fBdefaults.conf\fP defaults default values for node attributes when +the attributes are not defined via a node's definition or in any of +its profiles. It is a flat text YAML configuration file with a single +\fBdefaultnode\fP node. After the definition of this node follows the +structure of a node within \fBnodes.pp\fP. + +.SH EXAMPLE + +.EX +defaultnode: + runtime overlay: + - generic + system overlay: + - wwinit + kernel: + args: quiet crashkernel=no vga=791 net.naming-scheme=v238 + init: /sbin/init + root: initramfs + ipxe template: default + profiles: + - default + network devices: + dummy: + device: eth0 + type: ethernet + netmask: 255.255.255.0 +.EE + +.SH SEE ALSO + +\fBwwctl(1)\fP, \fBwwctl-nodes(1)\fP, \fBwwctl-profile(1)\fP From cddc5e7a14c65e40d281cf47fd6048348a889755 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 15 Dec 2022 11:55:10 +0100 Subject: [PATCH 47/78] added two new contributors Signed-off-by: Christian Goll --- CONTRIBUTORS.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 6916c8ce..51b37bcf 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -19,8 +19,9 @@ * John Hanks @griznog * Rob Jansen * svdavidson -* David McFarlane <54093156+Prepultrue@users.noreply.github.com> +* David McFarlane @Prepultrue * Jean-Baptiste Denis * TerranWorks -* Jonathon Anderson +* Jonathon Anderson @anderbubble * Brian Phan +* Jeffrey Frey @jtfrey From 2c52700574cd1bb8cde47a260130d61242efa1da Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Fri, 16 Dec 2022 10:48:47 -0700 Subject: [PATCH 48/78] New debug overlay with template A new debug overlay template serves as an example of how to access all template variables which can also be rendered against any node to display all template variable values. Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 1 + .../debug/warewulf/template-variables.md.ww | 168 ++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100644 overlays/debug/warewulf/template-variables.md.ww diff --git a/CHANGELOG.md b/CHANGELOG.md index 48208ae8..3d967cc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - New man page for `defaults.conf` #593 +- New debug overlay template ## [4.4.0rc2] 2022-12-09 diff --git a/overlays/debug/warewulf/template-variables.md.ww b/overlays/debug/warewulf/template-variables.md.ww new file mode 100644 index 00000000..157cdfa5 --- /dev/null +++ b/overlays/debug/warewulf/template-variables.md.ww @@ -0,0 +1,168 @@ +# Warewulf template variables + +This Warewulf template serves as a complete example of the variables +available to Warewulf templates. It may also be rendered against a +node to debug its apparent configuration. + +```sh +wwctl overlay show --render $nodename debug /warewulf/template-variables.md.ww +``` + +The template data structure is defined in +`internal/pkg/overlay/datastructure.go`, though it also references +data from other structures. + + +## Node + +- Id: {{ .Id }} +- Hostname: {{ .Hostname }} +- Comment: {{ .Comment }} +- ClusterName: {{ .ClusterName }} +- ContainerName: {{ .ContainerName }} +- Ipxe: {{ .Ipxe }} +- RuntimeOverlay: {{ range $index, $value := .RuntimeOverlay }}{{ if $index }},{{ end }}{{ $value }}{{ end }} +- SystemOverlay: {{ range $index, $value := .SystemOverlay }}{{ if $index }},{{ end }}{{ $value }}{{ end }} +- Init: {{ .Init }} +- Root: {{ .Root }} +- AssetKey: {{ .AssetKey }} +- Discoverable: {{ .Discoverable }} +- Profiles: {{ range $index, $value := .Profiles }}{{ if $index }},{{ end }}{{ $value }}{{ end }} +- Tags: {{ range $key, $value := .Tags }}{{ $key }}={{ $value }} {{ end }} +- TagsDel: {{ range $key, $value := .TagsDel }}{{ $key }}={{ $value }} {{ end }} +- Keys: {{ range $key, $value := .Keys }}{{ $key }}={{ $value }} {{ end }} +- Kernel: + - Version: {{ .Kernel.Version }} + - Override: {{ .Kernel.Override }} + - Args: {{ .Kernel.Args }} +- Ipmi: + - UserName: {{ .Ipmi.UserName }} + - Password: {{ .Ipmi.Password }} + - Ipaddr: {{ .Ipmi.Ipaddr }} + - Netmask: {{ .Ipmi.Netmask }} + - Port: {{ .Ipmi.Port }} + - Gateway: {{ .Ipmi.Gateway }} + - Interface: {{ .Ipmi.Interface }} + - Write: {{ .Ipmi.Write }} + - Tags: {{ range $key, $value := .Ipmi.Tags }}{{ $key }}={{ $value }} {{ end }} + - TagsDel: {{ range $key, $value := .Ipmi.TagsDel }}{{ $key }}={{ $value }} {{ end }} +{{- range $index, $netdev := .NetDevs }} +- NetDevs[{{ $index }}]: + - Type: {{ $netdev.Type }} + - OnBoot: {{ $netdev.OnBoot }} + - Device: {{ $netdev.Device }} + - Hwaddr: {{ $netdev.Hwaddr }} + - Ipaddr: {{ $netdev.Ipaddr }} + - IpCIDR: {{ $netdev.IpCIDR }} + - Ipaddr6: {{ $netdev.Ipaddr6 }} + - Prefix: {{ $netdev.Prefix }} + - Netmask: {{ $netdev.Netmask }} + - Gateway: {{ $netdev.Gateway }} + - MTU: {{ $netdev.MTU }} + - Primary: {{ $netdev.Primary }} + - Default: {{ $netdev.Default }} + - Tags: {{ range $key, $value := $netdev.Tags }}{{ $key }}={{ $value }} {{ end }} + - TagsDel: {{ range $key, $value := $netdev.TagsDel }}{{ $key }}={{ $value }} {{ end }} +{{- end }} + + +## Build variables + +- BuildHost: {{ .BuildHost }} +- BuildTime: {{ .BuildTime }} +- BuildTimeUnix: {{ .BuildTimeUnix }} +- BuildSource: {{ .BuildSource }} + + +## Network + +- Ipaddr: {{ .Ipaddr }} +- Ipaddr6: {{ .Ipaddr6 }} +- Netmask: {{ .Netmask }} +- Network: {{ .Network }} +- NetworkCIDR: {{ .NetworkCIDR }} +- Ipv6: {{ .Ipv6 }} + + +## Services + +### DHCP + +- Dhcp.Enabled: {{ .Dhcp.Enabled }} +- Dhcp.Template: {{ .Dhcp.Template }} +- Dhcp.RangeStart: {{ .Dhcp.RangeStart }} +- Dhcp.RangeEnd: {{ .Dhcp.RangeEnd }} +- Dhcp.SystemdName: {{ .Dhcp.SystemdName }} + + +### NFS + +- Enabled: {{ .Nfs.Enabled }} +- SystemdName: {{ .Nfs.SystemdName }} +{{- range $index, $export := .Nfs.ExportsExtended }} +- ExportsExtended[{{ $index }}]: + - Path: {{ $export.Path }} + - ExportOptions: {{ $export.ExportOptions }} + - MountOptions: {{ $export.MountOptions }} + - Mount: {{ $export.Mount }} +{{- end }} + + +### Warewulf + +- Port: {{ .Warewulf.Port }} +- Secure: {{ .Warewulf.Secure }} +- UpdateInterval: {{ .Warewulf.UpdateInterval }} +- AutobuildOverlays: {{ .Warewulf.AutobuildOverlays }} +- EnableHostOverlay: {{ .Warewulf.EnableHostOverlay }} +- Syslog: {{ .Warewulf.Syslog }} +- DataStore: {{ .Warewulf.DataStore }} + + +### Other nodes + +{{ range $index, $node := .AllNodes -}} +- AllNodes[{{ $index }}]: + - Id: {{ $node.Id.Get }} + - Comment: {{ $node.Comment.Get }} + - ClusterName: {{ $node.ClusterName.Get }} + - ContainerName: {{ $node.ContainerName.Get }} + - Ipxe: {{ $node.Ipxe.Get }} + - RuntimeOverlay: {{ $node.RuntimeOverlay.Get }} + - SystemOverlay: {{ $node.SystemOverlay.Get }} + - Root: {{ $node.Root.Get }} + - Discoverable: {{ $node.Discoverable.Get }} + - Init: {{ $node.Init.Get }} + - AssetKey: {{ $node.AssetKey.Get }} + - Profiles: {{ $node.Profiles.Get }} + - Tags: {{ range $key, $value := $node.Tags }}{{ $key }}={{ $value.Get }} {{ end }} + - Kernel + - Override: {{ $node.Kernel.Override.Get }} + - Args: {{ $node.Kernel.Args.Get }} + - Ipmi: + - Ipaddr: {{ $node.Ipmi.Ipaddr.Get }} + - Netmask: {{ $node.Ipmi.Netmask.Get }} + - Port: {{ $node.Ipmi.Port.Get }} + - Gateway: {{ $node.Ipmi.Gateway.Get }} + - UserName: {{ $node.Ipmi.UserName.Get }} + - Password: {{ $node.Ipmi.Password.Get }} + - Interface: {{ $node.Ipmi.Interface.Get }} + - Write: {{ $node.Ipmi.Write.Get }} + - Tags: {{ range $key, $value := $node.Ipmi.Tags }}{{ $key }}={{ $value.Get }} {{ end }} +{{- range $index, $netdev := $node.NetDevs }} + - NetDevs[{{ $index }}]: + - Type: {{ $netdev.Type.Get }} + - OnBoot: {{ $netdev.OnBoot.Get }} + - Device: {{ $netdev.Device.Get }} + - Hwaddr: {{ $netdev.Hwaddr.Get }} + - Ipaddr: {{ $netdev.Ipaddr.Get }} + - Ipaddr6: {{ $netdev.Ipaddr6.Get }} + - IpCIDR: {{ $netdev.IpCIDR.Get }} + - Prefix: {{ $netdev.Prefix.Get }} + - Netmask: {{ $netdev.Netmask.Get }} + - Gateway: {{ $netdev.Gateway.Get }} + - MTU: {{ $netdev.MTU.Get }} + - Primary: {{ $netdev.Primary.Get }} + - Tags: {{ range $key, $value := $netdev.Tags }}{{ $key }}={{ $value.Get }} {{ end }} +{{- end }} +{{- end }} From 248c5896ceb1396df4bb5443f550ee35fc186d57 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Sat, 17 Dec 2022 17:11:58 -0700 Subject: [PATCH 49/78] Correct confirmation output in profile set Closes #600 Signed-off-by: Jonathon Anderson --- internal/app/wwctl/profile/set/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/app/wwctl/profile/set/main.go b/internal/app/wwctl/profile/set/main.go index f905f2a9..efa20fd2 100644 --- a/internal/app/wwctl/profile/set/main.go +++ b/internal/app/wwctl/profile/set/main.go @@ -34,14 +34,14 @@ func CobraRunE(cmd *cobra.Command, args []string) (err error) { } if !SetYes { - var nodeCount uint + var profileCount uint // The checks run twice in the prompt case. // Avoiding putting in a blocking prompt in an API. - _, nodeCount, err = apiprofile.ProfileSetParameterCheck(&set, false) + _, profileCount, err = apiprofile.ProfileSetParameterCheck(&set, false) if err != nil { return } - yes := util.ConfirmationPrompt(fmt.Sprintf("Are you sure you want to modify %d nodes(s)", nodeCount)) + yes := util.ConfirmationPrompt(fmt.Sprintf("Are you sure you want to modify %d profile(s)", profileCount)) if !yes { return } From b97b2f3ade1a85ae01d6dc665e77008e3c3d9daf Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Sun, 18 Dec 2022 21:46:21 -0700 Subject: [PATCH 50/78] Removed whitespace damage from new debug template Signed-off-by: Jonathon Anderson --- overlays/debug/warewulf/template-variables.md.ww | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/overlays/debug/warewulf/template-variables.md.ww b/overlays/debug/warewulf/template-variables.md.ww index 157cdfa5..7b47d9e7 100644 --- a/overlays/debug/warewulf/template-variables.md.ww +++ b/overlays/debug/warewulf/template-variables.md.ww @@ -47,7 +47,7 @@ data from other structures. - Tags: {{ range $key, $value := .Ipmi.Tags }}{{ $key }}={{ $value }} {{ end }} - TagsDel: {{ range $key, $value := .Ipmi.TagsDel }}{{ $key }}={{ $value }} {{ end }} {{- range $index, $netdev := .NetDevs }} -- NetDevs[{{ $index }}]: +- NetDevs[{{ $index }}]: - Type: {{ $netdev.Type }} - OnBoot: {{ $netdev.OnBoot }} - Device: {{ $netdev.Device }} @@ -150,7 +150,7 @@ data from other structures. - Write: {{ $node.Ipmi.Write.Get }} - Tags: {{ range $key, $value := $node.Ipmi.Tags }}{{ $key }}={{ $value.Get }} {{ end }} {{- range $index, $netdev := $node.NetDevs }} - - NetDevs[{{ $index }}]: + - NetDevs[{{ $index }}]: - Type: {{ $netdev.Type.Get }} - OnBoot: {{ $netdev.OnBoot.Get }} - Device: {{ $netdev.Device.Get }} From e8f06b5d6fcce179dbf2073569a9c3e09213630f Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Mon, 19 Dec 2022 15:38:58 +0100 Subject: [PATCH 51/78] using connection-id instead of devname --- .../etc/NetworkManager/system-connections/ww4-managed.ww | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww b/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww index b58d1733..cef5b933 100644 --- a/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww +++ b/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww @@ -1,15 +1,15 @@ {{- $host := .BuildHost }} {{- $time := .BuildTime }} {{- $source := .BuildSource }} -{{- range $devname, $netdev := .NetDevs }} -{{- $filename := print "warewulf-" $devname ".conf" }} +{{- range $connection-id, $netdev := .NetDevs }} +{{- $filename := print "warewulf-" $connection-id ".conf" }} {{- file $filename }} # This file is autogenerated by warewulf # Host: {{ $host }} # Time: {{ $time }} # Source: {{ $source }} [connection] -id={{ $devname }} +id={{ $connection-id }} interface-name={{ $netdev.Device }} {{ if $netdev.Type -}} type={{ $netdev.Type }} From 0e6223b6f8f49d83f678a9f583b38b51cd70058f Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 22 Dec 2022 14:48:58 +0100 Subject: [PATCH 52/78] do not confirm deleting zero nodes close #603 Signed-off-by: Christian Goll --- internal/app/wwctl/node/delete/main.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/app/wwctl/node/delete/main.go b/internal/app/wwctl/node/delete/main.go index b5a58308..0cf23218 100644 --- a/internal/app/wwctl/node/delete/main.go +++ b/internal/app/wwctl/node/delete/main.go @@ -25,6 +25,9 @@ func CobraRunE(cmd *cobra.Command, args []string) (err error) { if err != nil { return } + if len(nodeList) == 0 { + return + } yes := util.ConfirmationPrompt(fmt.Sprintf("Are you sure you want to delete %d nodes(s)", len(nodeList))) if !yes { return From 9539e20a4ef27e029faa1dbd6e139cac46296960 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 22 Dec 2022 14:54:42 +0100 Subject: [PATCH 53/78] add `-y` flag to `wwctl profile add` close #610 Signed-off-by: Christian Goll --- internal/app/wwctl/profile/add/root.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/app/wwctl/profile/add/root.go b/internal/app/wwctl/profile/add/root.go index 14694477..e3ad6d24 100644 --- a/internal/app/wwctl/profile/add/root.go +++ b/internal/app/wwctl/profile/add/root.go @@ -58,6 +58,7 @@ func GetCommand() *cobra.Command { }); err != nil { log.Println(err) } + baseCmd.PersistentFlags().BoolVarP(&SetYes, "yes", "y", false, "Set 'yes' to all questions asked") return baseCmd } From 718064e67145b1decf7b128fcf497efa78a8c55f Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 22 Dec 2022 15:00:12 +0100 Subject: [PATCH 54/78] add confirmation for `wwctl container delete` close #606 Signed-off-by: Christian Goll --- internal/app/wwctl/container/delete/main.go | 11 ++++++++++- internal/app/wwctl/container/delete/root.go | 11 ++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/internal/app/wwctl/container/delete/main.go b/internal/app/wwctl/container/delete/main.go index 0f9c57af..250b5ac2 100644 --- a/internal/app/wwctl/container/delete/main.go +++ b/internal/app/wwctl/container/delete/main.go @@ -1,15 +1,24 @@ package delete import ( + "fmt" + "github.com/hpcng/warewulf/internal/pkg/api/container" "github.com/hpcng/warewulf/internal/pkg/api/routes/wwapiv1" + "github.com/hpcng/warewulf/internal/pkg/api/util" "github.com/spf13/cobra" ) func CobraRunE(cmd *cobra.Command, args []string) (err error) { - cdp := &wwapiv1.ContainerDeleteParameter{ ContainerNames: args, } + if !SetYes { + yes := util.ConfirmationPrompt(fmt.Sprintf("Are you sure you want to container %s", args)) + if !yes { + return + } + + } return container.ContainerDelete(cdp) } diff --git a/internal/app/wwctl/container/delete/root.go b/internal/app/wwctl/container/delete/root.go index 64e909ba..787353b0 100644 --- a/internal/app/wwctl/container/delete/root.go +++ b/internal/app/wwctl/container/delete/root.go @@ -8,10 +8,10 @@ import ( var ( baseCmd = &cobra.Command{ DisableFlagsInUseLine: true, - Use: "delete [OPTIONS] CONTAINER [...]", - Short: "Delete an imported container", - Long: "This command will delete CONTAINERs that have been imported into Warewulf.", - RunE: CobraRunE, + Use: "delete [OPTIONS] CONTAINER [...]", + Short: "Delete an imported container", + Long: "This command will delete CONTAINERs that have been imported into Warewulf.", + RunE: CobraRunE, ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { if len(args) != 0 { return nil, cobra.ShellCompDirectiveNoFileComp @@ -20,10 +20,11 @@ var ( return list, cobra.ShellCompDirectiveNoFileComp }, } + SetYes bool ) func init() { - + baseCmd.PersistentFlags().BoolVarP(&SetYes, "yes", "y", false, "Set 'yes' to all questions asked") } // GetRootCommand returns the root cobra.Command for the application. From 3baf4f57afc59103db04aaf9c1c5181e0d414f12 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 22 Dec 2022 15:13:19 +0100 Subject: [PATCH 55/78] update to 0.4..4rc3 Signed-off-by: Christian Goll --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e8201a0e..e9b6109e 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ VARLIST := OS # Project Information VARLIST += WAREWULF VERSION RELEASE WAREWULF ?= warewulf -VERSION ?= 4.4.0rc2 +VERSION ?= 4.4.0rc3 GIT_TAG := $(shell test -e .git && git log -1 --format="%h") ifdef GIT_TAG From 91f604c0f6654afebaf000333077c8ebf7728be1 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Thu, 22 Dec 2022 15:57:10 -0600 Subject: [PATCH 56/78] Refactor docker containerrs and add centos-7 These docker containers populate docker.io/warewulf. A new centos-7 container serves as an example for others to build from when required. The new Makefile builds .tar images with Podman which can be imported into Warewulf directly without going through a registry. Signed-off-by: Jonathon Anderson --- containers/Docker/.gitignore | 1 + containers/Docker/Makefile | 9 ++++ containers/Docker/centos-7/Containerfile | 36 ++++++++++++++ containers/Docker/centos-7/container_exit.sh | 6 +++ containers/Docker/centos-7/excludes | 2 + containers/Docker/openhpc | 7 --- containers/Docker/openhpc-2/Containerfile | 7 +++ containers/Docker/rocky-8 | 47 ------------------- containers/Docker/rockylinux-8/Containerfile | 35 ++++++++++++++ .../Docker/rockylinux-8/container_exit.sh | 6 +++ containers/Docker/rockylinux-8/excludes | 2 + 11 files changed, 104 insertions(+), 54 deletions(-) create mode 100644 containers/Docker/.gitignore create mode 100644 containers/Docker/Makefile create mode 100644 containers/Docker/centos-7/Containerfile create mode 100755 containers/Docker/centos-7/container_exit.sh create mode 100644 containers/Docker/centos-7/excludes delete mode 100644 containers/Docker/openhpc create mode 100644 containers/Docker/openhpc-2/Containerfile delete mode 100644 containers/Docker/rocky-8 create mode 100644 containers/Docker/rockylinux-8/Containerfile create mode 100755 containers/Docker/rockylinux-8/container_exit.sh create mode 100644 containers/Docker/rockylinux-8/excludes diff --git a/containers/Docker/.gitignore b/containers/Docker/.gitignore new file mode 100644 index 00000000..d874ad67 --- /dev/null +++ b/containers/Docker/.gitignore @@ -0,0 +1 @@ +*.tar diff --git a/containers/Docker/Makefile b/containers/Docker/Makefile new file mode 100644 index 00000000..0343b9b2 --- /dev/null +++ b/containers/Docker/Makefile @@ -0,0 +1,9 @@ +all: centos-7.tar rockylinux-8.tar openhpc-2.tar +.PHONY: all + +%.tar: %/Containerfile + podman save $$(podman build --quiet $*) >$@ + +clean: + rm -rf *.tar +.PHONY: clean diff --git a/containers/Docker/centos-7/Containerfile b/containers/Docker/centos-7/Containerfile new file mode 100644 index 00000000..1d7f23e7 --- /dev/null +++ b/containers/Docker/centos-7/Containerfile @@ -0,0 +1,36 @@ +FROM docker.io/library/centos:7 + +RUN yum update -y \ + && yum install -y \ + coreutils \ + cpio \ + dhclient \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel \ + net-tools \ + network-scripts \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && yum clean all \ + && sed -i -e '/^account.*pam_unix\.so\s*$/s/\s*$/\ broken_shadow/' /etc/pam.d/system-auth \ + && sed -i -e '/^account.*pam_unix\.so\s*$/s/\s*$/\ broken_shadow/' /etc/pam.d/password-auth \ + && rm -f /etc/sysconfig/network-scripts/ifcfg-e* \ + && systemctl unmask console-getty.service dev-hugepages.mount getty.target sys-fs-fuse-connections.mount systemd-logind.service systemd-remount-fs.service \ + && systemctl enable network + +COPY excludes /etc/warewulf/excludes +COPY container_exit.sh /etc/warewulf/container_exit.sh diff --git a/containers/Docker/centos-7/container_exit.sh b/containers/Docker/centos-7/container_exit.sh new file mode 100755 index 00000000..22bdbf51 --- /dev/null +++ b/containers/Docker/centos-7/container_exit.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -x +LANG=C +LC_CTYPE=C +export LANG LC_CTYPE +yum clean all diff --git a/containers/Docker/centos-7/excludes b/containers/Docker/centos-7/excludes new file mode 100644 index 00000000..bf007032 --- /dev/null +++ b/containers/Docker/centos-7/excludes @@ -0,0 +1,2 @@ +/boot/ +/usr/share/GeoIP diff --git a/containers/Docker/openhpc b/containers/Docker/openhpc deleted file mode 100644 index 84cd9da3..00000000 --- a/containers/Docker/openhpc +++ /dev/null @@ -1,7 +0,0 @@ -FROM docker.io/warewulf/rocky:8 - -RUN dnf -y install http://repos.openhpc.community/OpenHPC/2/CentOS_8/x86_64/ohpc-release-2-1.el8.x86_64.rpm; \ - sed -i -e 's/^enabled=0/enabled=1/g' /etc/yum.repos.d/*-PowerTools.repo; \ - dnf -y install ohpc-base-compute ohpc-slurm-client chrony lmod-ohpc; \ - dnf -y clean all ;\ - systemctl enable munge diff --git a/containers/Docker/openhpc-2/Containerfile b/containers/Docker/openhpc-2/Containerfile new file mode 100644 index 00000000..1a5e36b3 --- /dev/null +++ b/containers/Docker/openhpc-2/Containerfile @@ -0,0 +1,7 @@ +FROM docker.io/warewulf/rockylinux:8 + +RUN dnf -y install http://repos.openhpc.community/OpenHPC/2/CentOS_8/x86_64/ohpc-release-2-1.el8.x86_64.rpm \ + && sed -i -e 's/^enabled=0/enabled=1/g' /etc/yum.repos.d/*-PowerTools.repo \ + && dnf -y install ohpc-base-compute ohpc-slurm-client chrony lmod-ohpc \ + && dnf -y clean all \ + && systemctl enable munge diff --git a/containers/Docker/rocky-8 b/containers/Docker/rocky-8 deleted file mode 100644 index e26c82dd..00000000 --- a/containers/Docker/rocky-8 +++ /dev/null @@ -1,47 +0,0 @@ -FROM docker.io/library/rockylinux:8 - -RUN dnf update -y ;\ - dnf install -y --allowerasing coreutils \ - cpio \ - dhclient \ - e2fsprogs \ - ethtool \ - findutils \ - initscripts \ - ipmitool \ - iproute \ - kernel-core \ - kernel-modules \ - net-tools \ - network-scripts \ - nfs-utils \ - openssh-clients \ - openssh-server \ - pciutils \ - psmisc \ - rsync \ - rsyslog \ - strace \ - wget \ - which \ - words ;\ - dnf clean all - -RUN sed -i -e '/^account.*pam_unix\.so\s*$/s/\s*$/\ broken_shadow/' /etc/pam.d/system-auth ;\ - sed -i -e '/^account.*pam_unix\.so\s*$/s/\s*$/\ broken_shadow/' /etc/pam.d/password-auth ;\ - rm -f /etc/sysconfig/network-scripts/ifcfg-e* ;\ - systemctl unmask console-getty.service dev-hugepages.mount getty.target sys-fs-fuse-connections.mount systemd-logind.service systemd-remount-fs.service ;\ - systemctl enable network ;\ - touch /etc/sysconfig/disable-deprecation-warnings ;\ - mkdir -p /etc/warewulf ;\ - touch /etc/warewulf/excludes ;\ - touch /etc/warewulf/container_exit.sh ;\ - chmod +x /etc/warewulf/container_exit.sh ;\ - echo "#!/bin/sh" > /etc/warewulf/container_exit.sh ;\ - echo "set -x" >> /etc/warewulf/container_exit.sh ;\ - echo "LANG=C" >> /etc/warewulf/container_exit.sh ;\ - echo "LC_CTYPE=C" >> /etc/warewulf/container_exit.sh ;\ - echo "export LANG LC_CTYPE" >> /etc/warewulf/container_exit.sh ;\ - echo "dnf clean all" >> /etc/warewulf/container_exit.sh ;\ - echo "/boot/" > /etc/warewulf/excludes ;\ - echo "/usr/share/GeoIP" >> /etc/warewulf/excludes diff --git a/containers/Docker/rockylinux-8/Containerfile b/containers/Docker/rockylinux-8/Containerfile new file mode 100644 index 00000000..1200eb66 --- /dev/null +++ b/containers/Docker/rockylinux-8/Containerfile @@ -0,0 +1,35 @@ +FROM docker.io/library/rockylinux:8 + +RUN dnf update -y \ + && dnf install -y --allowerasing coreutils \ + cpio \ + dhclient \ + e2fsprogs \ + ethtool \ + findutils \ + initscripts \ + ipmitool \ + iproute \ + kernel-core \ + kernel-modules \ + net-tools \ + network-scripts \ + nfs-utils \ + openssh-clients \ + openssh-server \ + pciutils \ + psmisc \ + rsync \ + rsyslog \ + strace \ + wget \ + which \ + words \ + && dnf clean all + +RUN sed -i -e '/^account.*pam_unix\.so\s*$/s/\s*$/\ broken_shadow/' /etc/pam.d/system-auth \ + && sed -i -e '/^account.*pam_unix\.so\s*$/s/\s*$/\ broken_shadow/' /etc/pam.d/password-auth \ + && rm -f /etc/sysconfig/network-scripts/ifcfg-e* \ + && systemctl unmask console-getty.service dev-hugepages.mount getty.target sys-fs-fuse-connections.mount systemd-logind.service systemd-remount-fs.service \ + && systemctl enable network \ + && touch /etc/sysconfig/disable-deprecation-warnings diff --git a/containers/Docker/rockylinux-8/container_exit.sh b/containers/Docker/rockylinux-8/container_exit.sh new file mode 100755 index 00000000..84993a5f --- /dev/null +++ b/containers/Docker/rockylinux-8/container_exit.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -x +LANG=C +LC_CTYPE=C +export LANG LC_CTYPE +dnf clean all diff --git a/containers/Docker/rockylinux-8/excludes b/containers/Docker/rockylinux-8/excludes new file mode 100644 index 00000000..bf007032 --- /dev/null +++ b/containers/Docker/rockylinux-8/excludes @@ -0,0 +1,2 @@ +/boot/ +/usr/share/GeoIP From 792c3574b7db4a89b47267d4bbefadab6cd64b56 Mon Sep 17 00:00:00 2001 From: "Michael L. Young" Date: Thu, 22 Dec 2022 22:21:50 -0500 Subject: [PATCH 57/78] Add SRPM Artifact To Releases * Upload SRPMs that are created * Update actions/checkout to v3 Closes #614 Signed-off-by: Michael L. Young --- .github/workflows/documentation.yml | 2 +- .github/workflows/lint.yaml | 2 +- .github/workflows/releasebuild.yml | 20 ++++++++++---------- .github/workflows/test.yml | 2 +- ci/mockbuild.sh | 5 ++++- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 49ba564c..38d73851 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -9,7 +9,7 @@ jobs: if: ${{ github.repository_owner == 'hcpng' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: recursive diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 79550f57..255be759 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -14,7 +14,7 @@ jobs: matrix: # Pin go version to the one(s) below. go: [ '1.17' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Setup go ${{ matrix.go }} uses: actions/setup-go@v3 diff --git a/.github/workflows/releasebuild.yml b/.github/workflows/releasebuild.yml index 6e25de75..c0841b9b 100644 --- a/.github/workflows/releasebuild.yml +++ b/.github/workflows/releasebuild.yml @@ -22,7 +22,7 @@ jobs: echo "SRC=${GITHUB_REF}" >> $GITHUB_ENV - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install Go uses: actions/setup-go@v3 @@ -74,23 +74,23 @@ jobs: - name: Run rpm build script run: ./mockbuild.sh ${{ env.VERSION }} - - name: Upload EL8 RPM + - name: Upload EL8 RPMs uses: actions/upload-artifact@v3 with: - name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el8.x86_64.rpm - path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el8.x86_64.rpm + name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el8 + path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el8.*.rpm - - name: Upload EL7 RPM + - name: Upload EL7 RPMs uses: actions/upload-artifact@v3 with: - name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el7.x86_64.rpm - path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el7.x86_64.rpm + name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el7 + path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.el7.*.rpm - - name: Upload openSUSE Leap 15.3 RPM + - name: Upload openSUSE Leap 15.3 RPMs uses: actions/upload-artifact@v3 with: - name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.suse.lp153.x86_64.rpm - path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.suse.lp153.x86_64.rpm + name: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.suse.lp153 + path: warewulf-${{ env.VERSION }}-${{ env.RELEASE }}.suse.lp153.*.rpm - name: Upload Assets To Release if: "!github.event.release.prerelease" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index abf4e496..bc829b3d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: matrix: go: [ '1.17', '1.18', '1.19' ] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install gpgme run: sudo apt-get install libgpgme-dev diff --git a/ci/mockbuild.sh b/ci/mockbuild.sh index 8d05fd04..c068d71d 100644 --- a/ci/mockbuild.sh +++ b/ci/mockbuild.sh @@ -12,9 +12,12 @@ echo RELEASE=${RELEASE} >> $GITHUB_ENV mock -r rocky+epel-8-x86_64 --rebuild --spec=warewulf-${VERSION}/warewulf.spec --sources=. mv /var/lib/mock/rocky+epel-8-x86_64/result/warewulf-${VERSION}-${RELEASE}.el8.x86_64.rpm . +mv /var/lib/mock/rocky+epel-8-x86_64/result/warewulf-${VERSION}-${RELEASE}.el8.src.rpm . mock -r centos+epel-7-x86_64 --rebuild --spec=warewulf-${VERSION}/warewulf.spec --sources=. mv /var/lib/mock/centos+epel-7-x86_64/result/warewulf-${VERSION}-${RELEASE}.el7.x86_64.rpm . +mv /var/lib/mock/centos+epel-7-x86_64/result/warewulf-${VERSION}-${RELEASE}.el7.src.rpm . mock -r opensuse-leap-15.3-x86_64 --rebuild --spec=warewulf-${VERSION}/warewulf.spec --sources=. -mv /var/lib/mock/opensuse-leap-15.3-x86_64/result/warewulf-${VERSION}-${RELEASE}.suse.lp153.x86_64.rpm . \ No newline at end of file +mv /var/lib/mock/opensuse-leap-15.3-x86_64/result/warewulf-${VERSION}-${RELEASE}.suse.lp153.x86_64.rpm . +mv /var/lib/mock/opensuse-leap-15.3-x86_64/result/warewulf-${VERSION}-${RELEASE}.suse.lp153.src.rpm . From 97187117681bc22a505c912e1385cc67d0712e1f Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Mon, 2 Jan 2023 21:00:30 -0700 Subject: [PATCH 58/78] Fix variable naming to use valid characters Fixes #626 Signed-off-by: Jonathon Anderson --- .../etc/NetworkManager/system-connections/ww4-managed.ww | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww b/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww index cef5b933..fc3e9807 100644 --- a/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww +++ b/overlays/wwinit/etc/NetworkManager/system-connections/ww4-managed.ww @@ -1,15 +1,15 @@ {{- $host := .BuildHost }} {{- $time := .BuildTime }} {{- $source := .BuildSource }} -{{- range $connection-id, $netdev := .NetDevs }} -{{- $filename := print "warewulf-" $connection-id ".conf" }} +{{- range $connection_id, $netdev := .NetDevs }} +{{- $filename := print "warewulf-" $connection_id ".conf" }} {{- file $filename }} # This file is autogenerated by warewulf # Host: {{ $host }} # Time: {{ $time }} # Source: {{ $source }} [connection] -id={{ $connection-id }} +id={{ $connection_id }} interface-name={{ $netdev.Device }} {{ if $netdev.Type -}} type={{ $netdev.Type }} From a4a80e02686745c79772604ccbe32a3b64b75381 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 4 Jan 2023 14:03:02 +0100 Subject: [PATCH 59/78] GetB must not ignore altvalue --- internal/pkg/node/methods.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index 8f7ae7dc..f2b0596f 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -201,10 +201,8 @@ func (ent *Entry) Get() string { Get the bool value of an entry. */ func (ent *Entry) GetB() bool { - if len(ent.value) == 0 || ent.value[0] == "false" || ent.value[0] == "no" { - if len(ent.altvalue) == 0 || ent.altvalue[0] == "false" || ent.altvalue[0] == "no" { - return false - } + if len(ent.value) == 0 || ent.value[0] == "false" || ent.value[0] == "no" || + len(ent.altvalue) == 0 || ent.altvalue[0] == "false" || ent.altvalue[0] == "no" { return false } return true From 09f00b9caceb62297e48fc6c0e181c6245b8a9fc Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 4 Jan 2023 14:23:10 +0100 Subject: [PATCH 60/78] fix typo for opening defaults.conf --- internal/pkg/node/constructors.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/node/constructors.go b/internal/pkg/node/constructors.go index 5f37ea1a..07f191a4 100644 --- a/internal/pkg/node/constructors.go +++ b/internal/pkg/node/constructors.go @@ -79,7 +79,7 @@ func (config *NodeYaml) FindAllNodes() ([]NodeInfo, error) { } */ var defConf map[string]*NodeConf - wwlog.Verbose("Opening defaults failed %s\n", DefaultConfig) + wwlog.Verbose("Opening defaults from file %s\n", DefaultConfig) defData, err := ioutil.ReadFile(DefaultConfig) if err != nil { wwlog.Verbose("Couldn't read DefaultConfig :%s\n", err) From 7a88ff239f9fb3ed572aaf7d5c65d29bd6c98776 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 5 Jan 2023 11:03:08 +0100 Subject: [PATCH 61/78] checking only for false outcome --- internal/pkg/node/methods.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index f2b0596f..14747094 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -201,10 +201,16 @@ func (ent *Entry) Get() string { Get the bool value of an entry. */ func (ent *Entry) GetB() bool { - if len(ent.value) == 0 || ent.value[0] == "false" || ent.value[0] == "no" || - len(ent.altvalue) == 0 || ent.altvalue[0] == "false" || ent.altvalue[0] == "no" { + if ent.value[0] == "false" || ent.value[0] == "no" || + ent.value[0] == "No" || ent.value[0] == "0" { return false } + if len(ent.value) == 0 { + if ent.altvalue[0] == "false" || ent.altvalue[0] == "no" || + ent.altvalue[0] == "No" || ent.altvalue[0] == "0" { + return false + } + } return true } From 5b50ef724cb604c9a168b9291926f878b249d35e Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Fri, 6 Jan 2023 14:15:34 -0700 Subject: [PATCH 62/78] Fix 'nodes' alias for 'node' not 'profile' Fixes #609 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 1 + internal/app/wwctl/node/root.go | 1 + internal/app/wwctl/profile/root.go | 1 - 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d967cc3..079ea4de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- The 'nodes' alias now correctly refers to 'node' rather than 'profile' - Work-around for older versions of gzip that lack a `--keep` flag during `wwctl container build`. #580 - The default ipxe template is once again specified as a built-in diff --git a/internal/app/wwctl/node/root.go b/internal/app/wwctl/node/root.go index ffc1f80b..9c3aa99c 100644 --- a/internal/app/wwctl/node/root.go +++ b/internal/app/wwctl/node/root.go @@ -22,6 +22,7 @@ var ( Long: "Management of node settings. All node ranges can use brackets to identify\n" + "node ranges. For example: n00[00-4].cluster[0-1] will identify the first 5 nodes\n" + "in cluster0 and cluster1.", + Aliases: []string{"nodes"}, } ) diff --git a/internal/app/wwctl/profile/root.go b/internal/app/wwctl/profile/root.go index 4f7b1341..fb2a805e 100644 --- a/internal/app/wwctl/profile/root.go +++ b/internal/app/wwctl/profile/root.go @@ -15,7 +15,6 @@ var ( Use: "profile COMMAND [OPTIONS]", Short: "Node configuration profile management", Long: "Management of node profile settings", - Aliases: []string{"nodes"}, } ) From c72d54c5f4ff486c39cf97c3bc085814b17a5113 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Sun, 8 Jan 2023 13:24:32 -0700 Subject: [PATCH 63/78] Templates for GitHub issues and pull requests Ported in from Apptainer Signed-off-by: Jonathon Anderson --- .github/ISSUE_TEMPLATE.md | 32 ++++++++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 19 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 00000000..9014b44f --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,32 @@ +### Version of Warewulf + +What version of Warewulf are you using? Run + +`wwctl version` + + + +### Expected behavior + +What did you expect to see when you do...? + +### Actual behavior + +What actually happened? Why was it incorrect? + + + +### Steps to reproduce this behavior + +How can others reproduce this issue/problem? + +### What OS/distro are you running + +```sh +$ cat /etc/os-release + +``` + +### How did you install Warewulf + +Write here how you installed Warewulf. Eg. RPM, source. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..92f47ea9 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +## Description of the Pull Request (PR): + +Write your description of the PR here. Be sure to include as much background, +and details necessary for the reviewers to understand exactly what this is +fixing or enhancing. + + +### This fixes or addresses the following GitHub issues: + + - Fixes # + + +#### Before submitting a PR, make sure you have done the following: + +- Read the [documentation for contributing to Warewulf](https://warewulf.org/docs/development/contributing/contributing.html) +- Added changes to the [CHANGELOG](https://github.com/hpcng/warewulf/blob/development/CHANGELOG.md) if necessary +- Updated [userdocs](https://github.com/hpcng/warewulf/tree/development/userdocs) if necessary +- Based this PR against the appropriate branch (typically [development](https://github.com/hpcng/warewulf/tree/development/userdocs)) +- Added myself as a contributor to the [Contributors File](https://github.com/hpcng/warewulf/blob/development/CONTRIBUTORS.md From 626b9769acf735aa3b4570b87db0def57a6147b5 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Mon, 9 Jan 2023 11:57:11 +0100 Subject: [PATCH 64/78] also handle default value --- internal/pkg/node/methods.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index 14747094..5e0a3baf 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -209,6 +209,11 @@ func (ent *Entry) GetB() bool { if ent.altvalue[0] == "false" || ent.altvalue[0] == "no" || ent.altvalue[0] == "No" || ent.altvalue[0] == "0" { return false + } else if len(ent.altvalue) == 0 { + if ent.def[0] == "false" || ent.def[0] == "no" || + ent.def[0] == "No" || ent.def[0] == "0" { + return false + } } } return true From 12460caa0448c925b6339a82328f62d00036a2c9 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Tue, 10 Jan 2023 16:20:52 +0100 Subject: [PATCH 65/78] just return negated checks --- internal/pkg/node/methods.go | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index 5e0a3baf..0fc7ca19 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -201,22 +201,22 @@ func (ent *Entry) Get() string { Get the bool value of an entry. */ func (ent *Entry) GetB() bool { - if ent.value[0] == "false" || ent.value[0] == "no" || - ent.value[0] == "No" || ent.value[0] == "0" { - return false - } - if len(ent.value) == 0 { - if ent.altvalue[0] == "false" || ent.altvalue[0] == "no" || - ent.altvalue[0] == "No" || ent.altvalue[0] == "0" { - return false - } else if len(ent.altvalue) == 0 { - if ent.def[0] == "false" || ent.def[0] == "no" || - ent.def[0] == "No" || ent.def[0] == "0" { - return false - } + if len(ent.value) > 0 { + return !(strings.ToLower(ent.value[0]) == "false" || + strings.ToLower(ent.value[0]) == "no" || + ent.value[0] == "0") + } else { + if len(ent.altvalue) > 0 { + return !(strings.ToLower(ent.altvalue[0]) == "false" || + strings.ToLower(ent.altvalue[0]) == "no" || + ent.altvalue[0] == "0") + } else { + return !(len(ent.def) == 0 || + strings.ToLower(ent.def[0]) == "false" || + strings.ToLower(ent.def[0]) == "no" || + ent.def[0] == "0") } } - return true } /* From 534ae70ca408ba3bc7496899305ef05b84250791 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 11 Jan 2023 15:41:13 +0100 Subject: [PATCH 66/78] remove signature from OCI image --- internal/pkg/oci/puller.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/pkg/oci/puller.go b/internal/pkg/oci/puller.go index 9acae792..c071f2f4 100644 --- a/internal/pkg/oci/puller.go +++ b/internal/pkg/oci/puller.go @@ -131,8 +131,9 @@ func (p *puller) Pull(ctx context.Context, uri, dst string) (err error) { // copy to cache location _, err = copy.Image(ctx, policyCtx, cacheRef, srcRef, ©.Options{ - ReportWriter: os.Stdout, - SourceCtx: p.sysCtx, + ReportWriter: os.Stdout, + SourceCtx: p.sysCtx, + RemoveSignatures: true, }) if err != nil { return err From ae4fb417220a872bd0bea7cbfd468c342488368b Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Thu, 12 Jan 2023 10:37:19 +0100 Subject: [PATCH 67/78] without nested if else --- internal/pkg/node/methods.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index 0fc7ca19..f404ebd2 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -205,17 +205,15 @@ func (ent *Entry) GetB() bool { return !(strings.ToLower(ent.value[0]) == "false" || strings.ToLower(ent.value[0]) == "no" || ent.value[0] == "0") + } else if len(ent.altvalue) > 0 { + return !(strings.ToLower(ent.altvalue[0]) == "false" || + strings.ToLower(ent.altvalue[0]) == "no" || + ent.altvalue[0] == "0") } else { - if len(ent.altvalue) > 0 { - return !(strings.ToLower(ent.altvalue[0]) == "false" || - strings.ToLower(ent.altvalue[0]) == "no" || - ent.altvalue[0] == "0") - } else { - return !(len(ent.def) == 0 || - strings.ToLower(ent.def[0]) == "false" || - strings.ToLower(ent.def[0]) == "no" || - ent.def[0] == "0") - } + return !(len(ent.def) == 0 || + strings.ToLower(ent.def[0]) == "false" || + strings.ToLower(ent.def[0]) == "no" || + ent.def[0] == "0") } } From 750358646d44d49182d57994384e6dc8bd4ec5c1 Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 14 Dec 2022 16:44:19 +0100 Subject: [PATCH 68/78] resolve symlink for kernel version --- internal/pkg/container/kernel.go | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/internal/pkg/container/kernel.go b/internal/pkg/container/kernel.go index c3f94db0..c87d644b 100644 --- a/internal/pkg/container/kernel.go +++ b/internal/pkg/container/kernel.go @@ -1,9 +1,11 @@ package container import ( + "os" "path" "path/filepath" "sort" + "strings" "github.com/hpcng/warewulf/internal/pkg/util" "github.com/hpcng/warewulf/internal/pkg/wwlog" @@ -15,11 +17,11 @@ var ( `vmlinuz`, `vmlinux-*`, `vmlinuz-*`, - `vmlinuz.gz` } + `vmlinuz.gz`} kernelDirs = []string{ `/lib/modules/*/`, - `/boot/` } + `/boot/`} ) func KernelFind(container string) string { @@ -49,6 +51,16 @@ func KernelFind(container string) string { for _, kernelPath := range kernelPaths { wwlog.Debug("Checking for kernel path: %s", kernelPath) if util.IsFile(kernelPath) { + // IsFile does not check if file is a softlink + stat, _ := os.Lstat(kernelPath) + if stat.Mode()&os.ModeSymlink == os.ModeSymlink { + wwlog.Verbose("%s is a softlink", kernelPath) + kernelPath, err = filepath.EvalSymlinks(kernelPath) + if err != nil { + wwlog.Warn("could evaluate symlink %s: %s", kernelPath, err) + } + wwlog.Debug("softlink is %s", kernelPath) + } return kernelPath } } @@ -65,5 +77,10 @@ func KernelVersion(container string) string { return "" } - return path.Base(path.Dir(kernel)) + ret := path.Base(path.Dir(kernel)) + if ret == "boot" { + ret = path.Base(kernel) + } + + return strings.TrimPrefix(ret, "vmlinuz-") } From 3638378eaae770181d88a89f5f72c3e43561aa4a Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Mon, 16 Jan 2023 14:42:06 -0700 Subject: [PATCH 69/78] Remove redundant code Pointed out in #627 Signed-off-by: Jonathon Anderson --- internal/pkg/overlay/datastructure.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/internal/pkg/overlay/datastructure.go b/internal/pkg/overlay/datastructure.go index 1838900b..2a427bee 100644 --- a/internal/pkg/overlay/datastructure.go +++ b/internal/pkg/overlay/datastructure.go @@ -60,8 +60,6 @@ func InitStruct(nodeInfo node.NodeInfo) TemplateStruct { // init some convininence vars tstruct.Id = nodeInfo.Id.Get() tstruct.Hostname = nodeInfo.Id.Get() - tstruct.Id = nodeInfo.Id.Get() - tstruct.Hostname = nodeInfo.Id.Get() // Backwards compatibility for templates using "Keys" tstruct.AllNodes = allNodes tstruct.Nfs = *controller.Nfs From 950099f9dcc7286de9525ef9be377d2251a48b96 Mon Sep 17 00:00:00 2001 From: David McFarlane <54093156+Prepultrue@users.noreply.github.com> Date: Wed, 18 Jan 2023 14:30:15 +1100 Subject: [PATCH 70/78] Set umask to 0000 while overlays are being built. Fixes #584 --- CHANGELOG.md | 1 + internal/pkg/overlay/overlay.go | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 079ea4de..650c6f49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - New man page for `defaults.conf` #593 - New debug overlay template +- Fix directories within overlays losing group/other write permissions #584 ## [4.4.0rc2] 2022-12-09 diff --git a/internal/pkg/overlay/overlay.go b/internal/pkg/overlay/overlay.go index 06ddc1fa..66443f93 100644 --- a/internal/pkg/overlay/overlay.go +++ b/internal/pkg/overlay/overlay.go @@ -11,6 +11,7 @@ import ( "path/filepath" "regexp" "strings" + "syscall" "text/template" "github.com/hpcng/warewulf/internal/pkg/node" @@ -197,6 +198,9 @@ func BuildOverlayIndir(nodeInfo node.NodeInfo, overlayNames []string, outputDir return errors.Errorf("overlay names contains illegal characters: %v", overlayNames) } + // Temporarily set umask to 0000, so directories in the overlay retain permissions + defer syscall.Umask(syscall.Umask(0)) + wwlog.Verbose("Processing node/overlay: %s/%s", nodeInfo.Id.Get(), strings.Join(overlayNames, "-")) for _, overlayName := range overlayNames { wwlog.Verbose("Building overlay %s for node %s in %s", overlayName, nodeInfo.Id.Get(), outputDir) From 404710dd2d8dbb733780a912b66df087f5a69e83 Mon Sep 17 00:00:00 2001 From: David McFarlane <54093156+Prepultrue@users.noreply.github.com> Date: Wed, 18 Jan 2023 14:42:40 +1100 Subject: [PATCH 71/78] Update CHANGELOG.md --- CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 650c6f49..642a53c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - New man page for `defaults.conf` #593 - New debug overlay template -- Fix directories within overlays losing group/other write permissions #584 + +### Fixed + +- Directories within overlays no longer lose group/other write permissions #584 ## [4.4.0rc2] 2022-12-09 From 42f4f1db34cd18f718246c5692086606a73a11fe Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 17 Jan 2023 23:43:22 -0700 Subject: [PATCH 72/78] Simpler symlink handling in KernelFind Signed-off-by: Jonathon Anderson --- internal/pkg/container/kernel.go | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/internal/pkg/container/kernel.go b/internal/pkg/container/kernel.go index c87d644b..77435aef 100644 --- a/internal/pkg/container/kernel.go +++ b/internal/pkg/container/kernel.go @@ -1,13 +1,11 @@ package container import ( - "os" "path" "path/filepath" "sort" "strings" - "github.com/hpcng/warewulf/internal/pkg/util" "github.com/hpcng/warewulf/internal/pkg/wwlog" ) @@ -50,17 +48,11 @@ func KernelFind(container string) string { for _, kernelPath := range kernelPaths { wwlog.Debug("Checking for kernel path: %s", kernelPath) - if util.IsFile(kernelPath) { - // IsFile does not check if file is a softlink - stat, _ := os.Lstat(kernelPath) - if stat.Mode()&os.ModeSymlink == os.ModeSymlink { - wwlog.Verbose("%s is a softlink", kernelPath) - kernelPath, err = filepath.EvalSymlinks(kernelPath) - if err != nil { - wwlog.Warn("could evaluate symlink %s: %s", kernelPath, err) - } - wwlog.Debug("softlink is %s", kernelPath) - } + // Only succeeds if kernelPath exists and, if a + // symlink, links to a path that also exists + kernelPath, err = filepath.EvalSymlinks(kernelPath) + if err == nil { + wwlog.Debug("found kernel: %s", kernelPath) return kernelPath } } From d35fab082aaa39569e7cac0e3a1b5b7c2e4bf6e3 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 18 Jan 2023 12:59:41 -0700 Subject: [PATCH 73/78] Update changelog in prep for v4.4.0 Signed-off-by: Jonathon Anderson --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 079ea4de..6ec545e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,8 +9,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- New man page for `defaults.conf` #593 -- New debug overlay template +- New Docker container node image for CentOS 7. #621 + +### Fixed + +- Replaced an invalid variable name in a NetworkManager overlay + template. #626 +- The 'nodes' alias now correctly refers to 'node' rather than + 'profile'. +- Fixed a typo in a log message. #631 +- Boolean attributes now correctly account for profile and default + values. #630 + +## [4.4.0rc3] 2022-12-23 + +### Added + +- New `defaults.conf` man page. #593 +- A new debug overlay includes a template which demonstrates accessing + all available variables. #599 +- Distribute a README along with staticfiles. #189 +- Add a `-y` flag to `wwctl profile add`. #610 +- Distribute a source RPM with GitHub releases. #614 + +### Changed + +- No longer ask for confirmation when deleting 0 nodes. #603 +- Ask for confirmation during `wwctl container delete`. #606 + +### Fixed + +- `wwctl profile set` now indicates "profiles" in output where it + previously mistakenly indicated "nodes." #600 +- Set correct overlay permissions for a NetworkManager configuration + file. #591 ## [4.4.0rc2] 2022-12-09 @@ -23,7 +55,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- The 'nodes' alias now correctly refers to 'node' rather than 'profile' - Work-around for older versions of gzip that lack a `--keep` flag during `wwctl container build`. #580 - The default ipxe template is once again specified as a built-in @@ -80,7 +111,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 commands, and between the on disk YAML format and the in memory format, enabling the command-line options to be autogenerated from the datastructures and ensuring that profile and node capabilities - remain in sync. #495 + remain in sync. Multiple command line arguments have been updated or + changed. #495, #637 - `wwctl power` commands no longer separates node output with additional whitespace. #514 From 895df98c76487bd330b8eb0f93d1548405e3d569 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 18 Jan 2023 21:31:19 +0100 Subject: [PATCH 74/78] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d9e71f5..0c89fd35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## [4..4.0] 2023-01-18 ### Added @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed a typo in a log message. #631 - Boolean attributes now correctly account for profile and default values. #630 +- Kernvel version is shown correctly ## [4.4.0rc3] 2022-12-23 From afcdb21ed7c4305585c8381ad2b03d56786a1df6 Mon Sep 17 00:00:00 2001 From: Christian Goll Date: Wed, 18 Jan 2023 21:33:04 +0100 Subject: [PATCH 75/78] Tag 4.4.0 release --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e9b6109e..b494dd69 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ VARLIST := OS # Project Information VARLIST += WAREWULF VERSION RELEASE WAREWULF ?= warewulf -VERSION ?= 4.4.0rc3 +VERSION ?= 4.4.0 GIT_TAG := $(shell test -e .git && git log -1 --format="%h") ifdef GIT_TAG From b5cdfa06fbb34dab658b320f3e4930d2715ac4ed Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 18 Jan 2023 14:05:16 -0700 Subject: [PATCH 76/78] Fixed typos in CHANGELOG --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c89fd35..04a40983 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [4..4.0] 2023-01-18 +## [4.4.0] 2023-01-18 ### Added @@ -20,7 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed a typo in a log message. #631 - Boolean attributes now correctly account for profile and default values. #630 -- Kernvel version is shown correctly +- Kernel version is shown correctly for symlink'd kernels #640 ## [4.4.0rc3] 2022-12-23 From 88b740d74d9b8a63528ae40261086c68a713254c Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 18 Jan 2023 15:53:21 -0700 Subject: [PATCH 77/78] Fixed an incorrect issue association in CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04a40983..a36b77a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -56,7 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The environment variable `WW_CONTAINER_SHELL` is defined in a `wwctl container shell` environment to indicate the container in use. #579 - Network interface configuration (`ifcfg`) files now include the - interface name and type. #574 + interface name and type. #457 ### Fixed From cb1726bd401d7e599e4b9c398af1ca43f25dffee Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Tue, 31 Jan 2023 14:57:27 -0700 Subject: [PATCH 78/78] Minor spelling fix Signed-off-by: Jonathon Anderson --- internal/pkg/node/transformers.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/pkg/node/transformers.go b/internal/pkg/node/transformers.go index 177d7d49..75960b25 100644 --- a/internal/pkg/node/transformers.go +++ b/internal/pkg/node/transformers.go @@ -28,7 +28,7 @@ func (nodeConf *NodeConf) GetFrom(nodeInfo NodeInfo) { } /* -Abstract function which populates a NodeConf form the given NodeInfo +Abstract function which populates a NodeConf from the given NodeInfo via getter functions. */ func (nodeConf *NodeConf) getterFrom(nodeInfo NodeInfo,