blob: a884f6b9655e4808a340ad4302955d3bd9765bef [file] [log] [blame]
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("//build/static_binary_tarball:def.bzl", "static_binary_tarball")
load("//osbase/build:def.bzl", "build_static_target")
load("//osbase/build/genproductinfo:defs.bzl", "product_info")
load("//osbase/build/mkcpio:def.bzl", "node_initramfs")
go_library(
name = "takeover_lib",
srcs = ["takeover.go"],
embedsrcs = [
"//third_party/linux", #keep
"//third_party:ucode", #keep
":initramfs", #keep
],
importpath = "source.monogon.dev/cloud/agent/takeover",
visibility = ["//visibility:private"],
deps = [
"//cloud/agent/api",
"//osbase/bootparam",
"//osbase/kexec",
"//osbase/net/dump",
"//osbase/net/proto",
"@com_github_cavaliergopher_cpio//:cpio",
"@com_github_klauspost_compress//zstd",
"@org_golang_google_protobuf//proto",
"@org_golang_x_sys//unix",
],
)
go_binary(
name = "takeover_bin",
embed = [":takeover_lib"],
visibility = ["//visibility:private"],
)
# Used by e2e tests, forces a static build
build_static_target(
name = "takeover",
dep = ":takeover_bin",
visibility = ["//visibility:public"],
)
# Used by container_images, forces a static build
static_binary_tarball(
name = "takeover_layer",
executable = ":takeover_bin",
visibility = ["//visibility:public"],
)
product_info(
name = "product_info",
os_id = "monogon-cloud-agent",
os_name = "Monogon Cloud Agent",
out_os_release = ":product_info_os_release",
stamp_var = "STABLE_MONOGON_cloud_version",
)
node_initramfs(
name = "initramfs",
files = {
"/init": "//cloud/agent:agent",
"/etc/resolv.conf": "//osbase/net/dns:resolv.conf",
"/etc/ssl/cert.pem": "@cacerts//file",
"/etc/product-info.json": ":product_info",
},
fsspecs = [
"//osbase/build:earlydev.fsspec",
"//third_party:firmware",
],
visibility = ["//cloud/agent:__subpackages__"],
)