blob: 27eb5a58b6f9005f8a4b9f337e2456d515e2af5d [file] [log] [blame]
Mateusz Zalega43e21072021-10-08 18:05:29 +02001load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
Tim Windelschmidt156248b2025-01-10 00:27:45 +01002load("//osbase/build/genosrelease:defs.bzl", "os_release")
Tim Windelschmidtbed76d92025-02-18 03:04:14 +01003load("//osbase/build/mkcpio:def.bzl", "node_initramfs")
4load("//osbase/build/mkpayload:def.bzl", "efi_unified_kernel_image")
Mateusz Zalega43e21072021-10-08 18:05:29 +02005
6go_library(
Lorenz Brund13c1c62022-03-30 19:58:58 +02007 name = "installer_lib",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +02008 srcs = ["main.go"],
Lorenz Brun54a5a052023-10-02 16:40:11 +02009 embedsrcs = [
10 "//metropolis/node/core/abloader", #keep
11 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010012 importpath = "source.monogon.dev/metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020013 visibility = ["//visibility:private"],
14 deps = [
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020015 "//osbase/blockdev",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020016 "//osbase/bringup",
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020017 "//osbase/build/mkimage/osimage",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020018 "//osbase/efivarfs",
Jan Schär5fdca562025-04-14 11:33:29 +000019 "//osbase/oci",
20 "//osbase/oci/osimage",
Jan Schärc1b6df42025-03-20 08:52:18 +000021 "//osbase/structfs",
Tim Windelschmidt96e014e2024-09-10 02:26:13 +020022 "//osbase/supervisor",
Tim Windelschmidt9f21f532024-05-07 15:14:20 +020023 "//osbase/sysfs",
Lorenz Brund13c1c62022-03-30 19:58:58 +020024 "@org_golang_x_sys//unix",
Mateusz Zalega43e21072021-10-08 18:05:29 +020025 ],
26)
27
28go_binary(
29 name = "installer",
Lorenz Brund13c1c62022-03-30 19:58:58 +020030 embed = [":installer_lib"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020031 visibility = ["//visibility:private"],
32)
33
34node_initramfs(
35 name = "initramfs",
36 files = {
Tim Windelschmidt24bf6fd2025-02-12 04:48:24 +010037 "/init": "//metropolis/installer",
Mateusz Zalega43e21072021-10-08 18:05:29 +020038 },
Serge Bazanskia3938142022-04-04 17:04:47 +020039 fsspecs = [
Tim Windelschmidtc2290c22024-08-15 19:56:00 +020040 "//osbase/build:earlydev.fsspec",
Serge Bazanskia3938142022-04-04 17:04:47 +020041 ],
Mateusz Zalegaedffbb52022-01-11 15:27:22 +010042 visibility = ["//metropolis/installer/test:__pkg__"],
Mateusz Zalega43e21072021-10-08 18:05:29 +020043)
44
45os_release(
46 name = "installer-release-info",
47 os_id = "metropolis-installer",
48 os_name = "Metropolis Installer",
Serge Bazanski30494c12023-11-28 16:27:24 +010049 stamp_var = "STABLE_MONOGON_metropolis_version",
Mateusz Zalega43e21072021-10-08 18:05:29 +020050)
51
52efi_unified_kernel_image(
53 name = "kernel",
Lorenz Brun0e057fe2022-01-13 16:19:10 +010054 cmdline = "console=ttyS0,115200 console=tty0 quiet",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010055 initrd = [
Tim Windelschmidt65bf3112024-04-08 21:32:14 +020056 "//third_party:ucode",
Lorenz Brunb6c0aa92022-02-24 17:53:40 +010057 ":initramfs",
58 ],
Mateusz Zalega43e21072021-10-08 18:05:29 +020059 kernel = "//third_party/linux",
60 os_release = ":installer-release-info",
61 visibility = ["//visibility:public"],
62)