metis/pkg/config/coverage_more_test.go

56 lines
1.7 KiB
Go
Raw Permalink Normal View History

package config
import (
"testing"
"metis/pkg/inventory"
)
func TestBuildBranches(t *testing.T) {
inv := &inventory.Inventory{
Classes: []inventory.NodeClass{{
Name: "rpi4",
Arch: "arm64",
OS: "armbian",
Image: "file:///tmp/base.img",
K3sVersion: "v1.31.5+k3s1",
DefaultLabels: map[string]string{"a": "class", "b": "class"},
DefaultTaints: []string{"class-taint"},
}},
Nodes: []inventory.NodeSpec{{
Name: "titan-15",
Class: "rpi4",
Hostname: "titan-15",
IP: "192.168.22.43",
K3sRole: "agent",
K3sVersion: "v1.31.5+k3s2",
K3sURL: "https://192.168.22.7:6443",
K3sToken: "token",
Labels: map[string]string{"c": "node"},
Taints: []string{"node-taint"},
SSHUser: "atlas",
SSHAuthorized: []string{"ssh-ed25519 AAA"},
LonghornDisks: []inventory.LonghornDisk{{UUID: "u1", Mountpoint: "/var/lib/longhorn"}},
USBScratch: &inventory.USBScratchDisk{Mountpoint: "/mnt/scratch", UUID: "usb-1", BindTargets: []string{"/var/lib/rancher"}},
}},
}
cfg, err := Build(inv, "titan-15")
if err != nil {
t.Fatalf("Build: %v", err)
}
if cfg.K3s.Version != "v1.31.5+k3s2" || len(cfg.Fstab) != 3 || cfg.Fstab[0].FS != "ext4" {
t.Fatalf("unexpected config: %#v", cfg)
}
if cfg.USBScratch == nil || cfg.USBScratch.Mountpoint != "/mnt/scratch" {
t.Fatalf("expected usb scratch config: %#v", cfg.USBScratch)
}
if _, err := Build(&inventory.Inventory{}, "missing"); err == nil {
t.Fatal("expected Build to fail for missing node")
}
inv.Nodes[0].Hostname = ""
if _, err := Build(inv, "titan-15"); err == nil {
t.Fatal("expected Build to fail without hostname")
}
}