metis/testing/config_test.go

59 lines
1.6 KiB
Go
Raw Normal View History

package testing_test
import (
"testing"
"metis/pkg/config"
"metis/pkg/inventory"
)
func TestConfigBuildLabelsAndTaints(t *testing.T) {
inv := inventory.Inventory{
Classes: []inventory.NodeClass{{
Name: "c1",
Arch: "arm64",
OS: "linux",
Image: "file:///tmp/base.img",
DefaultLabels: map[string]string{"a": "1"},
DefaultTaints: []string{"t1"},
}},
Nodes: []inventory.NodeSpec{{
Name: "n1",
Class: "c1",
Hostname: "n1",
IP: "1.1.1.1",
K3sRole: "agent",
Labels: map[string]string{"b": "2"},
Taints: []string{"t2"},
LonghornDisks: []inventory.LonghornDisk{{Mountpoint: "/mnt/d1", UUID: "uuid-1", FS: "ext4"}},
SSHUser: "ubuntu",
SSHAuthorized: []string{"key"},
}},
}
cfg, err := config.Build(&inv, "n1")
if err != nil {
t.Fatalf("Build: %v", err)
}
if got, want := cfg.Labels["a"], "1"; got != want {
t.Fatalf("label a = %q, want %q", got, want)
}
if got, want := cfg.Labels["b"], "2"; got != want {
t.Fatalf("label b = %q, want %q", got, want)
}
if len(cfg.Taints) != 2 || cfg.Taints[0] != "t1" || cfg.Taints[1] != "t2" {
t.Fatalf("taints = %#v", cfg.Taints)
}
if len(cfg.Fstab) != 1 {
t.Fatalf("fstab entries = %d, want 1", len(cfg.Fstab))
}
if got, want := cfg.Fstab[0].Mountpoint, "/mnt/d1"; got != want {
t.Fatalf("fstab mountpoint = %q, want %q", got, want)
}
if got, want := cfg.Fstab[0].UUID, "uuid-1"; got != want {
t.Fatalf("fstab uuid = %q, want %q", got, want)
}
if got, want := cfg.K3s.Role, "agent"; got != want {
t.Fatalf("k3s role = %q, want %q", got, want)
}
}