fixes for split overlays

Signed-off-by: Christian Goll <cgoll@suse.com>
This commit is contained in:
Christian Goll
2024-10-07 12:04:28 +02:00
committed by Jonathon Anderson
parent c08cd82e68
commit 0c6e7cc58a
39 changed files with 792 additions and 415 deletions

View File

@@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"strings" "strings"
"testing" "testing"
"time"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/warewulf/warewulf/internal/pkg/api/routes/wwapiv1" "github.com/warewulf/warewulf/internal/pkg/api/routes/wwapiv1"
@@ -12,7 +13,7 @@ import (
"github.com/warewulf/warewulf/internal/pkg/wwlog" "github.com/warewulf/warewulf/internal/pkg/wwlog"
) )
func Test_List_Args(t *testing.T) { func Test_List(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
args []string args []string
@@ -60,30 +61,14 @@ nodes:
buf := new(bytes.Buffer) buf := new(bytes.Buffer)
baseCmd := GetCommand() baseCmd := GetCommand()
baseCmd.SetArgs(tt.args) baseCmd.SetArgs(tt.args)
stdoutR, stdoutW, _ := os.Pipe() baseCmd.SetOut(nil)
os.Stdout = stdoutW baseCmd.SetErr(nil)
wwlog.SetLogWriter(os.Stdout) wwlog.SetLogWriter(buf)
baseCmd.SetOut(os.Stdout)
baseCmd.SetErr(os.Stdout)
err := baseCmd.Execute() err := baseCmd.Execute()
if tt.fail { assert.NoError(t, err)
assert.Error(t, err) assert.Contains(t,
} else { strings.Join(strings.Fields(buf.String()), ""),
assert.NoError(t, err) strings.Join(strings.Fields(tt.stdout), ""))
}
stdoutC := make(chan string)
go func() {
var buf bytes.Buffer
_, _ = io.Copy(&buf, stdoutR)
stdoutC <- buf.String()
}()
stdoutW.Close()
stdout := <-stdoutC
assert.Equal(t, tt.output, stdout)
assert.Equal(t,
strings.ReplaceAll(strings.TrimSpace(tt.output), " ", ""),
strings.ReplaceAll(strings.TrimSpace(stdout), " ", ""))
}) })
} }
} }

View File

@@ -2,6 +2,7 @@ package rename
import ( import (
"bytes" "bytes"
"os"
"path" "path"
"testing" "testing"
@@ -10,7 +11,6 @@ import (
"github.com/warewulf/warewulf/internal/pkg/testenv" "github.com/warewulf/warewulf/internal/pkg/testenv"
"github.com/warewulf/warewulf/internal/pkg/warewulfd" "github.com/warewulf/warewulf/internal/pkg/warewulfd"
"github.com/warewulf/warewulf/internal/pkg/wwlog" "github.com/warewulf/warewulf/internal/pkg/wwlog"
"github.com/warewulf/warewulf/internal/pkg/wwlog"
) )
func Test_Rename(t *testing.T) { func Test_Rename(t *testing.T) {

View File

@@ -5,7 +5,6 @@ import (
"strings" "strings"
"github.com/olekukonko/tablewriter" "github.com/olekukonko/tablewriter"
"github.com/warewulf/warewulf/internal/pkg/wwlog"
) )
type PrintHelper struct { type PrintHelper struct {

View File

@@ -12,7 +12,6 @@ import (
"github.com/warewulf/warewulf/internal/pkg/api/routes/wwapiv1" "github.com/warewulf/warewulf/internal/pkg/api/routes/wwapiv1"
apiutil "github.com/warewulf/warewulf/internal/pkg/api/util" apiutil "github.com/warewulf/warewulf/internal/pkg/api/util"
"github.com/warewulf/warewulf/internal/pkg/node" "github.com/warewulf/warewulf/internal/pkg/node"
"github.com/warewulf/warewulf/internal/pkg/wwlog"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
) )

View File

@@ -18,14 +18,16 @@ import (
func Test_List(t *testing.T) { func Test_List(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
args []string args []string
stdout string wantErr bool
inDb string stdout string
inDb string
}{ }{
{ {
name: "single node list", name: "single node list",
args: []string{}, args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [default] n01 [default]
`, `,
@@ -39,8 +41,9 @@ nodes:
`, `,
}, },
{ {
name: "multiple nodes list", name: "multiple nodes list",
args: []string{}, args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [default] n01 [default]
n02 [default] n02 [default]
@@ -58,8 +61,9 @@ nodes:
`, `,
}, },
{ {
name: "node list returns multiple nodes", name: "node list returns multiple nodes",
args: []string{"n01,n02"}, args: []string{"n01,n02"},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [default] n01 [default]
n02 [default] n02 [default]
@@ -77,8 +81,9 @@ nodes:
`, `,
}, },
{ {
name: "node list returns multiple nodes (case 2)", name: "node list returns multiple nodes (case 2)",
args: []string{"n01,n03"}, args: []string{"n01,n03"},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [default] n01 [default]
n03 [default] n03 [default]
@@ -105,8 +110,9 @@ nodes:
`, `,
}, },
{ {
name: "node list returns one node", name: "node list returns one node",
args: []string{"n01,"}, args: []string{"n01,"},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [default] n01 [default]
`, `,
@@ -123,8 +129,9 @@ nodes:
`, `,
}, },
{ {
name: "node list profile with network", name: "node list profile with network",
args: []string{}, args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [default] default n01 [default] default
`, `,
@@ -140,18 +147,12 @@ nodes:
- default - default
`}, `},
{ {
name: "node list profile with comment", name: "node list profile with comment",
args: []string{"-a"}, args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
n01 Comment default profilecomment n01 Comment default profilecomment
n01 Ipxe -- (default) n01 Profiles default
n01 RuntimeOverlay -- (hosts,ssh.authorized_keys,syncuser)
n01 SystemOverlay -- (wwinit,wwclient,fstab,hostname,ssh.host_keys,issue,resolv,udev.netname,systemd.netname,ifcfg,NetworkManager,debian.interfaces,wicked,ignition)
n01 Root -- (initramfs)
n01 Init -- (/sbin/init)
n01 Kernel.Args -- (quiet crashkernel=no vga=791 net.naming-scheme=v238)
n01 Profiles -- default
`, `,
inDb: `WW_INTERNAL: 45 inDb: `WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
@@ -163,18 +164,12 @@ nodes:
- default - default
`}, `},
{ {
name: "node list profile with comment superseded", name: "node list profile with comment superseded",
args: []string{"-a"}, args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
n01 Comment SUPERSEDED nodecomment n01 Comment SUPERSEDED nodecomment
n01 Ipxe -- (default) n01 Profiles default
n01 RuntimeOverlay -- (hosts,ssh.authorized_keys,syncuser)
n01 SystemOverlay -- (wwinit,wwclient,fstab,hostname,ssh.host_keys,issue,resolv,udev.netname,systemd.netname,ifcfg,NetworkManager,debian.interfaces,wicked,ignition)
n01 Root -- (initramfs)
n01 Init -- (/sbin/init)
n01 Kernel.Args -- (quiet crashkernel=no vga=791 net.naming-scheme=v238)
n01 Profiles -- default
`, `,
inDb: `WW_INTERNAL: 45 inDb: `WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
@@ -187,8 +182,9 @@ nodes:
- default - default
`}, `},
{ {
name: "node list profile with ipmi user", name: "node list profile with ipmi user",
args: []string{"-i"}, args: []string{"-i"},
wantErr: false,
stdout: `NODE IPMIIPADDR IPMIPORT IPMIUSERNAME IPMIINTERFACE stdout: `NODE IPMIIPADDR IPMIPORT IPMIUSERNAME IPMIINTERFACE
n01 <nil> admin n01 <nil> admin
`, `,
@@ -203,8 +199,9 @@ nodes:
- default - default
`}, `},
{ {
name: "node list profile with ipmi user superseded", name: "node list profile with ipmi user superseded",
args: []string{"-i"}, args: []string{"-i"},
wantErr: false,
stdout: `NODE IPMIIPADDR IPMIPORT IPMIUSERNAME IPMIINTERFACE stdout: `NODE IPMIIPADDR IPMIPORT IPMIUSERNAME IPMIINTERFACE
n01 <nil> user n01 <nil> user
`, `,
@@ -231,8 +228,9 @@ nodes:
- p1 - p1
- p2 - p2
`, `,
name: "multiple profiles list", name: "multiple profiles list",
args: []string{}, args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK stdout: ` NODE NAME PROFILES NETWORK
n01 [p1 p2] n01 [p1 p2]
`}, `},
@@ -247,17 +245,11 @@ nodes:
- p1 - p1
- p2 - p2
`, `,
name: "multiple profiles list all", name: "multiple profiles list all",
args: []string{"-a"}, args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01 n01 Profiles p1,p2
n01 Ipxe -- (default)
n01 RuntimeOverlay -- (hosts,ssh.authorized_keys,syncuser)
n01 SystemOverlay -- (wwinit,wwclient,fstab,hostname,ssh.host_keys,issue,resolv,udev.netname,systemd.netname,ifcfg,NetworkManager,debian.interfaces,wicked,ignition)
n01 Root -- (initramfs)
n01 Init -- (/sbin/init)
n01 Kernel.Args -- (quiet crashkernel=no vga=791 net.naming-scheme=v238)
n01 Profiles -- p1,p2
`}, `},
{ {
inDb: `WW_INTERNAL: 45 inDb: `WW_INTERNAL: 45
@@ -271,10 +263,11 @@ nodes:
profiles: profiles:
- p1 - p1
`, `,
name: "multiple overlays list", name: "multiple overlays list",
args: []string{"-l"}, args: []string{"-l"},
wantErr: false,
stdout: `NODE NAME KERNEL OVERRIDE CONTAINER OVERLAYS (S/R) stdout: `NODE NAME KERNEL OVERRIDE CONTAINER OVERLAYS (S/R)
n01 -- -- (wwinit,wwclient,fstab,hostname,ssh.host_keys,issue,resolv,udev.netname,systemd.netname,ifcfg,NetworkManager,debian.interfaces,wicked,ignition)/rop1,rop2 n01 /rop1,rop2
`}, `},
{ {
inDb: `WW_INTERNAL: 45 inDb: `WW_INTERNAL: 45
@@ -293,10 +286,11 @@ nodes:
- nop1 - nop1
- ~rop1 - ~rop1
`, `,
name: "multiple overlays list", name: "multiple overlays list",
args: []string{"-l"}, args: []string{"-l"},
wantErr: false,
stdout: `NODE NAME KERNEL OVERRIDE CONTAINER OVERLAYS (S/R) stdout: `NODE NAME KERNEL OVERRIDE CONTAINER OVERLAYS (S/R)
n01 -- -- sop1/rop2,nop1 ~{rop1} n01 sop1/nop1,~rop1,rop1,rop2
`}, `},
{ {
inDb: `WW_INTERNAL: 45 inDb: `WW_INTERNAL: 45
@@ -315,17 +309,11 @@ nodes:
- nop1 - nop1
- ~rop1 - ~rop1
`, `,
name: "multiple overlays list all", name: "multiple overlays list all",
args: []string{"-a"}, args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01 n01 Profiles p1
n01 Ipxe -- (default)
n01 RuntimeOverlay SUPERSEDED rop2,nop1 ~{rop1}
n01 SystemOverlay p1 sop1
n01 Root -- (initramfs)
n01 Init -- (/sbin/init)
n01 Kernel.Args -- (quiet crashkernel=no vga=791 net.naming-scheme=v238)
n01 Profiles -- p1
`}, `},
{ {
inDb: `WW_INTERNAL: 45 inDb: `WW_INTERNAL: 45
@@ -341,17 +329,12 @@ nodes:
runtime overlay: runtime overlay:
- nop1 - nop1
`, `,
name: "multiple overlays list all", name: "multiple overlays list all",
args: []string{"-a"}, args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01 n01 Profiles p1
n01 Ipxe -- (default) n01 RuntimeOverlay p1+nop1,rop1,rop2
n01 RuntimeOverlay -- (hosts,ssh.authorized_keys,syncuser)
n01 SystemOverlay SUPERSEDED profileinit,nodeinit
n01 Root -- (initramfs)
n01 Init -- (/sbin/init)
n01 Kernel.Args -- (quiet crashkernel=no vga=791 net.naming-scheme=v238)
n01 Profiles -- p1
`}, `},
} }
@@ -477,36 +460,15 @@ nodes:
baseCmd.SetArgs(tt.args) baseCmd.SetArgs(tt.args)
baseCmd.SetOut(buf) baseCmd.SetOut(buf)
baseCmd.SetErr(buf) baseCmd.SetErr(buf)
wwlog.SetLogWriter(buf) err = baseCmd.Execute()
err := baseCmd.Execute() if tt.wantErr {
assert.NoError(t, err) assert.Error(t, err)
for _, expected_output := range tt.output { } else {
assert.Equal(t, expected_output, buf.String()) assert.NoError(t, err)
} }
assert.Contains(t,
strings.Join(strings.Fields(tt.stdout), ""),
strings.Join(strings.Fields(buf.String()), ""))
}) })
} }
} }
func verifyOutput(t *testing.T, baseCmd *cobra.Command, content string) {
stdoutR, stdoutW, _ := os.Pipe()
os.Stdout = stdoutW
wwlog.SetLogWriter(os.Stdout)
baseCmd.SetOut(os.Stdout)
baseCmd.SetErr(os.Stdout)
err := baseCmd.Execute()
assert.NoError(t, err)
strip, _ := regexp.Compile("(?m)(^ *| *$)")
stdoutC := make(chan string)
go func() {
var buf bytes.Buffer
_, _ = io.Copy(&buf, stdoutR)
stdoutC <- buf.String()
}()
stdoutW.Close()
stdout := <-stdoutC
assert.NotEmpty(t, stdout, "output should not be empty")
assert.Equal(t, strip.ReplaceAllString(content, ""), strip.ReplaceAllString(stdout, ""))
}

View File

@@ -7,7 +7,6 @@ import (
"strings" "strings"
"syscall" "syscall"
"github.com/pkg/errors"
"github.com/spf13/cobra" "github.com/spf13/cobra"
warewulfconf "github.com/warewulf/warewulf/internal/pkg/config" warewulfconf "github.com/warewulf/warewulf/internal/pkg/config"
"github.com/warewulf/warewulf/internal/pkg/hostlist" "github.com/warewulf/warewulf/internal/pkg/hostlist"
@@ -20,12 +19,12 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
controller := warewulfconf.Get() controller := warewulfconf.Get()
nodeDB, err := node.New() nodeDB, err := node.New()
if err != nil { if err != nil {
return errors.Wrap(err, "couldn't open node configuration") return fmt.Errorf("couldn't open node configuration: %s", err)
} }
db, err := nodeDB.FindAllNodes() db, err := nodeDB.FindAllNodes()
if err != nil { if err != nil {
return errors.Wrap(err, "could not get node list") return fmt.Errorf("could not get node list: %s", err)
} }
if len(args) > 0 { if len(args) > 0 {

View File

@@ -25,34 +25,27 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
overlaySourceDir = overlay.OverlaySourceDir(overlayName) overlaySourceDir = overlay.OverlaySourceDir(overlayName)
if !util.IsDir(overlaySourceDir) { if !util.IsDir(overlaySourceDir) {
err := errors.New("Overlay does not exist") err := errors.New("overlay does not exist")
wwlog.Error("%s: %s", err, overlayName)
return err return err
} }
overlayFile := path.Join(overlaySourceDir, fileName) overlayFile := path.Join(overlaySourceDir, fileName)
if !util.IsFile(overlayFile) { if !util.IsFile(overlayFile) {
err := errors.New("File does not exist within overlay") err := errors.New("file does not exist within overlay")
wwlog.Error("%s: %s:%s", err, overlayName, fileName)
return err return err
} }
if NodeName == "" { if NodeName == "" {
f, err := os.ReadFile(overlayFile) f, err := os.ReadFile(overlayFile)
if err != nil { if err != nil {
wwlog.Error("Could not read file: %s", err)
return err return err
} }
wwlog.Output("%s", string(f)) wwlog.Output("%s", string(f))
} else { } else {
if !util.IsFile(overlayFile) { if !util.IsFile(overlayFile) {
err := errors.New("Not a file") err := errors.New("not a file")
wwlog.Error("%s: %s:%s", err, overlayName, fileName)
return err
err := errors.New("Not a file")
wwlog.Error("%s: %s:%s", err, overlayName, fileName)
return err return err
} }
if filepath.Ext(overlayFile) != ".ww" { if filepath.Ext(overlayFile) != ".ww" {

View File

@@ -79,7 +79,7 @@ type KernelConf struct {
type NetDevs struct { type NetDevs struct {
Type string `yaml:"type,omitempty" lopt:"type" sopt:"T" comment:"Set device type of given network"` Type string `yaml:"type,omitempty" lopt:"type" sopt:"T" comment:"Set device type of given network"`
OnBoot bool `yaml:"onboot,omitempty" lopt:"onboot" comment:"Enable/disable network device (true/false)"` Manual bool `yaml:"manual,omitempty" lopt:"manual" comment:"Enable/disable network device (true/false)"`
Device string `yaml:"device,omitempty" lopt:"netdev" sopt:"N" comment:"Set the device for given network"` Device string `yaml:"device,omitempty" lopt:"netdev" sopt:"N" comment:"Set the device for given network"`
Hwaddr string `yaml:"hwaddr,omitempty" lopt:"hwaddr" sopt:"H" comment:"Set the device's HW address for given network" type:"MAC"` Hwaddr string `yaml:"hwaddr,omitempty" lopt:"hwaddr" sopt:"H" comment:"Set the device's HW address for given network" type:"MAC"`
Ipaddr net.IP `yaml:"ipaddr,omitempty" comment:"IPv4 address in given network" sopt:"I" lopt:"ipaddr" type:"IP"` Ipaddr net.IP `yaml:"ipaddr,omitempty" comment:"IPv4 address in given network" sopt:"I" lopt:"ipaddr" type:"IP"`
@@ -88,8 +88,8 @@ type NetDevs struct {
Netmask net.IP `yaml:"netmask,omitempty" lopt:"netmask" sopt:"M" comment:"Set the networks netmask" type:"IP"` Netmask net.IP `yaml:"netmask,omitempty" lopt:"netmask" sopt:"M" comment:"Set the networks netmask" type:"IP"`
Gateway net.IP `yaml:"gateway,omitempty" lopt:"gateway" sopt:"G" comment:"Set the node's network device gateway" type:"IP"` Gateway net.IP `yaml:"gateway,omitempty" lopt:"gateway" sopt:"G" comment:"Set the node's network device gateway" type:"IP"`
MTU string `yaml:"mtu,omitempty" lopt:"mtu" comment:"Set the mtu" type:"uint"` MTU string `yaml:"mtu,omitempty" lopt:"mtu" comment:"Set the mtu" type:"uint"`
primary bool `yaml:"primary,omitempty"`
Tags map[string]string `yaml:"tags,omitempty"` Tags map[string]string `yaml:"tags,omitempty"`
primary bool
} }
/* /*

View File

@@ -72,6 +72,7 @@ func InitStruct(nodeData node.NodeConf) (TemplateStruct, error) {
// init some convenience vars // init some convenience vars
tstruct.Id = nodeData.Id() tstruct.Id = nodeData.Id()
tstruct.Hostname = nodeData.Id() tstruct.Hostname = nodeData.Id()
tstruct.Container = nodeData.ContainerName
// Backwards compatibility for templates using "Keys" // Backwards compatibility for templates using "Keys"
tstruct.AllNodes = allNodes tstruct.AllNodes = allNodes
dt := time.Now() dt := time.Now()

View File

@@ -71,7 +71,6 @@ Filename: warewulf-default.conf
[connection] [connection]
id=default id=default
interface-name=wwnet0 interface-name=wwnet0
type=ethernet type=ethernet
autoconnect=true autoconnect=true
[ethernet] [ethernet]
@@ -93,7 +92,6 @@ Filename: warewulf-secondary.conf
[connection] [connection]
id=secondary id=secondary
interface-name=wwnet1 interface-name=wwnet1
type=ethernet type=ethernet
autoconnect=true autoconnect=true
[ethernet] [ethernet]

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -5,21 +5,18 @@
[connection] [connection]
id={{ $connection_id }} id={{ $connection_id }}
interface-name={{ $netdev.Device }} interface-name={{ $netdev.Device }}
{{ if $netdev.Type -}}
{{ if eq $netdev.Type "bond-slave" -}} {{ if eq $netdev.Type "bond-slave" -}}
slave-type=bond slave-type=bond
{{- $conn := split "_" $connection_id }} {{- $conn := split "_" $connection_id }}
{{- $master := $conn._0 }} {{- $master := $conn._0 }}
master={{ $master }} master={{ $master }}
type=ethernet type=ethernet
{{ else }} {{ else -}}
type={{ $netdev.Type }} type={{if $netdev.Type}}{{ $netdev.Type }}{{ else }}ethernet{{end}}
autoconnect={{ $netdev.OnBoot }} autoconnect={{ if $netdev.Manual }}false{{else}}true{{end}}
{{ end -}} {{ end -}}
{{ end -}}
{{ if $netdev.Hwaddr -}} {{ if $netdev.Hwaddr -}}
{{ if eq $netdev.Type "ethernet" -}} {{ if or (eq $netdev.Type "ethernet") (not $netdev.Type ) -}}
[ethernet] [ethernet]
mac-address={{ $netdev.Hwaddr }} mac-address={{ $netdev.Hwaddr }}
{{ if $netdev.MTU -}} {{ if $netdev.MTU -}}
@@ -34,14 +31,12 @@ mtu={{ $netdev.MTU }}
{{ if $netdev.MTU -}} {{ if $netdev.MTU -}}
mtu={{ $netdev.MTU }} mtu={{ $netdev.MTU }}
{{ end -}} {{ end -}}
[bond] [bond]
downdelay=0 downdelay=0
miimon=100 miimon=100
mode=802.3ad mode=802.3ad
xmit_hash_policy=layer2+3 xmit_hash_policy=layer2+3
updelay=0 updelay=0
{{ end -}} {{ end -}}
{{ if eq $netdev.Type "infiniband" -}} {{ if eq $netdev.Type "infiniband" -}}

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -2,14 +2,14 @@
{{- $filename := print $devname }} {{- $filename := print $devname }}
{{- file $filename }} {{- file $filename }}
# This file is autogenerated by warewulf # This file is autogenerated by warewulf
{{ if $netdev.OnBoot.GetB -}} {{ if not $netdev.Manual -}}
auto {{$netdev.Device.Get}} auto {{$netdev.Device}}
{{ end -}} {{ end -}}
allow-hotplug {{$netdev.Device.Get}} allow-hotplug {{$netdev.Device}}
iface {{$netdev.Device.Get}} inet static iface {{$netdev.Device}} inet static
address {{$netdev.Ipaddr.Get}} address {{$netdev.Ipaddr}}
netmask {{$netdev.Netmask.Get}} netmask {{$netdev.Netmask}}
gateway {{$netdev.Gateway.Get}} {{ if $netdev.Gateway }}gateway {{$netdev.Gateway}}{{end}}
mtu {{$netdev.MTU.Get}} mtu {{$netdev.MTU}}
up ifmetric {{$netdev.Device.Get}} 30 up ifmetric {{$netdev.Device}} 30
{{- end}} {{- end}}

View File

@@ -83,10 +83,8 @@ data from other structures.
- Root: initramfs - Root: initramfs
- AssetKey: - AssetKey:
- Discoverable: - Discoverable:
- Profiles: empty - Profiles: default
- Tags: - Tags:
- TagsDel:
- Keys:
- Kernel: - Kernel:
- Version: - Version:
- Override: - Override:
@@ -101,39 +99,32 @@ data from other structures.
- Interface: - Interface:
- Write: true - Write: true
- Tags: - Tags:
- TagsDel:
- NetDevs[default]: - NetDevs[default]:
- Type: ethernet - Type:
- OnBoot: true - Manual: false
- Device: wwnet0 - Device: wwnet0
- Hwaddr: e6:92:39:49:7b:03 - Hwaddr: e6:92:39:49:7b:03
- Ipaddr: 192.168.3.21 - Ipaddr: 192.168.3.21
- IpCIDR: 192.168.3.21/24 - Ipaddr6: <nil>
- Ipaddr6: - Prefix: <nil>
- Prefix:
- Netmask: 255.255.255.0 - Netmask: 255.255.255.0
- Gateway: 192.168.3.1 - Gateway: 192.168.3.1
- MTU: - MTU:
- Primary: true - Primary: false
- Default:
- Tags: - Tags:
- TagsDel:
- NetDevs[secondary]: - NetDevs[secondary]:
- Type: ethernet - Type:
- OnBoot: true - Manual: false
- Device: wwnet1 - Device: wwnet1
- Hwaddr: 9a:77:29:73:14:f1 - Hwaddr: 9a:77:29:73:14:f1
- Ipaddr: 192.168.3.22 - Ipaddr: 192.168.3.22
- IpCIDR: 192.168.3.22/24 - Ipaddr6: <nil>
- Ipaddr6: - Prefix: <nil>
- Prefix:
- Netmask: 255.255.255.0 - Netmask: 255.255.255.0
- Gateway: 192.168.3.1 - Gateway: 192.168.3.1
- MTU: - MTU:
- Primary: - Primary: false
- Default:
- Tags: DNS1=8.8.8.8 DNS2=8.8.4.4 - Tags: DNS1=8.8.8.8 DNS2=8.8.4.4
- TagsDel:
## Build variables ## Build variables
@@ -151,7 +142,7 @@ data from other structures.
- Ipaddr6: - Ipaddr6:
- Netmask: - Netmask:
- Network: - Network:
- NetworkCIDR: <nil> - NetworkCIDR:
- Ipv6: false - Ipv6: false
@@ -198,13 +189,13 @@ data from other structures.
- ClusterName: - ClusterName:
- ContainerName: rockylinux-9 - ContainerName: rockylinux-9
- Ipxe: default - Ipxe: default
- RuntimeOverlay: hosts - RuntimeOverlay: [hosts ssh.authorized_keys syncuser]
- SystemOverlay: wwinit - SystemOverlay: [wwinit wwclient fstab hostname ssh.host_keys issue resolv udev.netname systemd.netname ifcfg NetworkManager debian.interfaces wicked ignition]
- Root: initramfs - Root: initramfs
- Discoverable: - Discoverable:
- Init: /sbin/init - Init: /sbin/init
- AssetKey: - AssetKey:
- Profiles: empty - Profiles: [default]
- Tags: - Tags:
- Kernel - Kernel
- Override: - Override:
@@ -220,32 +211,32 @@ data from other structures.
- Write: true - Write: true
- Tags: - Tags:
- NetDevs[default]: - NetDevs[default]:
- Type: ethernet - Type:
- OnBoot: true - Manual: false
- Device: wwnet0 - Device: wwnet0
- Hwaddr: e6:92:39:49:7b:03 - Hwaddr: e6:92:39:49:7b:03
- Ipaddr: 192.168.3.21 - Ipaddr: 192.168.3.21
- Ipaddr6: - IpCIDR: 192.168.3.21/24
- IpCIDR: - Ipaddr6: <nil>
- Prefix: - Prefix: <nil>
- Netmask: 255.255.255.0 - Netmask: 255.255.255.0
- Gateway: 192.168.3.1 - Gateway: 192.168.3.1
- MTU: - MTU:
- Primary: true - Primary: true
- Tags: - Tags:
- NetDevs[secondary]: - NetDevs[secondary]:
- Type: ethernet - Type:
- OnBoot: true - Manual: false
- Device: wwnet1 - Device: wwnet1
- Hwaddr: 9a:77:29:73:14:f1 - Hwaddr: 9a:77:29:73:14:f1
- Ipaddr: 192.168.3.22 - Ipaddr: 192.168.3.22
- Ipaddr6: - IpCIDR: 192.168.3.22/24
- IpCIDR: - Ipaddr6: <nil>
- Prefix: - Prefix: <nil>
- Netmask: 255.255.255.0 - Netmask: 255.255.255.0
- Gateway: 192.168.3.1 - Gateway: 192.168.3.1
- MTU: - MTU:
- Primary: - Primary: false
- Tags: DNS1=8.8.8.8 DNS2=8.8.4.4 - Tags: DNS1=8.8.8.8 DNS2=8.8.4.4
- AllNodes[1]: - AllNodes[1]:
- Id: node2 - Id: node2
@@ -253,36 +244,36 @@ data from other structures.
- ClusterName: - ClusterName:
- ContainerName: - ContainerName:
- Ipxe: default - Ipxe: default
- RuntimeOverlay: hosts - RuntimeOverlay: [hosts ssh.authorized_keys syncuser]
- SystemOverlay: wwinit - SystemOverlay: [wwinit wwclient fstab hostname ssh.host_keys issue resolv udev.netname systemd.netname ifcfg NetworkManager debian.interfaces wicked ignition]
- Root: initramfs - Root: initramfs
- Discoverable: - Discoverable:
- Init: /sbin/init - Init: /sbin/init
- AssetKey: - AssetKey:
- Profiles: empty - Profiles: [default]
- Tags: - Tags:
- Kernel - Kernel
- Override: - Override:
- Args: quiet crashkernel=no vga=791 net.naming-scheme=v238 - Args: quiet crashkernel=no vga=791 net.naming-scheme=v238
- Ipmi: - Ipmi:
- Ipaddr: - Ipaddr: <nil>
- Netmask: - Netmask: <nil>
- Port: - Port:
- Gateway: - Gateway: <nil>
- UserName: - UserName:
- Password: - Password:
- Interface: - Interface:
- Write: - Write:
- Tags: - Tags:
- NetDevs[default]: - NetDevs[default]:
- Type: ethernet - Type:
- OnBoot: true - Manual: false
- Device: wwnet0 - Device: wwnet0
- Hwaddr: e6:92:39:49:7b:04 - Hwaddr: e6:92:39:49:7b:04
- Ipaddr: 192.168.3.23 - Ipaddr: 192.168.3.23
- Ipaddr6: - IpCIDR: 192.168.3.23/24
- IpCIDR: - Ipaddr6: <nil>
- Prefix: - Prefix: <nil>
- Netmask: 255.255.255.0 - Netmask: 255.255.255.0
- Gateway: 192.168.3.1 - Gateway: 192.168.3.1
- MTU: - MTU:

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -27,8 +27,6 @@ data from other structures.
- Discoverable: {{ .Discoverable }} - Discoverable: {{ .Discoverable }}
- Profiles: {{ range $index, $value := .Profiles }}{{ if $index }},{{ end }}{{ $value }}{{ end }} - Profiles: {{ range $index, $value := .Profiles }}{{ if $index }},{{ end }}{{ $value }}{{ end }}
- Tags: {{ range $key, $value := .Tags }}{{ $key }}={{ $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: - Kernel:
- Version: {{ .Kernel.Version }} - Version: {{ .Kernel.Version }}
- Override: {{ .Kernel.Override }} - Override: {{ .Kernel.Override }}
@@ -43,11 +41,10 @@ data from other structures.
- Interface: {{ .Ipmi.Interface }} - Interface: {{ .Ipmi.Interface }}
- Write: {{ .Ipmi.Write }} - Write: {{ .Ipmi.Write }}
- Tags: {{ range $key, $value := .Ipmi.Tags }}{{ $key }}={{ $value }} {{ end }} - Tags: {{ range $key, $value := .Ipmi.Tags }}{{ $key }}={{ $value }} {{ end }}
- TagsDel: {{ range $key, $value := .Ipmi.TagsDel }}{{ $key }}={{ $value }} {{ end }}
{{- range $index, $netdev := .NetDevs }} {{- range $index, $netdev := .NetDevs }}
- NetDevs[{{ $index }}]: - NetDevs[{{ $index }}]:
- Type: {{ $netdev.Type }} - Type: {{ $netdev.Type }}
- OnBoot: {{ $netdev.OnBoot }} - Manual: {{ $netdev.Manual }}
- Device: {{ $netdev.Device }} - Device: {{ $netdev.Device }}
- Hwaddr: {{ $netdev.Hwaddr }} - Hwaddr: {{ $netdev.Hwaddr }}
- Ipaddr: {{ $netdev.Ipaddr }} - Ipaddr: {{ $netdev.Ipaddr }}
@@ -57,9 +54,7 @@ data from other structures.
- Gateway: {{ $netdev.Gateway }} - Gateway: {{ $netdev.Gateway }}
- MTU: {{ $netdev.MTU }} - MTU: {{ $netdev.MTU }}
- Primary: {{ $netdev.Primary }} - Primary: {{ $netdev.Primary }}
- Default: {{ $netdev.Default }}
- Tags: {{ range $key, $value := $netdev.Tags }}{{ $key }}={{ $value }} {{ end }} - Tags: {{ range $key, $value := $netdev.Tags }}{{ $key }}={{ $value }} {{ end }}
- TagsDel: {{ range $key, $value := $netdev.TagsDel }}{{ $key }}={{ $value }} {{ end }}
{{- end }} {{- end }}
@@ -130,45 +125,46 @@ data from other structures.
{{ range $index, $node := .AllNodes -}} {{ range $index, $node := .AllNodes -}}
- AllNodes[{{ $index }}]: - AllNodes[{{ $index }}]:
- Id: {{ $node.Id.Get }} - Id: {{ $node.Id }}
- Comment: {{ $node.Comment.Get }} - Comment: {{ $node.Comment }}
- ClusterName: {{ $node.ClusterName.Get }} - ClusterName: {{ $node.ClusterName }}
- ContainerName: {{ $node.ContainerName.Get }} - ContainerName: {{ $node.ContainerName }}
- Ipxe: {{ $node.Ipxe.Get }} - Ipxe: {{ $node.Ipxe }}
- RuntimeOverlay: {{ $node.RuntimeOverlay.Get }} - RuntimeOverlay: {{ $node.RuntimeOverlay }}
- SystemOverlay: {{ $node.SystemOverlay.Get }} - SystemOverlay: {{ $node.SystemOverlay }}
- Root: {{ $node.Root.Get }} - Root: {{ $node.Root }}
- Discoverable: {{ $node.Discoverable.Get }} - Discoverable: {{ $node.Discoverable }}
- Init: {{ $node.Init.Get }} - Init: {{ $node.Init }}
- AssetKey: {{ $node.AssetKey.Get }} - AssetKey: {{ $node.AssetKey }}
- Profiles: {{ $node.Profiles.Get }} - Profiles: {{ $node.Profiles }}
- Tags: {{ range $key, $value := $node.Tags }}{{ $key }}={{ $value.Get }} {{ end }} - Tags: {{ range $key, $value := $node.Tags }}{{ $key }}={{ $value }} {{ end }}
- Kernel - Kernel
- Override: {{ $node.Kernel.Override.Get }} - Override: {{ $node.Kernel.Override }}
- Args: {{ $node.Kernel.Args.Get }} - Args: {{ $node.Kernel.Args }}
- Ipmi: - Ipmi:
- Ipaddr: {{ $node.Ipmi.Ipaddr.Get }} - Ipaddr: {{ $node.Ipmi.Ipaddr }}
- Netmask: {{ $node.Ipmi.Netmask.Get }} - Netmask: {{ $node.Ipmi.Netmask }}
- Port: {{ $node.Ipmi.Port.Get }} - Port: {{ $node.Ipmi.Port }}
- Gateway: {{ $node.Ipmi.Gateway.Get }} - Gateway: {{ $node.Ipmi.Gateway }}
- UserName: {{ $node.Ipmi.UserName.Get }} - UserName: {{ $node.Ipmi.UserName }}
- Password: {{ $node.Ipmi.Password.Get }} - Password: {{ $node.Ipmi.Password }}
- Interface: {{ $node.Ipmi.Interface.Get }} - Interface: {{ $node.Ipmi.Interface }}
- Write: {{ $node.Ipmi.Write.Get }} - Write: {{ $node.Ipmi.Write }}
- Tags: {{ range $key, $value := $node.Ipmi.Tags }}{{ $key }}={{ $value.Get }} {{ end }} - Tags: {{ range $key, $value := $node.Ipmi.Tags }}{{ $key }}={{ $value }} {{ end }}
{{- range $index, $netdev := $node.NetDevs }} {{- range $index, $netdev := $node.NetDevs }}
- NetDevs[{{ $index }}]: - NetDevs[{{ $index }}]:
- Type: {{ $netdev.Type.Get }} - Type: {{ $netdev.Type }}
- OnBoot: {{ $netdev.OnBoot.Get }} - Manual: {{ $netdev.Manual }}
- Device: {{ $netdev.Device.Get }} - Device: {{ $netdev.Device }}
- Hwaddr: {{ $netdev.Hwaddr.Get }} - Hwaddr: {{ $netdev.Hwaddr }}
- Ipaddr: {{ $netdev.Ipaddr.Get }} - Ipaddr: {{ $netdev.Ipaddr }}
- Ipaddr6: {{ $netdev.Ipaddr6.Get }} - IpCIDR: {{ $netdev.IpCIDR }}
- Prefix: {{ $netdev.Prefix.Get }} - Ipaddr6: {{ $netdev.Ipaddr6 }}
- Netmask: {{ $netdev.Netmask.Get }} - Prefix: {{ $netdev.Prefix }}
- Gateway: {{ $netdev.Gateway.Get }} - Netmask: {{ $netdev.Netmask }}
- MTU: {{ $netdev.MTU.Get }} - Gateway: {{ $netdev.Gateway }}
- Primary: {{ $netdev.Primary.Get }} - MTU: {{ $netdev.MTU }}
- Tags: {{ range $key, $value := $netdev.Tags }}{{ $key }}={{ $value.Get }} {{ end }} - Primary: {{ $netdev.Primary }}
- Tags: {{ range $key, $value := $netdev.Tags }}{{ $key }}={{ $value }} {{ end }}
{{- end }} {{- end }}
{{ end }} {{ end }}

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -5,10 +5,10 @@
# Warewulf Server # Warewulf Server
{{$.Ipaddr}} {{$.BuildHost}} warewulf {{$.Ipaddr}} {{$.BuildHost}} warewulf
{{- range $node := $.AllNodes}} {{/* for each node */}} {{- range $node := $.AllNodes}}{{/* for each node */}}
# Entry for {{$node.Id}} # Entry for {{$node.Id}}
{{- range $devname, $netdev := $node.NetDevs}} {{/* for each network device on the node */}} {{- range $devname, $netdev := $node.NetDevs}}{{/* for each network device on the node */}}
{{- if $netdev.Ipaddr}} {{/* if we have an ip address on this network device */}} {{- if $netdev.Ipaddr}}{{/* if we have an ip address on this network device */}}
{{- /* emit the node name as hostname if this is the primary */}} {{- /* emit the node name as hostname if this is the primary */}}
{{$netdev.Ipaddr}} {{if $netdev.Primary}}{{$node.Id}}{{end}} {{$node.Id}}-{{$devname}} {{if $netdev.Device}}{{$node.Id}}-{{$netdev.Device}}{{end}} {{$netdev.Ipaddr}} {{if $netdev.Primary}}{{$node.Id}}{{end}} {{$node.Id}}-{{$devname}} {{if $netdev.Device}}{{$node.Id}}-{{$netdev.Device}}{{end}}
{{- end }}{{/* if ip */}} {{- end }}{{/* if ip */}}

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -5,10 +5,10 @@
{{$.Ipaddr}} {{$.BuildHost}} warewulf {{$.Ipaddr}} {{$.BuildHost}} warewulf
{{- range $node := $.AllNodes }} {{- range $node := $.AllNodes }}
# Entry for {{$node.Id.Get}} # Entry for {{$node.Id}}
{{- range $devname, $netdev := $node.NetDevs }} {{- range $devname, $netdev := $node.NetDevs }}
{{- if $netdev.Ipaddr.Defined }} {{- if $netdev.Ipaddr}}
{{$netdev.Ipaddr.Get}} {{if $netdev.Primary.GetB}}{{$node.Id.Get}}{{end}} {{$node.Id.Get}}-{{$devname}} {{if $netdev.Device.Defined}}{{$node.Id.Get}}-{{$netdev.Device.Get}}{{end}} {{$netdev.Ipaddr}} {{if $netdev.Primary}}{{$node.Id}}{{end}} {{$node.Id}}-{{$devname}} {{if $netdev.Device}}{{$node.Id}}-{{$netdev.Device}}{{end}}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@@ -66,7 +66,6 @@ IPADDR=192.168.3.21
NETMASK=255.255.255.0 NETMASK=255.255.255.0
GATEWAY=192.168.3.1 GATEWAY=192.168.3.1
HWADDR=e6:92:39:49:7b:03 HWADDR=e6:92:39:49:7b:03
TYPE=ethernet
ONBOOT=true ONBOOT=true
IPV6INIT=yes IPV6INIT=yes
IPV6_AUTOCONF=yes IPV6_AUTOCONF=yes
@@ -85,7 +84,6 @@ IPADDR=192.168.3.22
NETMASK=255.255.255.0 NETMASK=255.255.255.0
GATEWAY=192.168.3.1 GATEWAY=192.168.3.1
HWADDR=9a:77:29:73:14:f1 HWADDR=9a:77:29:73:14:f1
TYPE=ethernet
ONBOOT=true ONBOOT=true
IPV6INIT=yes IPV6INIT=yes
IPV6_AUTOCONF=yes IPV6_AUTOCONF=yes

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -2,7 +2,11 @@
{{- $filename := print "ifcfg-" $devname ".conf" }} {{- $filename := print "ifcfg-" $devname ".conf" }}
{{- file $filename }} {{- file $filename }}
# This file is autogenerated by warewulf # This file is autogenerated by warewulf
{{ if $netdev.Type -}}
TYPE={{ $netdev.Type }} TYPE={{ $netdev.Type }}
{{ else -}}
TYPE=ethernet
{{ end -}}
DEVICE={{ $netdev.Device }} DEVICE={{ $netdev.Device }}
NAME={{ $devname }} NAME={{ $devname }}
{{ if $netdev.MTU -}} {{ if $netdev.MTU -}}
@@ -18,11 +22,10 @@ GATEWAY={{ $netdev.Gateway }}
{{ if $netdev.Hwaddr -}} {{ if $netdev.Hwaddr -}}
HWADDR={{ $netdev.Hwaddr }} HWADDR={{ $netdev.Hwaddr }}
{{ end -}} {{ end -}}
{{ if $netdev.Type -}} {{ if $netdev.Manual -}}
TYPE={{ $netdev.Type }} ONBOOT=false
{{ end -}} {{ else -}}
{{ if $netdev.OnBoot -}} ONBOOT=true
ONBOOT={{ $netdev.OnBoot }}
{{ end -}} {{ end -}}
IPV6INIT=yes IPV6INIT=yes
IPV6_AUTOCONF=yes IPV6_AUTOCONF=yes

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -56,9 +56,9 @@ Kernelargs: quiet crashkernel=no vga=791 net.naming-scheme=v238
Network: Network:
default: wwnet0 default: wwnet0
default: 192.168.3.21/24 default: \4{wwnet0}
default: e6:92:39:49:7b:03 default: e6:92:39:49:7b:03
secondary: wwnet1 secondary: wwnet1
secondary: 192.168.3.22/24 secondary: \4{wwnet1}
secondary: 9a:77:29:73:14:f1 secondary: 9a:77:29:73:14:f1
` `

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -6,15 +6,17 @@
This file is autogenerated by warewulf This file is autogenerated by warewulf
--> -->
<interface origin="static generated warewulf config"> <interface origin="static generated warewulf config">
<name>{{$netdev.Device.Get}}</name> <name>{{$netdev.Device}}</name>
{{ if $netdev.Type.Get -}} {{ if $netdev.Type -}}
<link-type>{{ $netdev.Type.Get }}</link-type> <link-type>{{ $netdev.Type }}</link-type>
{{ else -}}
<link-type>ethernet</link-type>
{{ end -}} {{ end -}}
{{ if $netdev.MTU.Get -}} {{ if $netdev.MTU -}}
<mtu>{{ $netdev.MTU.Get }}</mtu> <mtu>{{ $netdev.MTU }}</mtu>
{{ end -}} {{ end -}}
<control> <control>
<mode>{{ if $netdev.OnBoot.GetB -}}boot{{ else }}manual{{end}}</mode> <mode>{{ if $netdev.Manual -}}manual{{ else }}boot{{end}}</mode>
</control> </control>
<firewall/> <firewall/>
<link/> <link/>
@@ -26,10 +28,10 @@ This file is autogenerated by warewulf
<address> <address>
<local>{{$netdev.IpCIDR}}</local> <local>{{$netdev.IpCIDR}}</local>
</address> </address>
{{ if $netdev.Gateway.Get -}} {{ if $netdev.Gateway -}}
<route> <route>
<nexthop> <nexthop>
<gateway>{{$netdev.Gateway.Get}}</gateway> <gateway>{{$netdev.Gateway}}</gateway>
</nexthop> </nexthop>
</route> </route>
{{ end -}} {{ end -}}
@@ -39,10 +41,10 @@ This file is autogenerated by warewulf
<privacy>prefer-public</privacy> <privacy>prefer-public</privacy>
<accept-redirects>false</accept-redirects> <accept-redirects>false</accept-redirects>
</ipv6> </ipv6>
{{ if $netdev.Ipaddr6.Get -}} {{ if $netdev.Ipaddr6 -}}
<ipv6:static> <ipv6:static>
<address> <address>
<local>{{ $netdev.Ipaddr6.Get }}</local> <local>{{ $netdev.Ipaddr6 }}</local>
</address> </address>
</ipv6:static> </ipv6:static>
{{ end -}} {{ end -}}

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45 WW_INTERNAL: 45
nodeprofiles: nodeprofiles:
empty: {} default:
runtime overlay:
- hosts
- ssh.authorized_keys
- syncuser
system overlay:
- wwinit
- wwclient
- fstab
- hostname
- ssh.host_keys
- issue
- resolv
- udev.netname
- systemd.netname
- ifcfg
- NetworkManager
- debian.interfaces
- wicked
- ignition
kernel:
args: quiet crashkernel=no vga=791 net.naming-scheme=v238
init: /sbin/init
root: initramfs
ipxe template: default
nodes: nodes:
node1: node1:
profiles: profiles:
- empty - default
container name: rockylinux-9 container name: rockylinux-9
network devices: network devices:
default: default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21 ipaddr: 192.168.4.21
netmask: 255.255.255.0 netmask: 255.255.255.0
gateway: 192.168.4.1 gateway: 192.168.4.1
write: "true" write: true
disks: disks:
/dev/vda: /dev/vda:
wipe_table: "true" wipe_table: true
partitions: partitions:
scratch: scratch:
should_exist: "true" should_exist: true
swap: swap:
number: "1" number: "1"
size_mib: "1024" size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch: /dev/disk/by-partlabel/scratch:
format: btrfs format: btrfs
path: /scratch path: /scratch
wipe_filesystem: "true" wipe_filesystem: true
/dev/disk/by-partlabel/swap: /dev/disk/by-partlabel/swap:
format: swap format: swap
path: swap path: swap
node2: node2:
profiles: profiles:
- empty - default
network devices: network devices:
default: default:
device: wwnet0 device: wwnet0