blob: 96e3a38b790072b2030062f0db89ef3ca22e5225 [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 = [
Lorenz Brunaadeb792023-03-27 15:53:56 +02008 "agent.go",
Lorenz Brun62948542023-01-10 13:28:44 +00009 "hwreport.go",
Lorenz Brunaadeb792023-03-27 15:53:56 +020010 "install.go",
Lorenz Brun62948542023-01-10 13:28:44 +000011 "main.go",
12 ],
Lorenz Brun54a5a052023-10-02 16:40:11 +020013 embedsrcs = [
14 "//metropolis/node/core/abloader", #keep
15 ],
Lorenz Brun62948542023-01-10 13:28:44 +000016 importpath = "source.monogon.dev/cloud/agent",
17 visibility = ["//visibility:private"],
18 deps = [
19 "//cloud/agent/api",
Lorenz Brunaadeb792023-03-27 15:53:56 +020020 "//cloud/bmaas/server/api",
21 "//metropolis/node/build/mkimage/osimage",
Lorenz Brun6c454342023-06-01 12:23:38 +020022 "//metropolis/node/core/devmgr",
Lorenz Brunaadeb792023-03-27 15:53:56 +020023 "//metropolis/node/core/network",
Lorenz Brunad131882023-06-28 16:42:20 +020024 "//metropolis/pkg/blockdev",
Lorenz Brun5d503b32023-04-11 13:20:23 +020025 "//metropolis/pkg/bootparam",
Lorenz Brunaadeb792023-03-27 15:53:56 +020026 "//metropolis/pkg/efivarfs",
27 "//metropolis/pkg/logtree",
Lorenz Brun62948542023-01-10 13:28:44 +000028 "//metropolis/pkg/nvme",
Lorenz Brunaadeb792023-03-27 15:53:56 +020029 "//metropolis/pkg/pki",
Lorenz Brun62948542023-01-10 13:28:44 +000030 "//metropolis/pkg/scsi",
31 "//metropolis/pkg/smbios",
Lorenz Brunaadeb792023-03-27 15:53:56 +020032 "//metropolis/pkg/supervisor",
Tim Windelschmidtfac48742023-04-24 19:04:55 +020033 "//net/proto",
Lorenz Brunaadeb792023-03-27 15:53:56 +020034 "@com_github_cenkalti_backoff_v4//:backoff",
Lorenz Brun62948542023-01-10 13:28:44 +000035 "@com_github_mdlayher_ethtool//:ethtool",
36 "@com_github_vishvananda_netlink//:netlink",
Lorenz Brunaadeb792023-03-27 15:53:56 +020037 "@org_golang_google_grpc//:go_default_library",
38 "@org_golang_google_grpc//credentials",
39 "@org_golang_google_protobuf//proto",
Lorenz Brun62948542023-01-10 13:28:44 +000040 "@org_golang_x_sys//unix",
41 ],
42)
43
44go_binary(
45 name = "agent",
46 embed = [":agent_lib"],
47 visibility = ["//visibility:public"],
48)
49
50go_test(
51 name = "agent_test",
52 srcs = ["hwreport_test.go"],
53 data = glob(["testdata/**"]),
54 embed = [":agent_lib"],
55 deps = [
56 "//cloud/agent/api",
57 "@com_github_stretchr_testify//assert",
58 ],
59)
Lorenz Brun6da0f612023-02-21 20:44:28 +010060
61fsspec_linux_firmware(
62 name = "firmware",
63 firmware_files = ["@linux-firmware//:all_files"],
64 kernel = "//third_party/linux",
65 metadata = "@linux-firmware//:metadata",
66)
67
68node_initramfs(
69 name = "initramfs",
70 files = {
71 ":agent": "/init",
Lorenz Brunaadeb792023-03-27 15:53:56 +020072 "@com_github_coredns_coredns//:coredns": "/kubernetes/bin/coredns",
73 "//metropolis/node/core/network/dns:resolv.conf": "/etc/resolv.conf",
Lorenz Brun6da0f612023-02-21 20:44:28 +010074 "@cacerts//file": "/etc/ssl/cert.pem",
75 },
76 fsspecs = [
77 "//metropolis/node/build:earlydev.fsspec",
78 ":firmware",
79 ],
80 visibility = ["//cloud:__subpackages__"],
81)