blob: 400b98e32ff298472382f35e1dba7037b475da46 [file] [log] [blame]
Mateusz Zalega43e21072021-10-08 18:05:29 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
2load("//metropolis/node/build:def.bzl", "node_initramfs")
3load("//metropolis/node/build/genosrelease:defs.bzl", "os_release")
4load("//metropolis/node/build:efi.bzl", "efi_unified_kernel_image")
5
6go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02007 name = "installer_lib",
Serge Bazanskif71fe922023-03-22 01:10:37 +01008 srcs = [
9 "log.go",
10 "main.go",
11 ],
Lorenz Brun54a5a052023-10-02 16:40:11 +020012 embedsrcs = [
13 "//metropolis/node/core/abloader", #keep
14 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010015 importpath = "source.monogon.dev/metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020016 visibility = ["//visibility:private"],
17 deps = [
Lorenz Brund13c1c62022-03-30 19:58:58 +020018 "//metropolis/node/build/mkimage/osimage",
Lorenz Brunad131882023-06-28 16:42:20 +020019 "//metropolis/pkg/blockdev",
Lorenz Brund13c1c62022-03-30 19:58:58 +020020 "//metropolis/pkg/efivarfs",
21 "//metropolis/pkg/sysfs",
22 "@org_golang_x_sys//unix",
Mateusz Zalega43e21072021-10-08 18:05:29 +020023 ],
24)
25
26go_binary(
27 name = "installer",
Lorenz Brund13c1c62022-03-30 19:58:58 +020028 embed = [":installer_lib"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020029 visibility = ["//visibility:private"],
30)
31
32node_initramfs(
33 name = "initramfs",
34 files = {
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010035 "//metropolis/installer": "/init",
Mateusz Zalega43e21072021-10-08 18:05:29 +020036 },
Serge Bazanskia3938142022-04-04 17:04:47 +020037 fsspecs = [
38 "//metropolis/node/build:earlydev.fsspec",
39 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010040 visibility = ["//metropolis/installer/test:__pkg__"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020041)
42
43os_release(
44 name = "installer-release-info",
45 os_id = "metropolis-installer",
46 os_name = "Metropolis Installer",
47 stamp_var = "STABLE_METROPOLIS_version",
48)
49
50efi_unified_kernel_image(
51 name = "kernel",
Lorenz Brun0e057fe2022-01-13 16:19:10 +010052 cmdline = "console=ttyS0,115200 console=tty0 quiet",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010053 initrd = [
54 "//metropolis/node:ucode",
55 ":initramfs",
56 ],
Mateusz Zalega43e21072021-10-08 18:05:29 +020057 kernel = "//third_party/linux",
58 os_release = ":installer-release-info",
59 visibility = ["//visibility:public"],
60)