blob: 775dd1211169235dd3a271427f5eac136e43f85a [file] [log] [blame]
Lorenz Brun62948542023-01-10 13:28:44 +00001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test")
Lorenz Brun6da0f612023-02-21 20:44:28 +01002load("//metropolis/node/build/fwprune:def.bzl", "fsspec_linux_firmware")
3load("//metropolis/node/build:def.bzl", "node_initramfs")
Lorenz Brun62948542023-01-10 13:28:44 +00004
5go_library(
6 name = "agent_lib",
7 srcs = [
8 "hwreport.go",
9 "main.go",
10 ],
11 importpath = "source.monogon.dev/cloud/agent",
12 visibility = ["//visibility:private"],
13 deps = [
14 "//cloud/agent/api",
15 "//metropolis/pkg/nvme",
16 "//metropolis/pkg/scsi",
17 "//metropolis/pkg/smbios",
18 "@com_github_mdlayher_ethtool//:ethtool",
19 "@com_github_vishvananda_netlink//:netlink",
20 "@org_golang_google_protobuf//encoding/prototext",
21 "@org_golang_x_sys//unix",
22 ],
23)
24
25go_binary(
26 name = "agent",
27 embed = [":agent_lib"],
28 visibility = ["//visibility:public"],
29)
30
31go_test(
32 name = "agent_test",
33 srcs = ["hwreport_test.go"],
34 data = glob(["testdata/**"]),
35 embed = [":agent_lib"],
36 deps = [
37 "//cloud/agent/api",
38 "@com_github_stretchr_testify//assert",
39 ],
40)
Lorenz Brun6da0f612023-02-21 20:44:28 +010041
42fsspec_linux_firmware(
43 name = "firmware",
44 firmware_files = ["@linux-firmware//:all_files"],
45 kernel = "//third_party/linux",
46 metadata = "@linux-firmware//:metadata",
47)
48
49node_initramfs(
50 name = "initramfs",
51 files = {
52 ":agent": "/init",
53 "@cacerts//file": "/etc/ssl/cert.pem",
54 },
55 fsspecs = [
56 "//metropolis/node/build:earlydev.fsspec",
57 ":firmware",
58 ],
59 visibility = ["//cloud:__subpackages__"],
60)