|  | load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library", "go_test") | 
|  | load("//metropolis/node/build/fwprune:def.bzl", "fsspec_linux_firmware") | 
|  | load("//metropolis/node/build:def.bzl", "node_initramfs") | 
|  |  | 
|  | go_library( | 
|  | name = "agent_lib", | 
|  | srcs = [ | 
|  | "agent.go", | 
|  | "hwreport.go", | 
|  | "install.go", | 
|  | "main.go", | 
|  | ], | 
|  | embedsrcs = [ | 
|  | "//metropolis/node/core/abloader",  #keep | 
|  | ], | 
|  | importpath = "source.monogon.dev/cloud/agent", | 
|  | visibility = ["//visibility:private"], | 
|  | deps = [ | 
|  | "//cloud/agent/api", | 
|  | "//cloud/bmaas/server/api", | 
|  | "//metropolis/node/build/mkimage/osimage", | 
|  | "//metropolis/node/core/devmgr", | 
|  | "//metropolis/node/core/network", | 
|  | "//metropolis/pkg/blockdev", | 
|  | "//metropolis/pkg/bootparam", | 
|  | "//metropolis/pkg/efivarfs", | 
|  | "//metropolis/pkg/logtree", | 
|  | "//metropolis/pkg/nvme", | 
|  | "//metropolis/pkg/pki", | 
|  | "//metropolis/pkg/scsi", | 
|  | "//metropolis/pkg/smbios", | 
|  | "//metropolis/pkg/supervisor", | 
|  | "//net/proto", | 
|  | "@com_github_cenkalti_backoff_v4//:backoff", | 
|  | "@com_github_mdlayher_ethtool//:ethtool", | 
|  | "@com_github_vishvananda_netlink//:netlink", | 
|  | "@org_golang_google_grpc//:go_default_library", | 
|  | "@org_golang_google_grpc//credentials", | 
|  | "@org_golang_google_protobuf//proto", | 
|  | "@org_golang_x_sys//unix", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | go_binary( | 
|  | name = "agent", | 
|  | embed = [":agent_lib"], | 
|  | visibility = ["//visibility:public"], | 
|  | ) | 
|  |  | 
|  | go_test( | 
|  | name = "agent_test", | 
|  | srcs = ["hwreport_test.go"], | 
|  | data = glob(["testdata/**"]), | 
|  | embed = [":agent_lib"], | 
|  | deps = [ | 
|  | "//cloud/agent/api", | 
|  | "@com_github_stretchr_testify//assert", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | fsspec_linux_firmware( | 
|  | name = "firmware", | 
|  | firmware_files = ["@linux-firmware//:all_files"], | 
|  | kernel = "//third_party/linux", | 
|  | metadata = "@linux-firmware//:metadata", | 
|  | ) | 
|  |  | 
|  | node_initramfs( | 
|  | name = "initramfs", | 
|  | files = { | 
|  | ":agent": "/init", | 
|  | "@com_github_coredns_coredns//:coredns": "/kubernetes/bin/coredns", | 
|  | "//metropolis/node/core/network/dns:resolv.conf": "/etc/resolv.conf", | 
|  | "@cacerts//file": "/etc/ssl/cert.pem", | 
|  | }, | 
|  | fsspecs = [ | 
|  | "//metropolis/node/build:earlydev.fsspec", | 
|  | ":firmware", | 
|  | ], | 
|  | visibility = ["//cloud:__subpackages__"], | 
|  | ) |