blob: 63747a92cd044b5f3914350098d711b010fd8886 [file] [log] [blame]
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +01001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +01002load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
Tim Windelschmidtc2290c22024-08-15 19:56:00 +02003load("//osbase/build:def.bzl", "node_initramfs")
4load("//osbase/build/fwprune:def.bzl", "fsspec_linux_firmware")
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +01005
6go_library(
7 name = "takeover_lib",
8 srcs = ["takeover.go"],
9 embedsrcs = [
10 "//third_party/linux", #keep
Tim Windelschmidt65bf3112024-04-08 21:32:14 +020011 "//third_party:ucode", #keep
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010012 ":initramfs", #keep
13 ],
14 importpath = "source.monogon.dev/cloud/agent/takeover",
15 visibility = ["//visibility:private"],
16 deps = [
17 "//cloud/agent/api",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020018 "//osbase/bootparam",
19 "//osbase/kexec",
Tim Windelschmidt10ef8f92024-08-13 15:35:10 +020020 "//osbase/net/dump",
21 "//osbase/net/proto",
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010022 "@com_github_cavaliergopher_cpio//:cpio",
23 "@com_github_klauspost_compress//zstd",
24 "@org_golang_google_protobuf//proto",
25 "@org_golang_x_sys//unix",
26 ],
27)
28
29node_initramfs(
30 name = "initramfs",
31 files = {
32 "//cloud/agent:agent": "/init",
Jan Schär91bf1c82024-07-29 17:31:33 +020033 "//osbase/net/dns:resolv.conf": "/etc/resolv.conf",
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010034 "@cacerts//file": "/etc/ssl/cert.pem",
35 },
36 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020037 "//osbase/build:earlydev.fsspec",
Tim Windelschmidt65bf3112024-04-08 21:32:14 +020038 "//third_party:firmware",
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010039 ],
40 visibility = ["//cloud/agent:__subpackages__"],
41)
42
43go_binary(
44 name = "takeover",
45 embed = [":takeover_lib"],
46 visibility = ["//visibility:public"],
47)
48
Tim Windelschmidt79ffbbe2024-02-22 19:15:51 +010049# Used by container_images, forces a static build of the test_agent.
50static_binary_tarball(
51 name = "takeover_layer",
52 executable = ":takeover",
53 visibility = ["//visibility:public"],
54)