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

View File

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

View File

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

View File

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

View File

@@ -18,14 +18,16 @@ import (
func Test_List(t *testing.T) {
tests := []struct {
name string
args []string
stdout string
inDb string
name string
args []string
wantErr bool
stdout string
inDb string
}{
{
name: "single node list",
args: []string{},
name: "single node list",
args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [default]
`,
@@ -39,8 +41,9 @@ nodes:
`,
},
{
name: "multiple nodes list",
args: []string{},
name: "multiple nodes list",
args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [default]
n02 [default]
@@ -58,8 +61,9 @@ nodes:
`,
},
{
name: "node list returns multiple nodes",
args: []string{"n01,n02"},
name: "node list returns multiple nodes",
args: []string{"n01,n02"},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [default]
n02 [default]
@@ -77,8 +81,9 @@ nodes:
`,
},
{
name: "node list returns multiple nodes (case 2)",
args: []string{"n01,n03"},
name: "node list returns multiple nodes (case 2)",
args: []string{"n01,n03"},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [default]
n03 [default]
@@ -105,8 +110,9 @@ nodes:
`,
},
{
name: "node list returns one node",
args: []string{"n01,"},
name: "node list returns one node",
args: []string{"n01,"},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [default]
`,
@@ -123,8 +129,9 @@ nodes:
`,
},
{
name: "node list profile with network",
args: []string{},
name: "node list profile with network",
args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [default] default
`,
@@ -140,18 +147,12 @@ nodes:
- default
`},
{
name: "node list profile with comment",
args: []string{"-a"},
name: "node list profile with comment",
args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
n01 Comment default profilecomment
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 -- default
n01 Profiles default
`,
inDb: `WW_INTERNAL: 45
nodeprofiles:
@@ -163,18 +164,12 @@ nodes:
- default
`},
{
name: "node list profile with comment superseded",
args: []string{"-a"},
name: "node list profile with comment superseded",
args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
n01 Comment SUPERSEDED nodecomment
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 -- default
n01 Profiles default
`,
inDb: `WW_INTERNAL: 45
nodeprofiles:
@@ -187,8 +182,9 @@ nodes:
- default
`},
{
name: "node list profile with ipmi user",
args: []string{"-i"},
name: "node list profile with ipmi user",
args: []string{"-i"},
wantErr: false,
stdout: `NODE IPMIIPADDR IPMIPORT IPMIUSERNAME IPMIINTERFACE
n01 <nil> admin
`,
@@ -203,8 +199,9 @@ nodes:
- default
`},
{
name: "node list profile with ipmi user superseded",
args: []string{"-i"},
name: "node list profile with ipmi user superseded",
args: []string{"-i"},
wantErr: false,
stdout: `NODE IPMIIPADDR IPMIPORT IPMIUSERNAME IPMIINTERFACE
n01 <nil> user
`,
@@ -231,8 +228,9 @@ nodes:
- p1
- p2
`,
name: "multiple profiles list",
args: []string{},
name: "multiple profiles list",
args: []string{},
wantErr: false,
stdout: ` NODE NAME PROFILES NETWORK
n01 [p1 p2]
`},
@@ -247,17 +245,11 @@ nodes:
- p1
- p2
`,
name: "multiple profiles list all",
args: []string{"-a"},
name: "multiple profiles list all",
args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
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
n01 Profiles p1,p2
`},
{
inDb: `WW_INTERNAL: 45
@@ -271,10 +263,11 @@ nodes:
profiles:
- p1
`,
name: "multiple overlays list",
args: []string{"-l"},
name: "multiple overlays list",
args: []string{"-l"},
wantErr: false,
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
@@ -293,10 +286,11 @@ nodes:
- nop1
- ~rop1
`,
name: "multiple overlays list",
args: []string{"-l"},
name: "multiple overlays list",
args: []string{"-l"},
wantErr: false,
stdout: `NODE NAME KERNEL OVERRIDE CONTAINER OVERLAYS (S/R)
n01 -- -- sop1/rop2,nop1 ~{rop1}
n01 sop1/nop1,~rop1,rop1,rop2
`},
{
inDb: `WW_INTERNAL: 45
@@ -315,17 +309,11 @@ nodes:
- nop1
- ~rop1
`,
name: "multiple overlays list all",
args: []string{"-a"},
name: "multiple overlays list all",
args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
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
n01 Profiles p1
`},
{
inDb: `WW_INTERNAL: 45
@@ -341,17 +329,12 @@ nodes:
runtime overlay:
- nop1
`,
name: "multiple overlays list all",
args: []string{"-a"},
name: "multiple overlays list all",
args: []string{"-a"},
wantErr: false,
stdout: `NODE FIELD PROFILE VALUE
n01 Id -- n01
n01 Ipxe -- (default)
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
n01 Profiles p1
n01 RuntimeOverlay p1+nop1,rop1,rop2
`},
}
@@ -477,36 +460,15 @@ nodes:
baseCmd.SetArgs(tt.args)
baseCmd.SetOut(buf)
baseCmd.SetErr(buf)
wwlog.SetLogWriter(buf)
err := baseCmd.Execute()
assert.NoError(t, err)
for _, expected_output := range tt.output {
assert.Equal(t, expected_output, buf.String())
err = baseCmd.Execute()
if tt.wantErr {
assert.Error(t, err)
} else {
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"
"syscall"
"github.com/pkg/errors"
"github.com/spf13/cobra"
warewulfconf "github.com/warewulf/warewulf/internal/pkg/config"
"github.com/warewulf/warewulf/internal/pkg/hostlist"
@@ -20,12 +19,12 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
controller := warewulfconf.Get()
nodeDB, err := node.New()
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()
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 {

View File

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

View File

@@ -79,7 +79,7 @@ type KernelConf struct {
type NetDevs struct {
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"`
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"`
@@ -88,8 +88,8 @@ type NetDevs struct {
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"`
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"`
primary bool
}
/*

View File

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

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

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

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -5,10 +5,10 @@
# Warewulf Server
{{$.Ipaddr}} {{$.BuildHost}} warewulf
{{- range $node := $.AllNodes}} {{/* for each node */}}
{{- range $node := $.AllNodes}}{{/* for each node */}}
# Entry for {{$node.Id}}
{{- 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 */}}
{{- 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 */}}
{{- /* 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}}
{{- end }}{{/* if ip */}}

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -5,10 +5,10 @@
{{$.Ipaddr}} {{$.BuildHost}} warewulf
{{- range $node := $.AllNodes }}
# Entry for {{$node.Id.Get}}
# Entry for {{$node.Id}}
{{- range $devname, $netdev := $node.NetDevs }}
{{- if $netdev.Ipaddr.Defined }}
{{$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}}
{{- if $netdev.Ipaddr}}
{{$netdev.Ipaddr}} {{if $netdev.Primary}}{{$node.Id}}{{end}} {{$node.Id}}-{{$devname}} {{if $netdev.Device}}{{$node.Id}}-{{$netdev.Device}}{{end}}
{{- end }}
{{- end }}
{{- end }}

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

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

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0

View File

@@ -1,10 +1,34 @@
WW_INTERNAL: 45
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:
node1:
profiles:
- empty
- default
container name: rockylinux-9
network devices:
default:
@@ -28,13 +52,13 @@ nodes:
ipaddr: 192.168.4.21
netmask: 255.255.255.0
gateway: 192.168.4.1
write: "true"
write: true
disks:
/dev/vda:
wipe_table: "true"
wipe_table: true
partitions:
scratch:
should_exist: "true"
should_exist: true
swap:
number: "1"
size_mib: "1024"
@@ -42,13 +66,13 @@ nodes:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"
wipe_filesystem: true
/dev/disk/by-partlabel/swap:
format: swap
path: swap
node2:
profiles:
- empty
- default
network devices:
default:
device: wwnet0